Average Error: 31.9 → 17.7
Time: 27.6s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -2.273448994496035253530762983989520870583 \cdot 10^{87}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(-re\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \mathbf{elif}\;re \le 1.763702591686904819827254628881572839528 \cdot 10^{111}:\\ \;\;\;\;\left(\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \frac{1}{\sqrt{\log 10}}\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{else}:\\ \;\;\;\;\left(\log re \cdot \frac{1}{\sqrt{\log 10}}\right) \cdot \frac{1}{\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 -2.273448994496035253530762983989520870583 \cdot 10^{87}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(-re\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\

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

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

\end{array}
double f(double re, double im) {
        double r1244585 = re;
        double r1244586 = r1244585 * r1244585;
        double r1244587 = im;
        double r1244588 = r1244587 * r1244587;
        double r1244589 = r1244586 + r1244588;
        double r1244590 = sqrt(r1244589);
        double r1244591 = log(r1244590);
        double r1244592 = 10.0;
        double r1244593 = log(r1244592);
        double r1244594 = r1244591 / r1244593;
        return r1244594;
}

double f(double re, double im) {
        double r1244595 = re;
        double r1244596 = -2.2734489944960353e+87;
        bool r1244597 = r1244595 <= r1244596;
        double r1244598 = 1.0;
        double r1244599 = 10.0;
        double r1244600 = log(r1244599);
        double r1244601 = sqrt(r1244600);
        double r1244602 = r1244598 / r1244601;
        double r1244603 = -r1244595;
        double r1244604 = log(r1244603);
        double r1244605 = r1244604 * r1244602;
        double r1244606 = r1244602 * r1244605;
        double r1244607 = 1.7637025916869048e+111;
        bool r1244608 = r1244595 <= r1244607;
        double r1244609 = im;
        double r1244610 = r1244609 * r1244609;
        double r1244611 = r1244595 * r1244595;
        double r1244612 = r1244610 + r1244611;
        double r1244613 = sqrt(r1244612);
        double r1244614 = log(r1244613);
        double r1244615 = r1244614 * r1244602;
        double r1244616 = r1244615 * r1244602;
        double r1244617 = log(r1244595);
        double r1244618 = r1244617 * r1244602;
        double r1244619 = r1244618 * r1244602;
        double r1244620 = r1244608 ? r1244616 : r1244619;
        double r1244621 = r1244597 ? r1244606 : r1244620;
        return r1244621;
}

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.2734489944960353e+87

    1. Initial program 49.3

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

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

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

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

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

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

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

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

    if -2.2734489944960353e+87 < re < 1.7637025916869048e+111

    1. Initial program 22.0

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

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

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

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

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

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

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

      \[\leadsto \color{blue}{\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\right)}\]
    12. Using strategy rm
    13. Applied associate-*r*21.9

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

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

    if 1.7637025916869048e+111 < re

    1. Initial program 53.9

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

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

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

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

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

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

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

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

Reproduce

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