\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -9.850726757232304656097215039461175225007 \cdot 10^{116}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(-re\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 9282772713307497733004856393728:\\
\;\;\;\;\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \frac{\frac{1}{\sqrt{\log 10}}}{\sqrt{\log 10}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{\sqrt{\log 10}}}{\sqrt{\log 10}} \cdot \log re\\
\end{array}double f(double re, double im) {
double r39731 = re;
double r39732 = r39731 * r39731;
double r39733 = im;
double r39734 = r39733 * r39733;
double r39735 = r39732 + r39734;
double r39736 = sqrt(r39735);
double r39737 = log(r39736);
double r39738 = 10.0;
double r39739 = log(r39738);
double r39740 = r39737 / r39739;
return r39740;
}
double f(double re, double im) {
double r39741 = re;
double r39742 = -9.850726757232305e+116;
bool r39743 = r39741 <= r39742;
double r39744 = 1.0;
double r39745 = 10.0;
double r39746 = log(r39745);
double r39747 = sqrt(r39746);
double r39748 = r39744 / r39747;
double r39749 = -r39741;
double r39750 = pow(r39749, r39748);
double r39751 = log(r39750);
double r39752 = r39748 * r39751;
double r39753 = 9.282772713307498e+30;
bool r39754 = r39741 <= r39753;
double r39755 = im;
double r39756 = r39755 * r39755;
double r39757 = r39741 * r39741;
double r39758 = r39756 + r39757;
double r39759 = sqrt(r39758);
double r39760 = log(r39759);
double r39761 = r39748 / r39747;
double r39762 = r39760 * r39761;
double r39763 = log(r39741);
double r39764 = r39761 * r39763;
double r39765 = r39754 ? r39762 : r39764;
double r39766 = r39743 ? r39752 : r39765;
return r39766;
}



Bits error versus re



Bits error versus im
Results
if re < -9.850726757232305e+116Initial program 55.6
rmApplied add-sqr-sqrt55.6
Applied pow155.6
Applied log-pow55.6
Applied times-frac55.6
rmApplied add-log-exp55.6
Simplified55.5
Taylor expanded around -inf 8.2
Simplified8.2
if -9.850726757232305e+116 < re < 9.282772713307498e+30Initial program 21.4
rmApplied add-sqr-sqrt21.4
Applied pow121.4
Applied log-pow21.4
Applied times-frac21.3
rmApplied add-log-exp21.3
Simplified21.2
rmApplied log-pow21.2
Applied associate-*r*21.2
Simplified21.2
if 9.282772713307498e+30 < re Initial program 42.1
rmApplied add-sqr-sqrt42.1
Applied pow142.1
Applied log-pow42.1
Applied times-frac42.1
rmApplied add-log-exp42.1
Simplified42.0
rmApplied log-pow42.0
Applied associate-*r*42.0
Simplified42.0
Taylor expanded around inf 12.0
Final simplification17.1
herbie shell --seed 2019194
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10.0)))