Average Error: 32.7 → 18.3
Time: 11.3s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -4.75759962206180014 \cdot 10^{138}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(-\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\ \mathbf{elif}\;re \le -1.97156786943007107 \cdot 10^{-177}:\\ \;\;\;\;\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \mathbf{elif}\;re \le 1.71463347027104237 \cdot 10^{-243}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\\ \mathbf{elif}\;re \le 4.5716950485146016 \cdot 10^{96}:\\ \;\;\;\;\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log re \cdot \sqrt{\frac{1}{\log 10}}\right)\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -4.75759962206180014 \cdot 10^{138}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(-\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\

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

\mathbf{elif}\;re \le 1.71463347027104237 \cdot 10^{-243}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\\

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

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

\end{array}
double f(double re, double im) {
        double r46473 = re;
        double r46474 = r46473 * r46473;
        double r46475 = im;
        double r46476 = r46475 * r46475;
        double r46477 = r46474 + r46476;
        double r46478 = sqrt(r46477);
        double r46479 = log(r46478);
        double r46480 = 10.0;
        double r46481 = log(r46480);
        double r46482 = r46479 / r46481;
        return r46482;
}

double f(double re, double im) {
        double r46483 = re;
        double r46484 = -4.7575996220618e+138;
        bool r46485 = r46483 <= r46484;
        double r46486 = 1.0;
        double r46487 = 10.0;
        double r46488 = log(r46487);
        double r46489 = sqrt(r46488);
        double r46490 = r46486 / r46489;
        double r46491 = -1.0;
        double r46492 = r46491 / r46483;
        double r46493 = log(r46492);
        double r46494 = r46486 / r46488;
        double r46495 = sqrt(r46494);
        double r46496 = r46493 * r46495;
        double r46497 = -r46496;
        double r46498 = r46490 * r46497;
        double r46499 = -1.971567869430071e-177;
        bool r46500 = r46483 <= r46499;
        double r46501 = sqrt(r46490);
        double r46502 = r46483 * r46483;
        double r46503 = im;
        double r46504 = r46503 * r46503;
        double r46505 = r46502 + r46504;
        double r46506 = sqrt(r46505);
        double r46507 = log(r46506);
        double r46508 = r46501 * r46507;
        double r46509 = r46508 * r46490;
        double r46510 = r46501 * r46509;
        double r46511 = 1.7146334702710424e-243;
        bool r46512 = r46483 <= r46511;
        double r46513 = log(r46503);
        double r46514 = r46513 * r46495;
        double r46515 = r46490 * r46514;
        double r46516 = 4.571695048514602e+96;
        bool r46517 = r46483 <= r46516;
        double r46518 = log(r46483);
        double r46519 = r46518 * r46495;
        double r46520 = r46490 * r46519;
        double r46521 = r46517 ? r46510 : r46520;
        double r46522 = r46512 ? r46515 : r46521;
        double r46523 = r46500 ? r46510 : r46522;
        double r46524 = r46485 ? r46498 : r46523;
        return r46524;
}

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 4 regimes
  2. if re < -4.7575996220618e+138

    1. Initial program 59.2

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

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

      \[\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-pow59.2

      \[\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-frac59.2

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

      \[\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)}\]
    8. Simplified7.4

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

    if -4.7575996220618e+138 < re < -1.971567869430071e-177 or 1.7146334702710424e-243 < re < 4.571695048514602e+96

    1. Initial program 19.7

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

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

      \[\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-pow19.7

      \[\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-frac19.6

      \[\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 add-sqr-sqrt19.6

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

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

      \[\leadsto \sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\sqrt{\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)}\right)\]
    12. Applied associate-*r*19.6

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

    if -1.971567869430071e-177 < re < 1.7146334702710424e-243

    1. Initial program 33.1

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

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

      \[\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-pow33.1

      \[\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-frac33.1

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

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

    if 4.571695048514602e+96 < re

    1. Initial program 51.3

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

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow151.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-pow51.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-frac51.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. Taylor expanded around inf 9.4

      \[\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)}\]
    8. Simplified9.4

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -4.75759962206180014 \cdot 10^{138}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(-\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\ \mathbf{elif}\;re \le -1.97156786943007107 \cdot 10^{-177}:\\ \;\;\;\;\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \mathbf{elif}\;re \le 1.71463347027104237 \cdot 10^{-243}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\\ \mathbf{elif}\;re \le 4.5716950485146016 \cdot 10^{96}:\\ \;\;\;\;\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log re \cdot \sqrt{\frac{1}{\log 10}}\right)\\ \end{array}\]

Reproduce

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