\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -1.156407601863717509012505141513837828653 \cdot 10^{112}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt[3]{\log 10} \cdot \sqrt[3]{\log 10}} \cdot \frac{\sqrt[3]{\frac{1}{2}}}{\frac{\sqrt[3]{\log 10}}{-2 \cdot \log \left(\frac{-1}{re}\right)}}\\
\mathbf{elif}\;re \le 1.244988213884062755522549209945596691708 \cdot 10^{138}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\log 10 \cdot \frac{\frac{1}{\log \left(re \cdot re + im \cdot im\right)}}{\sqrt{\frac{1}{2}}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\frac{\log 10}{\sqrt{\frac{1}{2}} \cdot \left(\log re \cdot 2\right)}}\\
\end{array}double f(double re, double im) {
double r29894 = re;
double r29895 = r29894 * r29894;
double r29896 = im;
double r29897 = r29896 * r29896;
double r29898 = r29895 + r29897;
double r29899 = sqrt(r29898);
double r29900 = log(r29899);
double r29901 = 10.0;
double r29902 = log(r29901);
double r29903 = r29900 / r29902;
return r29903;
}
double f(double re, double im) {
double r29904 = re;
double r29905 = -1.1564076018637175e+112;
bool r29906 = r29904 <= r29905;
double r29907 = 0.5;
double r29908 = cbrt(r29907);
double r29909 = r29908 * r29908;
double r29910 = 10.0;
double r29911 = log(r29910);
double r29912 = cbrt(r29911);
double r29913 = r29912 * r29912;
double r29914 = r29909 / r29913;
double r29915 = -2.0;
double r29916 = -1.0;
double r29917 = r29916 / r29904;
double r29918 = log(r29917);
double r29919 = r29915 * r29918;
double r29920 = r29912 / r29919;
double r29921 = r29908 / r29920;
double r29922 = r29914 * r29921;
double r29923 = 1.2449882138840628e+138;
bool r29924 = r29904 <= r29923;
double r29925 = sqrt(r29907);
double r29926 = 1.0;
double r29927 = r29904 * r29904;
double r29928 = im;
double r29929 = r29928 * r29928;
double r29930 = r29927 + r29929;
double r29931 = log(r29930);
double r29932 = r29926 / r29931;
double r29933 = r29932 / r29925;
double r29934 = r29911 * r29933;
double r29935 = r29925 / r29934;
double r29936 = log(r29904);
double r29937 = 2.0;
double r29938 = r29936 * r29937;
double r29939 = r29925 * r29938;
double r29940 = r29911 / r29939;
double r29941 = r29925 / r29940;
double r29942 = r29924 ? r29935 : r29941;
double r29943 = r29906 ? r29922 : r29942;
return r29943;
}



Bits error versus re



Bits error versus im
Results
if re < -1.1564076018637175e+112Initial program 52.8
rmApplied pow152.8
Applied sqrt-pow152.8
Applied log-pow52.8
Applied associate-/l*52.8
rmApplied pow152.8
Applied log-pow52.8
Applied add-cube-cbrt53.0
Applied times-frac53.0
Applied add-cube-cbrt52.8
Applied times-frac52.8
Simplified52.8
Simplified52.8
Taylor expanded around -inf 8.5
Simplified8.5
if -1.1564076018637175e+112 < re < 1.2449882138840628e+138Initial program 22.1
rmApplied pow122.1
Applied sqrt-pow122.1
Applied log-pow22.1
Applied associate-/l*22.1
rmApplied add-sqr-sqrt22.2
Applied associate-/l*22.0
Simplified22.0
rmApplied div-inv22.0
Simplified22.0
if 1.2449882138840628e+138 < re Initial program 58.8
rmApplied pow158.8
Applied sqrt-pow158.8
Applied log-pow58.8
Applied associate-/l*58.8
rmApplied add-sqr-sqrt58.8
Applied associate-/l*58.8
Simplified58.8
Taylor expanded around inf 8.0
Simplified8.0
Final simplification17.9
herbie shell --seed 2019323
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))