Average Error: 30.5 → 17.4
Time: 48.3s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -4.129850026901925 \cdot 10^{+87}:\\ \;\;\;\;\frac{-1}{\sqrt{\log 10}} \cdot \left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right)\\ \mathbf{elif}\;re \le 7057901.046632865:\\ \;\;\;\;\frac{\log \left(\sqrt[3]{\sqrt{\sqrt[3]{re \cdot re + im \cdot im}} \cdot \left|\sqrt[3]{re \cdot re + im \cdot im}\right|} \cdot \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right)}{\log 10}\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \log re\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \end{array}\]
double f(double re, double im) {
        double r1843024 = re;
        double r1843025 = r1843024 * r1843024;
        double r1843026 = im;
        double r1843027 = r1843026 * r1843026;
        double r1843028 = r1843025 + r1843027;
        double r1843029 = sqrt(r1843028);
        double r1843030 = log(r1843029);
        double r1843031 = 10.0;
        double r1843032 = log(r1843031);
        double r1843033 = r1843030 / r1843032;
        return r1843033;
}

double f(double re, double im) {
        double r1843034 = re;
        double r1843035 = -4.129850026901925e+87;
        bool r1843036 = r1843034 <= r1843035;
        double r1843037 = -1.0;
        double r1843038 = 10.0;
        double r1843039 = log(r1843038);
        double r1843040 = sqrt(r1843039);
        double r1843041 = r1843037 / r1843040;
        double r1843042 = 1.0;
        double r1843043 = r1843042 / r1843039;
        double r1843044 = sqrt(r1843043);
        double r1843045 = r1843037 / r1843034;
        double r1843046 = log(r1843045);
        double r1843047 = r1843044 * r1843046;
        double r1843048 = r1843041 * r1843047;
        double r1843049 = 7057901.046632865;
        bool r1843050 = r1843034 <= r1843049;
        double r1843051 = r1843034 * r1843034;
        double r1843052 = im;
        double r1843053 = r1843052 * r1843052;
        double r1843054 = r1843051 + r1843053;
        double r1843055 = cbrt(r1843054);
        double r1843056 = sqrt(r1843055);
        double r1843057 = fabs(r1843055);
        double r1843058 = r1843056 * r1843057;
        double r1843059 = cbrt(r1843058);
        double r1843060 = sqrt(r1843054);
        double r1843061 = cbrt(r1843060);
        double r1843062 = r1843061 * r1843061;
        double r1843063 = r1843059 * r1843062;
        double r1843064 = log(r1843063);
        double r1843065 = r1843064 / r1843039;
        double r1843066 = log(r1843034);
        double r1843067 = r1843044 * r1843066;
        double r1843068 = r1843042 / r1843040;
        double r1843069 = r1843067 * r1843068;
        double r1843070 = r1843050 ? r1843065 : r1843069;
        double r1843071 = r1843036 ? r1843048 : r1843070;
        return r1843071;
}

\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -4.129850026901925 \cdot 10^{+87}:\\
\;\;\;\;\frac{-1}{\sqrt{\log 10}} \cdot \left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right)\\

\mathbf{elif}\;re \le 7057901.046632865:\\
\;\;\;\;\frac{\log \left(\sqrt[3]{\sqrt{\sqrt[3]{re \cdot re + im \cdot im}} \cdot \left|\sqrt[3]{re \cdot re + im \cdot im}\right|} \cdot \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right)}{\log 10}\\

\mathbf{else}:\\
\;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \log re\right) \cdot \frac{1}{\sqrt{\log 10}}\\

\end{array}

Error

Bits error versus re

Bits error versus im

Derivation

  1. Split input into 3 regimes
  2. if re < -4.129850026901925e+87

    1. Initial program 48.0

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt48.0

      \[\leadsto \frac{\log \color{blue}{\left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}}{\log 10}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt48.0

      \[\leadsto \frac{\log \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    6. Applied *-un-lft-identity48.0

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    7. Applied times-frac48.0

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}{\sqrt{\log 10}}}\]
    8. Simplified48.0

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    9. Taylor expanded around -inf 9.1

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(-1 \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)}\]

    if -4.129850026901925e+87 < re < 7057901.046632865

    1. Initial program 21.8

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt21.8

      \[\leadsto \frac{\log \color{blue}{\left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}}{\log 10}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt21.8

      \[\leadsto \frac{\log \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{\color{blue}{\left(\sqrt[3]{re \cdot re + im \cdot im} \cdot \sqrt[3]{re \cdot re + im \cdot im}\right) \cdot \sqrt[3]{re \cdot re + im \cdot im}}}}\right)}{\log 10}\]
    6. Applied sqrt-prod21.8

      \[\leadsto \frac{\log \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\color{blue}{\sqrt{\sqrt[3]{re \cdot re + im \cdot im} \cdot \sqrt[3]{re \cdot re + im \cdot im}} \cdot \sqrt{\sqrt[3]{re \cdot re + im \cdot im}}}}\right)}{\log 10}\]
    7. Simplified21.8

      \[\leadsto \frac{\log \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\color{blue}{\left|\sqrt[3]{re \cdot re + im \cdot im}\right|} \cdot \sqrt{\sqrt[3]{re \cdot re + im \cdot im}}}\right)}{\log 10}\]

    if 7057901.046632865 < re

    1. Initial program 38.7

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt38.7

      \[\leadsto \frac{\log \color{blue}{\left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}}{\log 10}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt38.7

      \[\leadsto \frac{\log \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    6. Applied *-un-lft-identity38.7

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    7. Applied times-frac38.6

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}{\sqrt{\log 10}}}\]
    8. Simplified38.6

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    9. Taylor expanded around inf 13.0

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(-1 \cdot \left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{1}{re}\right)\right)\right)}\]
    10. Simplified13.0

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log re \cdot \sqrt{\frac{1}{\log 10}}\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification17.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -4.129850026901925 \cdot 10^{+87}:\\ \;\;\;\;\frac{-1}{\sqrt{\log 10}} \cdot \left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right)\\ \mathbf{elif}\;re \le 7057901.046632865:\\ \;\;\;\;\frac{\log \left(\sqrt[3]{\sqrt{\sqrt[3]{re \cdot re + im \cdot im}} \cdot \left|\sqrt[3]{re \cdot re + im \cdot im}\right|} \cdot \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right)}{\log 10}\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \log re\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019101 
(FPCore (re im)
  :name "math.log10 on complex, real part"
  (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))