\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -5.9648958467837301 \cdot 10^{102}:\\
\;\;\;\;\frac{-1 \cdot \log \left(\frac{-1}{re}\right)}{\log 10}\\
\mathbf{elif}\;re \le 2.3223338671593632 \cdot 10^{-278}:\\
\;\;\;\;\frac{\left(3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right) \cdot \left(-1\right)}{-\log 10}\\
\mathbf{elif}\;re \le 9.7861409713485531 \cdot 10^{-239}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \frac{3}{-3 \cdot \frac{\sqrt{\log 10}}{\log \left(\frac{1}{re}\right)}}\\
\mathbf{elif}\;re \le 3.1269387827755257 \cdot 10^{72}:\\
\;\;\;\;\frac{\left(3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right) \cdot \left(-1\right)}{-\log 10}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1 \cdot \log \left(\frac{1}{re}\right)}{\log 10}\\
\end{array}double f(double re, double im) {
double r43636 = re;
double r43637 = r43636 * r43636;
double r43638 = im;
double r43639 = r43638 * r43638;
double r43640 = r43637 + r43639;
double r43641 = sqrt(r43640);
double r43642 = log(r43641);
double r43643 = 10.0;
double r43644 = log(r43643);
double r43645 = r43642 / r43644;
return r43645;
}
double f(double re, double im) {
double r43646 = re;
double r43647 = -5.96489584678373e+102;
bool r43648 = r43646 <= r43647;
double r43649 = -1.0;
double r43650 = r43649 / r43646;
double r43651 = log(r43650);
double r43652 = r43649 * r43651;
double r43653 = 10.0;
double r43654 = log(r43653);
double r43655 = r43652 / r43654;
double r43656 = 2.3223338671593632e-278;
bool r43657 = r43646 <= r43656;
double r43658 = 3.0;
double r43659 = r43646 * r43646;
double r43660 = im;
double r43661 = r43660 * r43660;
double r43662 = r43659 + r43661;
double r43663 = sqrt(r43662);
double r43664 = cbrt(r43663);
double r43665 = log(r43664);
double r43666 = r43658 * r43665;
double r43667 = 1.0;
double r43668 = -r43667;
double r43669 = r43666 * r43668;
double r43670 = -r43654;
double r43671 = r43669 / r43670;
double r43672 = 9.786140971348553e-239;
bool r43673 = r43646 <= r43672;
double r43674 = sqrt(r43654);
double r43675 = r43667 / r43674;
double r43676 = -3.0;
double r43677 = r43667 / r43646;
double r43678 = log(r43677);
double r43679 = r43674 / r43678;
double r43680 = r43676 * r43679;
double r43681 = r43658 / r43680;
double r43682 = r43675 * r43681;
double r43683 = 3.1269387827755257e+72;
bool r43684 = r43646 <= r43683;
double r43685 = r43649 * r43678;
double r43686 = r43685 / r43654;
double r43687 = r43684 ? r43671 : r43686;
double r43688 = r43673 ? r43682 : r43687;
double r43689 = r43657 ? r43671 : r43688;
double r43690 = r43648 ? r43655 : r43689;
return r43690;
}



Bits error versus re



Bits error versus im
Results
if re < -5.96489584678373e+102Initial program 53.1
rmApplied add-cube-cbrt53.1
rmApplied pow353.1
Applied log-pow53.1
Applied associate-/l*53.1
Taylor expanded around -inf 9.4
Simplified9.1
if -5.96489584678373e+102 < re < 2.3223338671593632e-278 or 9.786140971348553e-239 < re < 3.1269387827755257e+72Initial program 22.3
rmApplied add-cube-cbrt22.3
rmApplied frac-2neg22.3
Simplified22.3
if 2.3223338671593632e-278 < re < 9.786140971348553e-239Initial program 33.2
rmApplied add-cube-cbrt33.2
rmApplied pow333.2
Applied log-pow33.3
Applied associate-/l*33.2
rmApplied pow133.2
Applied log-pow33.2
Applied add-sqr-sqrt33.2
Applied times-frac33.4
Applied *-un-lft-identity33.4
Applied times-frac33.2
Simplified33.2
Taylor expanded around inf 52.8
Simplified52.8
if 3.1269387827755257e+72 < re Initial program 47.9
rmApplied add-cube-cbrt47.9
rmApplied pow347.9
Applied log-pow47.9
Applied associate-/l*47.9
Taylor expanded around inf 11.2
Simplified11.0
Final simplification19.0
herbie shell --seed 2020089
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))