Average Error: 32.0 → 17.8
Time: 5.9s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -205453296394218056740696489984:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(-2 \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\ \mathbf{elif}\;re \le 6.618862848129988821783211570489720879471 \cdot 10^{123}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\frac{\sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\log re \cdot 2\right)}{\sqrt{\log 10}}\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -205453296394218056740696489984:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(-2 \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\

\mathbf{elif}\;re \le 6.618862848129988821783211570489720879471 \cdot 10^{123}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\

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

\end{array}
double f(double re, double im) {
        double r99104 = re;
        double r99105 = r99104 * r99104;
        double r99106 = im;
        double r99107 = r99106 * r99106;
        double r99108 = r99105 + r99107;
        double r99109 = sqrt(r99108);
        double r99110 = log(r99109);
        double r99111 = 10.0;
        double r99112 = log(r99111);
        double r99113 = r99110 / r99112;
        return r99113;
}

double f(double re, double im) {
        double r99114 = re;
        double r99115 = -2.0545329639421806e+29;
        bool r99116 = r99114 <= r99115;
        double r99117 = 0.5;
        double r99118 = 10.0;
        double r99119 = log(r99118);
        double r99120 = sqrt(r99119);
        double r99121 = r99117 / r99120;
        double r99122 = -2.0;
        double r99123 = -1.0;
        double r99124 = r99123 / r99114;
        double r99125 = log(r99124);
        double r99126 = 1.0;
        double r99127 = r99126 / r99119;
        double r99128 = sqrt(r99127);
        double r99129 = r99125 * r99128;
        double r99130 = r99122 * r99129;
        double r99131 = r99121 * r99130;
        double r99132 = 6.618862848129989e+123;
        bool r99133 = r99114 <= r99132;
        double r99134 = r99114 * r99114;
        double r99135 = im;
        double r99136 = r99135 * r99135;
        double r99137 = r99134 + r99136;
        double r99138 = r99126 / r99120;
        double r99139 = pow(r99137, r99138);
        double r99140 = log(r99139);
        double r99141 = r99121 * r99140;
        double r99142 = sqrt(r99117);
        double r99143 = sqrt(r99120);
        double r99144 = r99142 / r99143;
        double r99145 = log(r99114);
        double r99146 = 2.0;
        double r99147 = r99145 * r99146;
        double r99148 = r99144 * r99147;
        double r99149 = r99148 / r99120;
        double r99150 = r99144 * r99149;
        double r99151 = r99133 ? r99141 : r99150;
        double r99152 = r99116 ? r99131 : r99151;
        return r99152;
}

Error

Bits error versus re

Bits error versus im

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if re < -2.0545329639421806e+29

    1. Initial program 42.3

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

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow1/242.3

      \[\leadsto \frac{\log \color{blue}{\left({\left(re \cdot re + im \cdot im\right)}^{\frac{1}{2}}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied log-pow42.3

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

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

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

    if -2.0545329639421806e+29 < re < 6.618862848129989e+123

    1. Initial program 22.7

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

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow1/222.7

      \[\leadsto \frac{\log \color{blue}{\left({\left(re \cdot re + im \cdot im\right)}^{\frac{1}{2}}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied log-pow22.7

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

      \[\leadsto \color{blue}{\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}}\]
    7. Using strategy rm
    8. Applied add-log-exp22.7

      \[\leadsto \frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \color{blue}{\log \left(e^{\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}}\right)}\]
    9. Simplified22.5

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

    if 6.618862848129989e+123 < re

    1. Initial program 56.1

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

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow1/256.1

      \[\leadsto \frac{\log \color{blue}{\left({\left(re \cdot re + im \cdot im\right)}^{\frac{1}{2}}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied log-pow56.1

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

      \[\leadsto \color{blue}{\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}}\]
    7. Using strategy rm
    8. Applied add-log-exp56.1

      \[\leadsto \frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \color{blue}{\log \left(e^{\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}}\right)}\]
    9. Simplified56.0

      \[\leadsto \frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \log \color{blue}{\left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}\]
    10. Using strategy rm
    11. Applied add-sqr-sqrt56.0

      \[\leadsto \frac{\frac{1}{2}}{\sqrt{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\]
    12. Applied sqrt-prod56.1

      \[\leadsto \frac{\frac{1}{2}}{\color{blue}{\sqrt{\sqrt{\log 10}} \cdot \sqrt{\sqrt{\log 10}}}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\]
    13. Applied add-sqr-sqrt56.0

      \[\leadsto \frac{\color{blue}{\sqrt{\frac{1}{2}} \cdot \sqrt{\frac{1}{2}}}}{\sqrt{\sqrt{\log 10}} \cdot \sqrt{\sqrt{\log 10}}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\]
    14. Applied times-frac56.1

      \[\leadsto \color{blue}{\left(\frac{\sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\right)} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\]
    15. Applied associate-*l*56.1

      \[\leadsto \color{blue}{\frac{\sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{\sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\right)}\]
    16. Simplified56.1

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -205453296394218056740696489984:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(-2 \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\ \mathbf{elif}\;re \le 6.618862848129988821783211570489720879471 \cdot 10^{123}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\frac{\sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\log re \cdot 2\right)}{\sqrt{\log 10}}\\ \end{array}\]

Reproduce

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