\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -1.5084829120832133 \cdot 10^{+136}:\\
\;\;\;\;\left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{-2 \cdot \log \left(\frac{-1}{re}\right)}{\sqrt{\log 10}}\right) \cdot \frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\\
\mathbf{elif}\;re \le 441347509.722609:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\frac{1}{\sqrt{\log 10}} \cdot \log \left(re \cdot re + im \cdot im\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\log re \cdot 2}{\sqrt{\log 10}}\right) \cdot \frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\\
\end{array}double f(double re, double im) {
double r885960 = re;
double r885961 = r885960 * r885960;
double r885962 = im;
double r885963 = r885962 * r885962;
double r885964 = r885961 + r885963;
double r885965 = sqrt(r885964);
double r885966 = log(r885965);
double r885967 = 10.0;
double r885968 = log(r885967);
double r885969 = r885966 / r885968;
return r885969;
}
double f(double re, double im) {
double r885970 = re;
double r885971 = -1.5084829120832133e+136;
bool r885972 = r885970 <= r885971;
double r885973 = 0.5;
double r885974 = cbrt(r885973);
double r885975 = 10.0;
double r885976 = log(r885975);
double r885977 = sqrt(r885976);
double r885978 = sqrt(r885977);
double r885979 = r885974 / r885978;
double r885980 = -2.0;
double r885981 = -1.0;
double r885982 = r885981 / r885970;
double r885983 = log(r885982);
double r885984 = r885980 * r885983;
double r885985 = r885984 / r885977;
double r885986 = r885979 * r885985;
double r885987 = r885974 * r885974;
double r885988 = r885987 / r885978;
double r885989 = r885986 * r885988;
double r885990 = 441347509.722609;
bool r885991 = r885970 <= r885990;
double r885992 = r885973 / r885977;
double r885993 = 1.0;
double r885994 = r885993 / r885977;
double r885995 = r885970 * r885970;
double r885996 = im;
double r885997 = r885996 * r885996;
double r885998 = r885995 + r885997;
double r885999 = log(r885998);
double r886000 = r885994 * r885999;
double r886001 = r885992 * r886000;
double r886002 = log(r885970);
double r886003 = 2.0;
double r886004 = r886002 * r886003;
double r886005 = r886004 / r885977;
double r886006 = r885979 * r886005;
double r886007 = r886006 * r885988;
double r886008 = r885991 ? r886001 : r886007;
double r886009 = r885972 ? r885989 : r886008;
return r886009;
}



Bits error versus re



Bits error versus im
Results
if re < -1.5084829120832133e+136Initial program 57.0
rmApplied add-sqr-sqrt57.0
Applied pow157.0
Applied sqrt-pow157.0
Applied log-pow57.0
Applied times-frac56.9
Simplified56.9
rmApplied add-sqr-sqrt57.0
Applied add-cube-cbrt56.9
Applied times-frac56.9
Applied associate-*l*56.9
Taylor expanded around -inf 6.5
Simplified6.5
if -1.5084829120832133e+136 < re < 441347509.722609Initial program 21.6
rmApplied add-sqr-sqrt21.6
Applied pow121.6
Applied sqrt-pow121.6
Applied log-pow21.6
Applied times-frac21.6
Simplified21.6
rmApplied div-inv21.5
if 441347509.722609 < re Initial program 39.5
rmApplied add-sqr-sqrt39.5
Applied pow139.5
Applied sqrt-pow139.5
Applied log-pow39.5
Applied times-frac39.4
Simplified39.4
rmApplied add-sqr-sqrt39.7
Applied add-cube-cbrt39.4
Applied times-frac39.4
Applied associate-*l*39.4
Taylor expanded around inf 13.3
Simplified13.3
Final simplification17.4
herbie shell --seed 2019139
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))