\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -6.070696817770049897362818226450973536409 \cdot 10^{119}:\\
\;\;\;\;\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 7.239744803523932456345417905652411262743 \cdot 10^{115}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{1}} \cdot \left(\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right)\\
\mathbf{else}:\\
\;\;\;\;\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)\\
\end{array}double f(double re, double im) {
double r39584 = re;
double r39585 = r39584 * r39584;
double r39586 = im;
double r39587 = r39586 * r39586;
double r39588 = r39585 + r39587;
double r39589 = sqrt(r39588);
double r39590 = log(r39589);
double r39591 = 10.0;
double r39592 = log(r39591);
double r39593 = r39590 / r39592;
return r39593;
}
double f(double re, double im) {
double r39594 = re;
double r39595 = -6.07069681777005e+119;
bool r39596 = r39594 <= r39595;
double r39597 = 1.0;
double r39598 = 2.0;
double r39599 = r39597 / r39598;
double r39600 = 10.0;
double r39601 = log(r39600);
double r39602 = sqrt(r39601);
double r39603 = r39599 / r39602;
double r39604 = -2.0;
double r39605 = -1.0;
double r39606 = r39605 / r39594;
double r39607 = log(r39606);
double r39608 = r39597 / r39601;
double r39609 = sqrt(r39608);
double r39610 = r39607 * r39609;
double r39611 = r39604 * r39610;
double r39612 = r39603 * r39611;
double r39613 = 7.2397448035239325e+115;
bool r39614 = r39594 <= r39613;
double r39615 = sqrt(r39599);
double r39616 = sqrt(r39597);
double r39617 = r39615 / r39616;
double r39618 = r39615 / r39602;
double r39619 = r39594 * r39594;
double r39620 = im;
double r39621 = r39620 * r39620;
double r39622 = r39619 + r39621;
double r39623 = log(r39622);
double r39624 = r39623 / r39602;
double r39625 = r39618 * r39624;
double r39626 = r39617 * r39625;
double r39627 = r39597 / r39594;
double r39628 = log(r39627);
double r39629 = r39628 * r39609;
double r39630 = r39604 * r39629;
double r39631 = r39603 * r39630;
double r39632 = r39614 ? r39626 : r39631;
double r39633 = r39596 ? r39612 : r39632;
return r39633;
}



Bits error versus re



Bits error versus im
Results
if re < -6.07069681777005e+119Initial program 55.7
rmApplied add-sqr-sqrt55.7
Applied pow1/255.7
Applied log-pow55.7
Applied times-frac55.7
Simplified55.7
Taylor expanded around -inf 8.3
if -6.07069681777005e+119 < re < 7.2397448035239325e+115Initial program 21.7
rmApplied add-sqr-sqrt21.7
Applied pow1/221.7
Applied log-pow21.7
Applied times-frac21.7
Simplified21.7
rmApplied pow121.7
Applied log-pow21.7
Applied sqrt-prod21.7
Applied add-sqr-sqrt21.7
Applied times-frac21.7
Applied associate-*l*21.6
if 7.2397448035239325e+115 < re Initial program 53.4
rmApplied add-sqr-sqrt53.4
Applied pow1/253.4
Applied log-pow53.4
Applied times-frac53.4
Simplified53.4
Taylor expanded around inf 8.2
Final simplification17.6
herbie shell --seed 2019303
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))