\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;
}



Bits error versus re



Bits error versus im
Results
if re < -4.7575996220618e+138Initial program 59.2
rmApplied add-sqr-sqrt59.2
Applied pow159.2
Applied log-pow59.2
Applied times-frac59.2
Taylor expanded around -inf 7.4
Simplified7.4
if -4.7575996220618e+138 < re < -1.971567869430071e-177 or 1.7146334702710424e-243 < re < 4.571695048514602e+96Initial program 19.7
rmApplied add-sqr-sqrt19.7
Applied pow119.7
Applied log-pow19.7
Applied times-frac19.6
rmApplied add-sqr-sqrt19.6
Applied associate-*l*19.7
rmApplied div-inv19.6
Applied associate-*r*19.6
if -1.971567869430071e-177 < re < 1.7146334702710424e-243Initial program 33.1
rmApplied add-sqr-sqrt33.1
Applied pow133.1
Applied log-pow33.1
Applied times-frac33.1
Taylor expanded around 0 33.9
if 4.571695048514602e+96 < re Initial program 51.3
rmApplied add-sqr-sqrt51.3
Applied pow151.3
Applied log-pow51.3
Applied times-frac51.3
Taylor expanded around inf 9.4
Simplified9.4
Final simplification18.3
herbie shell --seed 2020047
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))