\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -2.273448994496035253530762983989520870583 \cdot 10^{87}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(-re\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\
\mathbf{elif}\;re \le 1.763702591686904819827254628881572839528 \cdot 10^{111}:\\
\;\;\;\;\left(\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \frac{1}{\sqrt{\log 10}}\right) \cdot \frac{1}{\sqrt{\log 10}}\\
\mathbf{else}:\\
\;\;\;\;\left(\log re \cdot \frac{1}{\sqrt{\log 10}}\right) \cdot \frac{1}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r1244585 = re;
double r1244586 = r1244585 * r1244585;
double r1244587 = im;
double r1244588 = r1244587 * r1244587;
double r1244589 = r1244586 + r1244588;
double r1244590 = sqrt(r1244589);
double r1244591 = log(r1244590);
double r1244592 = 10.0;
double r1244593 = log(r1244592);
double r1244594 = r1244591 / r1244593;
return r1244594;
}
double f(double re, double im) {
double r1244595 = re;
double r1244596 = -2.2734489944960353e+87;
bool r1244597 = r1244595 <= r1244596;
double r1244598 = 1.0;
double r1244599 = 10.0;
double r1244600 = log(r1244599);
double r1244601 = sqrt(r1244600);
double r1244602 = r1244598 / r1244601;
double r1244603 = -r1244595;
double r1244604 = log(r1244603);
double r1244605 = r1244604 * r1244602;
double r1244606 = r1244602 * r1244605;
double r1244607 = 1.7637025916869048e+111;
bool r1244608 = r1244595 <= r1244607;
double r1244609 = im;
double r1244610 = r1244609 * r1244609;
double r1244611 = r1244595 * r1244595;
double r1244612 = r1244610 + r1244611;
double r1244613 = sqrt(r1244612);
double r1244614 = log(r1244613);
double r1244615 = r1244614 * r1244602;
double r1244616 = r1244615 * r1244602;
double r1244617 = log(r1244595);
double r1244618 = r1244617 * r1244602;
double r1244619 = r1244618 * r1244602;
double r1244620 = r1244608 ? r1244616 : r1244619;
double r1244621 = r1244597 ? r1244606 : r1244620;
return r1244621;
}



Bits error versus re



Bits error versus im
Results
if re < -2.2734489944960353e+87Initial program 49.3
rmApplied add-sqr-sqrt49.3
Applied pow149.3
Applied log-pow49.3
Applied times-frac49.3
rmApplied div-inv49.2
Taylor expanded around -inf 9.8
Simplified9.8
if -2.2734489944960353e+87 < re < 1.7637025916869048e+111Initial program 22.0
rmApplied add-sqr-sqrt22.0
Applied pow122.0
Applied log-pow22.0
Applied times-frac22.0
rmApplied div-inv21.9
rmApplied add-sqr-sqrt21.9
Applied associate-*l*21.9
rmApplied associate-*r*21.9
Simplified21.9
if 1.7637025916869048e+111 < re Initial program 53.9
rmApplied add-sqr-sqrt53.9
Applied pow153.9
Applied log-pow53.9
Applied times-frac53.9
rmApplied div-inv53.9
Taylor expanded around inf 9.0
Final simplification17.7
herbie shell --seed 2019192
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10.0)))