\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -2.592454453561355323767441020562203333728 \cdot 10^{93}:\\
\;\;\;\;\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 -4.442710243000143378316854346880030721988 \cdot 10^{-260}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 7.226232238944436485147535554340264812994 \cdot 10^{-227}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{2 \cdot \log im}{\sqrt{\log 10}}\right)\\
\mathbf{elif}\;re \le 8.439330033545885045213726212950052594665 \cdot 10^{67}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\log re \cdot 2}{\sqrt{\log 10}}\right)\\
\end{array}double f(double re, double im) {
double r45455 = re;
double r45456 = r45455 * r45455;
double r45457 = im;
double r45458 = r45457 * r45457;
double r45459 = r45456 + r45458;
double r45460 = sqrt(r45459);
double r45461 = log(r45460);
double r45462 = 10.0;
double r45463 = log(r45462);
double r45464 = r45461 / r45463;
return r45464;
}
double f(double re, double im) {
double r45465 = re;
double r45466 = -2.5924544535613553e+93;
bool r45467 = r45465 <= r45466;
double r45468 = 0.5;
double r45469 = 10.0;
double r45470 = log(r45469);
double r45471 = sqrt(r45470);
double r45472 = r45468 / r45471;
double r45473 = -2.0;
double r45474 = -1.0;
double r45475 = r45474 / r45465;
double r45476 = log(r45475);
double r45477 = 1.0;
double r45478 = r45477 / r45470;
double r45479 = sqrt(r45478);
double r45480 = r45476 * r45479;
double r45481 = r45473 * r45480;
double r45482 = r45472 * r45481;
double r45483 = -4.4427102430001434e-260;
bool r45484 = r45465 <= r45483;
double r45485 = r45465 * r45465;
double r45486 = im;
double r45487 = r45486 * r45486;
double r45488 = r45485 + r45487;
double r45489 = r45477 / r45471;
double r45490 = pow(r45488, r45489);
double r45491 = log(r45490);
double r45492 = r45472 * r45491;
double r45493 = 7.2262322389444365e-227;
bool r45494 = r45465 <= r45493;
double r45495 = cbrt(r45468);
double r45496 = r45495 * r45495;
double r45497 = sqrt(r45471);
double r45498 = r45496 / r45497;
double r45499 = r45495 / r45497;
double r45500 = 2.0;
double r45501 = log(r45486);
double r45502 = r45500 * r45501;
double r45503 = r45502 / r45471;
double r45504 = r45499 * r45503;
double r45505 = r45498 * r45504;
double r45506 = 8.439330033545885e+67;
bool r45507 = r45465 <= r45506;
double r45508 = log(r45465);
double r45509 = r45508 * r45500;
double r45510 = r45509 / r45471;
double r45511 = r45499 * r45510;
double r45512 = r45498 * r45511;
double r45513 = r45507 ? r45492 : r45512;
double r45514 = r45494 ? r45505 : r45513;
double r45515 = r45484 ? r45492 : r45514;
double r45516 = r45467 ? r45482 : r45515;
return r45516;
}



Bits error versus re



Bits error versus im
Results
if re < -2.5924544535613553e+93Initial program 49.6
rmApplied add-sqr-sqrt49.6
Applied pow1/249.6
Applied log-pow49.6
Applied times-frac49.6
Taylor expanded around -inf 10.1
if -2.5924544535613553e+93 < re < -4.4427102430001434e-260 or 7.2262322389444365e-227 < re < 8.439330033545885e+67Initial program 19.5
rmApplied add-sqr-sqrt19.5
Applied pow1/219.5
Applied log-pow19.5
Applied times-frac19.5
rmApplied add-log-exp19.5
Simplified19.3
if -4.4427102430001434e-260 < re < 7.2262322389444365e-227Initial program 31.1
rmApplied add-sqr-sqrt31.1
Applied pow1/231.1
Applied log-pow31.1
Applied times-frac31.1
rmApplied add-sqr-sqrt31.1
Applied sqrt-prod31.5
Applied add-cube-cbrt31.1
Applied times-frac31.1
Applied associate-*l*31.1
Taylor expanded around 0 32.9
if 8.439330033545885e+67 < re Initial program 46.9
rmApplied add-sqr-sqrt46.9
Applied pow1/246.9
Applied log-pow46.9
Applied times-frac46.9
rmApplied add-sqr-sqrt46.9
Applied sqrt-prod47.1
Applied add-cube-cbrt46.9
Applied times-frac46.9
Applied associate-*l*46.9
Taylor expanded around inf 10.6
Simplified10.6
Final simplification17.4
herbie shell --seed 2020001
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))