\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -4.1975508038006968 \cdot 10^{153}:\\
\;\;\;\;\frac{-\log \left(\frac{-1}{re}\right)}{\log 10}\\
\mathbf{elif}\;re \le -4.5405452937718227 \cdot 10^{-275}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \frac{\sqrt{\frac{1}{2}}}{\frac{\sqrt{\log 10}}{\log \left(re \cdot re + im \cdot im\right)}}\\
\mathbf{elif}\;re \le 1.27662858127337166 \cdot 10^{-281}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \left(\frac{\sqrt{\sqrt{\frac{1}{2}}}}{\sqrt{\log 10}} \cdot \left(\sqrt{\sqrt{\frac{1}{2}}} \cdot \left(2 \cdot \log im\right)\right)\right)\\
\mathbf{elif}\;re \le 8.0278279982437549 \cdot 10^{98}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \frac{\sqrt{\frac{1}{2}}}{\frac{\sqrt{\log 10}}{\log \left(re \cdot re + im \cdot im\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \frac{\sqrt{\frac{1}{2}}}{\frac{\sqrt{\log 10}}{2 \cdot \log re}}\\
\end{array}double f(double re, double im) {
double r42477 = re;
double r42478 = r42477 * r42477;
double r42479 = im;
double r42480 = r42479 * r42479;
double r42481 = r42478 + r42480;
double r42482 = sqrt(r42481);
double r42483 = log(r42482);
double r42484 = 10.0;
double r42485 = log(r42484);
double r42486 = r42483 / r42485;
return r42486;
}
double f(double re, double im) {
double r42487 = re;
double r42488 = -4.197550803800697e+153;
bool r42489 = r42487 <= r42488;
double r42490 = -1.0;
double r42491 = r42490 / r42487;
double r42492 = log(r42491);
double r42493 = -r42492;
double r42494 = 10.0;
double r42495 = log(r42494);
double r42496 = r42493 / r42495;
double r42497 = -4.540545293771823e-275;
bool r42498 = r42487 <= r42497;
double r42499 = 0.5;
double r42500 = sqrt(r42499);
double r42501 = sqrt(r42495);
double r42502 = r42500 / r42501;
double r42503 = r42487 * r42487;
double r42504 = im;
double r42505 = r42504 * r42504;
double r42506 = r42503 + r42505;
double r42507 = log(r42506);
double r42508 = r42501 / r42507;
double r42509 = r42500 / r42508;
double r42510 = r42502 * r42509;
double r42511 = 1.2766285812733717e-281;
bool r42512 = r42487 <= r42511;
double r42513 = sqrt(r42500);
double r42514 = r42513 / r42501;
double r42515 = 2.0;
double r42516 = log(r42504);
double r42517 = r42515 * r42516;
double r42518 = r42513 * r42517;
double r42519 = r42514 * r42518;
double r42520 = r42502 * r42519;
double r42521 = 8.027827998243755e+98;
bool r42522 = r42487 <= r42521;
double r42523 = log(r42487);
double r42524 = r42515 * r42523;
double r42525 = r42501 / r42524;
double r42526 = r42500 / r42525;
double r42527 = r42502 * r42526;
double r42528 = r42522 ? r42510 : r42527;
double r42529 = r42512 ? r42520 : r42528;
double r42530 = r42498 ? r42510 : r42529;
double r42531 = r42489 ? r42496 : r42530;
return r42531;
}



Bits error versus re



Bits error versus im
Results
if re < -4.197550803800697e+153Initial program 63.9
rmApplied pow1/263.9
Applied log-pow63.9
Applied associate-/l*63.9
rmApplied pow163.9
Applied log-pow63.9
Applied add-sqr-sqrt63.9
Applied times-frac63.9
Applied add-sqr-sqrt63.9
Applied times-frac63.9
Simplified63.9
Taylor expanded around -inf 7.2
Simplified7.1
if -4.197550803800697e+153 < re < -4.540545293771823e-275 or 1.2766285812733717e-281 < re < 8.027827998243755e+98Initial program 21.6
rmApplied pow1/221.6
Applied log-pow21.6
Applied associate-/l*21.7
rmApplied pow121.7
Applied log-pow21.7
Applied add-sqr-sqrt21.7
Applied times-frac21.8
Applied add-sqr-sqrt21.7
Applied times-frac21.5
Simplified21.5
if -4.540545293771823e-275 < re < 1.2766285812733717e-281Initial program 33.3
rmApplied pow1/233.3
Applied log-pow33.3
Applied associate-/l*33.2
rmApplied pow133.2
Applied log-pow33.2
Applied add-sqr-sqrt33.2
Applied times-frac33.3
Applied add-sqr-sqrt33.3
Applied times-frac33.2
Simplified33.2
rmApplied div-inv33.2
Applied add-sqr-sqrt33.2
Applied sqrt-prod33.3
Applied times-frac33.2
Simplified33.1
Taylor expanded around 0 33.5
if 8.027827998243755e+98 < re Initial program 51.6
rmApplied pow1/251.6
Applied log-pow51.6
Applied associate-/l*51.6
rmApplied pow151.6
Applied log-pow51.6
Applied add-sqr-sqrt51.6
Applied times-frac51.7
Applied add-sqr-sqrt51.7
Applied times-frac51.6
Simplified51.6
Taylor expanded around inf 8.0
Simplified8.0
Final simplification18.0
herbie shell --seed 2020046
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))