\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -205453296394218056740696489984:\\
\;\;\;\;\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 6.618862848129988821783211570489720879471 \cdot 10^{123}:\\
\;\;\;\;\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{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\frac{\sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\log re \cdot 2\right)}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r99104 = re;
double r99105 = r99104 * r99104;
double r99106 = im;
double r99107 = r99106 * r99106;
double r99108 = r99105 + r99107;
double r99109 = sqrt(r99108);
double r99110 = log(r99109);
double r99111 = 10.0;
double r99112 = log(r99111);
double r99113 = r99110 / r99112;
return r99113;
}
double f(double re, double im) {
double r99114 = re;
double r99115 = -2.0545329639421806e+29;
bool r99116 = r99114 <= r99115;
double r99117 = 0.5;
double r99118 = 10.0;
double r99119 = log(r99118);
double r99120 = sqrt(r99119);
double r99121 = r99117 / r99120;
double r99122 = -2.0;
double r99123 = -1.0;
double r99124 = r99123 / r99114;
double r99125 = log(r99124);
double r99126 = 1.0;
double r99127 = r99126 / r99119;
double r99128 = sqrt(r99127);
double r99129 = r99125 * r99128;
double r99130 = r99122 * r99129;
double r99131 = r99121 * r99130;
double r99132 = 6.618862848129989e+123;
bool r99133 = r99114 <= r99132;
double r99134 = r99114 * r99114;
double r99135 = im;
double r99136 = r99135 * r99135;
double r99137 = r99134 + r99136;
double r99138 = r99126 / r99120;
double r99139 = pow(r99137, r99138);
double r99140 = log(r99139);
double r99141 = r99121 * r99140;
double r99142 = sqrt(r99117);
double r99143 = sqrt(r99120);
double r99144 = r99142 / r99143;
double r99145 = log(r99114);
double r99146 = 2.0;
double r99147 = r99145 * r99146;
double r99148 = r99144 * r99147;
double r99149 = r99148 / r99120;
double r99150 = r99144 * r99149;
double r99151 = r99133 ? r99141 : r99150;
double r99152 = r99116 ? r99131 : r99151;
return r99152;
}



Bits error versus re



Bits error versus im
Results
if re < -2.0545329639421806e+29Initial program 42.3
rmApplied add-sqr-sqrt42.3
Applied pow1/242.3
Applied log-pow42.3
Applied times-frac42.3
Taylor expanded around -inf 11.4
if -2.0545329639421806e+29 < re < 6.618862848129989e+123Initial program 22.7
rmApplied add-sqr-sqrt22.7
Applied pow1/222.7
Applied log-pow22.7
Applied times-frac22.7
rmApplied add-log-exp22.7
Simplified22.5
if 6.618862848129989e+123 < re Initial program 56.1
rmApplied add-sqr-sqrt56.1
Applied pow1/256.1
Applied log-pow56.1
Applied times-frac56.1
rmApplied add-log-exp56.1
Simplified56.0
rmApplied add-sqr-sqrt56.0
Applied sqrt-prod56.1
Applied add-sqr-sqrt56.0
Applied times-frac56.1
Applied associate-*l*56.1
Simplified56.1
Taylor expanded around inf 7.6
Simplified7.6
Final simplification17.8
herbie shell --seed 2019362
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))