\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 r29842 = re;
double r29843 = r29842 * r29842;
double r29844 = im;
double r29845 = r29844 * r29844;
double r29846 = r29843 + r29845;
double r29847 = sqrt(r29846);
double r29848 = log(r29847);
double r29849 = 10.0;
double r29850 = log(r29849);
double r29851 = r29848 / r29850;
return r29851;
}
double f(double re, double im) {
double r29852 = re;
double r29853 = -1.1564076018637175e+112;
bool r29854 = r29852 <= r29853;
double r29855 = 0.5;
double r29856 = cbrt(r29855);
double r29857 = r29856 * r29856;
double r29858 = 10.0;
double r29859 = log(r29858);
double r29860 = cbrt(r29859);
double r29861 = r29860 * r29860;
double r29862 = r29857 / r29861;
double r29863 = -2.0;
double r29864 = -1.0;
double r29865 = r29864 / r29852;
double r29866 = log(r29865);
double r29867 = r29863 * r29866;
double r29868 = r29860 / r29867;
double r29869 = r29856 / r29868;
double r29870 = r29862 * r29869;
double r29871 = 1.2449882138840628e+138;
bool r29872 = r29852 <= r29871;
double r29873 = sqrt(r29855);
double r29874 = 1.0;
double r29875 = r29852 * r29852;
double r29876 = im;
double r29877 = r29876 * r29876;
double r29878 = r29875 + r29877;
double r29879 = log(r29878);
double r29880 = r29874 / r29879;
double r29881 = r29880 / r29873;
double r29882 = r29859 * r29881;
double r29883 = r29873 / r29882;
double r29884 = log(r29852);
double r29885 = 2.0;
double r29886 = r29884 * r29885;
double r29887 = r29873 * r29886;
double r29888 = r29859 / r29887;
double r29889 = r29873 / r29888;
double r29890 = r29872 ? r29883 : r29889;
double r29891 = r29854 ? r29870 : r29890;
return r29891;
}



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)))