\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -6.070696817770049897362818226450973536409 \cdot 10^{119}:\\
\;\;\;\;\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 7.247940179609697569008099059442523872078 \cdot 10^{118}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(2 \cdot \left(\log re \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\
\end{array}double f(double re, double im) {
double r26849 = re;
double r26850 = r26849 * r26849;
double r26851 = im;
double r26852 = r26851 * r26851;
double r26853 = r26850 + r26852;
double r26854 = sqrt(r26853);
double r26855 = log(r26854);
double r26856 = 10.0;
double r26857 = log(r26856);
double r26858 = r26855 / r26857;
return r26858;
}
double f(double re, double im) {
double r26859 = re;
double r26860 = -6.07069681777005e+119;
bool r26861 = r26859 <= r26860;
double r26862 = 0.5;
double r26863 = 10.0;
double r26864 = log(r26863);
double r26865 = sqrt(r26864);
double r26866 = r26862 / r26865;
double r26867 = -2.0;
double r26868 = -1.0;
double r26869 = r26868 / r26859;
double r26870 = log(r26869);
double r26871 = 1.0;
double r26872 = r26871 / r26864;
double r26873 = sqrt(r26872);
double r26874 = r26870 * r26873;
double r26875 = r26867 * r26874;
double r26876 = r26866 * r26875;
double r26877 = 7.247940179609698e+118;
bool r26878 = r26859 <= r26877;
double r26879 = cbrt(r26862);
double r26880 = r26879 * r26879;
double r26881 = sqrt(r26865);
double r26882 = r26880 / r26881;
double r26883 = r26879 / r26881;
double r26884 = r26859 * r26859;
double r26885 = im;
double r26886 = r26885 * r26885;
double r26887 = r26884 + r26886;
double r26888 = log(r26887);
double r26889 = r26888 / r26865;
double r26890 = r26883 * r26889;
double r26891 = r26882 * r26890;
double r26892 = 2.0;
double r26893 = log(r26859);
double r26894 = r26893 * r26873;
double r26895 = r26892 * r26894;
double r26896 = r26866 * r26895;
double r26897 = r26878 ? r26891 : r26896;
double r26898 = r26861 ? r26876 : r26897;
return r26898;
}



Bits error versus re



Bits error versus im
Results
if re < -6.07069681777005e+119Initial program 55.7
rmApplied add-sqr-sqrt55.7
Applied pow1/255.7
Applied log-pow55.7
Applied times-frac55.7
Taylor expanded around -inf 8.3
if -6.07069681777005e+119 < re < 7.247940179609698e+118Initial program 21.7
rmApplied add-sqr-sqrt21.7
Applied pow1/221.7
Applied log-pow21.7
Applied times-frac21.7
rmApplied add-sqr-sqrt21.7
Applied sqrt-prod22.2
Applied add-cube-cbrt21.7
Applied times-frac21.7
Applied associate-*l*21.6
if 7.247940179609698e+118 < re Initial program 54.1
rmApplied add-sqr-sqrt54.1
Applied pow1/254.1
Applied log-pow54.1
Applied times-frac54.0
Taylor expanded around inf 8.0
Simplified8.0
Final simplification17.6
herbie shell --seed 2019303
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))