Average Error: 31.6 → 17.6
Time: 17.4s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -6.070696817770049897362818226450973536409 \cdot 10^{119}:\\ \;\;\;\;\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 7.239744803523932456345417905652411262743 \cdot 10^{115}:\\ \;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{1}} \cdot \left(\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right)\\ \mathbf{else}:\\ \;\;\;\;\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)\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -6.070696817770049897362818226450973536409 \cdot 10^{119}:\\
\;\;\;\;\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 7.239744803523932456345417905652411262743 \cdot 10^{115}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{1}} \cdot \left(\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right)\\

\mathbf{else}:\\
\;\;\;\;\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)\\

\end{array}
double f(double re, double im) {
        double r39584 = re;
        double r39585 = r39584 * r39584;
        double r39586 = im;
        double r39587 = r39586 * r39586;
        double r39588 = r39585 + r39587;
        double r39589 = sqrt(r39588);
        double r39590 = log(r39589);
        double r39591 = 10.0;
        double r39592 = log(r39591);
        double r39593 = r39590 / r39592;
        return r39593;
}

double f(double re, double im) {
        double r39594 = re;
        double r39595 = -6.07069681777005e+119;
        bool r39596 = r39594 <= r39595;
        double r39597 = 1.0;
        double r39598 = 2.0;
        double r39599 = r39597 / r39598;
        double r39600 = 10.0;
        double r39601 = log(r39600);
        double r39602 = sqrt(r39601);
        double r39603 = r39599 / r39602;
        double r39604 = -2.0;
        double r39605 = -1.0;
        double r39606 = r39605 / r39594;
        double r39607 = log(r39606);
        double r39608 = r39597 / r39601;
        double r39609 = sqrt(r39608);
        double r39610 = r39607 * r39609;
        double r39611 = r39604 * r39610;
        double r39612 = r39603 * r39611;
        double r39613 = 7.2397448035239325e+115;
        bool r39614 = r39594 <= r39613;
        double r39615 = sqrt(r39599);
        double r39616 = sqrt(r39597);
        double r39617 = r39615 / r39616;
        double r39618 = r39615 / r39602;
        double r39619 = r39594 * r39594;
        double r39620 = im;
        double r39621 = r39620 * r39620;
        double r39622 = r39619 + r39621;
        double r39623 = log(r39622);
        double r39624 = r39623 / r39602;
        double r39625 = r39618 * r39624;
        double r39626 = r39617 * r39625;
        double r39627 = r39597 / r39594;
        double r39628 = log(r39627);
        double r39629 = r39628 * r39609;
        double r39630 = r39604 * r39629;
        double r39631 = r39603 * r39630;
        double r39632 = r39614 ? r39626 : r39631;
        double r39633 = r39596 ? r39612 : r39632;
        return r39633;
}

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 < -6.07069681777005e+119

    1. Initial program 55.7

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt55.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/255.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-pow55.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-frac55.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. Simplified55.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}}\]
    8. Taylor expanded around -inf 8.3

      \[\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 -6.07069681777005e+119 < re < 7.2397448035239325e+115

    1. Initial program 21.7

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt21.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/221.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-pow21.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-frac21.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. Simplified21.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}}\]
    8. Using strategy rm
    9. Applied pow121.7

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

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

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

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

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

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

    if 7.2397448035239325e+115 < re

    1. Initial program 53.4

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

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

      \[\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-pow53.4

      \[\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-frac53.4

      \[\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. Simplified53.4

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

      \[\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)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification17.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -6.070696817770049897362818226450973536409 \cdot 10^{119}:\\ \;\;\;\;\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 7.239744803523932456345417905652411262743 \cdot 10^{115}:\\ \;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{1}} \cdot \left(\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right)\\ \mathbf{else}:\\ \;\;\;\;\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)\\ \end{array}\]

Reproduce

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