\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -1.980267520528827579962452667551640625594 \cdot 10^{108}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\frac{\log 10}{\sqrt{\frac{1}{2}} \cdot \left(-2 \cdot \log \left(\frac{-1}{re}\right)\right)}}\\
\mathbf{elif}\;re \le 5.596984149511623767977842891630738092037 \cdot 10^{118}:\\
\;\;\;\;\frac{\left|\sqrt[3]{1}\right|}{\log 10} \cdot \left(\left(\sqrt{\frac{\sqrt[3]{1}}{2}} \cdot \log \left(re \cdot re + im \cdot im\right)\right) \cdot \sqrt{\frac{1}{2}}\right)\\
\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 r57851 = re;
double r57852 = r57851 * r57851;
double r57853 = im;
double r57854 = r57853 * r57853;
double r57855 = r57852 + r57854;
double r57856 = sqrt(r57855);
double r57857 = log(r57856);
double r57858 = 10.0;
double r57859 = log(r57858);
double r57860 = r57857 / r57859;
return r57860;
}
double f(double re, double im) {
double r57861 = re;
double r57862 = -1.9802675205288276e+108;
bool r57863 = r57861 <= r57862;
double r57864 = 0.5;
double r57865 = sqrt(r57864);
double r57866 = 10.0;
double r57867 = log(r57866);
double r57868 = 2.0;
double r57869 = -1.0;
double r57870 = r57869 / r57861;
double r57871 = log(r57870);
double r57872 = r57868 * r57871;
double r57873 = -r57872;
double r57874 = r57865 * r57873;
double r57875 = r57867 / r57874;
double r57876 = r57865 / r57875;
double r57877 = 5.596984149511624e+118;
bool r57878 = r57861 <= r57877;
double r57879 = 1.0;
double r57880 = cbrt(r57879);
double r57881 = fabs(r57880);
double r57882 = r57881 / r57867;
double r57883 = r57880 / r57868;
double r57884 = sqrt(r57883);
double r57885 = r57861 * r57861;
double r57886 = im;
double r57887 = r57886 * r57886;
double r57888 = r57885 + r57887;
double r57889 = log(r57888);
double r57890 = r57884 * r57889;
double r57891 = r57890 * r57865;
double r57892 = r57882 * r57891;
double r57893 = log(r57861);
double r57894 = r57893 * r57868;
double r57895 = r57865 * r57894;
double r57896 = r57867 / r57895;
double r57897 = r57865 / r57896;
double r57898 = r57878 ? r57892 : r57897;
double r57899 = r57863 ? r57876 : r57898;
return r57899;
}



Bits error versus re



Bits error versus im
Results
if re < -1.9802675205288276e+108Initial program 52.3
rmApplied pow152.3
Applied sqrt-pow152.3
Applied log-pow52.3
Applied associate-/l*52.2
rmApplied add-sqr-sqrt52.3
Applied associate-/l*52.2
Simplified52.2
rmApplied div-inv52.2
Applied associate-/l*52.2
Simplified52.2
Taylor expanded around -inf 8.8
if -1.9802675205288276e+108 < re < 5.596984149511624e+118Initial program 21.6
rmApplied pow121.6
Applied sqrt-pow121.6
Applied log-pow21.6
Applied associate-/l*21.6
rmApplied add-sqr-sqrt21.7
Applied associate-/l*21.5
Simplified21.5
rmApplied div-inv21.6
Applied associate-/l*21.5
Simplified21.5
rmApplied div-inv21.5
Applied *-un-lft-identity21.5
Applied add-cube-cbrt21.5
Applied times-frac21.5
Applied sqrt-prod21.5
Applied times-frac21.5
Simplified21.5
Simplified21.5
if 5.596984149511624e+118 < re Initial program 55.3
rmApplied pow155.3
Applied sqrt-pow155.3
Applied log-pow55.3
Applied associate-/l*55.3
rmApplied add-sqr-sqrt55.3
Applied associate-/l*55.3
Simplified55.3
rmApplied div-inv55.3
Applied associate-/l*55.3
Simplified55.3
Taylor expanded around inf 8.3
Simplified8.3
Final simplification17.4
herbie shell --seed 2019356
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))