\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -9.68163596973405975259895298385316105053 \cdot 10^{102}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot -2\right)\\
\mathbf{elif}\;re \le 3.466359063004585928983019110650629959503 \cdot 10^{143}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot \frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(2 \cdot \left(\sqrt{\frac{1}{\log 10}} \cdot \log re\right)\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r997835 = re;
double r997836 = r997835 * r997835;
double r997837 = im;
double r997838 = r997837 * r997837;
double r997839 = r997836 + r997838;
double r997840 = sqrt(r997839);
double r997841 = log(r997840);
double r997842 = 10.0;
double r997843 = log(r997842);
double r997844 = r997841 / r997843;
return r997844;
}
double f(double re, double im) {
double r997845 = re;
double r997846 = -9.68163596973406e+102;
bool r997847 = r997845 <= r997846;
double r997848 = 0.5;
double r997849 = 10.0;
double r997850 = log(r997849);
double r997851 = sqrt(r997850);
double r997852 = r997848 / r997851;
double r997853 = 1.0;
double r997854 = r997853 / r997850;
double r997855 = sqrt(r997854);
double r997856 = -1.0;
double r997857 = r997856 / r997845;
double r997858 = log(r997857);
double r997859 = r997855 * r997858;
double r997860 = -2.0;
double r997861 = r997859 * r997860;
double r997862 = r997852 * r997861;
double r997863 = 3.466359063004586e+143;
bool r997864 = r997845 <= r997863;
double r997865 = cbrt(r997848);
double r997866 = r997865 * r997865;
double r997867 = sqrt(r997851);
double r997868 = r997866 / r997867;
double r997869 = r997845 * r997845;
double r997870 = im;
double r997871 = r997870 * r997870;
double r997872 = r997869 + r997871;
double r997873 = log(r997872);
double r997874 = r997873 / r997851;
double r997875 = r997865 / r997867;
double r997876 = r997874 * r997875;
double r997877 = r997868 * r997876;
double r997878 = 2.0;
double r997879 = log(r997845);
double r997880 = r997855 * r997879;
double r997881 = r997878 * r997880;
double r997882 = r997881 * r997852;
double r997883 = r997864 ? r997877 : r997882;
double r997884 = r997847 ? r997862 : r997883;
return r997884;
}



Bits error versus re



Bits error versus im
Results
if re < -9.68163596973406e+102Initial program 52.0
rmApplied add-sqr-sqrt52.0
Applied pow1/252.0
Applied log-pow52.0
Applied times-frac52.0
Taylor expanded around -inf 8.8
if -9.68163596973406e+102 < re < 3.466359063004586e+143Initial program 21.3
rmApplied add-sqr-sqrt21.3
Applied pow1/221.3
Applied log-pow21.3
Applied times-frac21.3
rmApplied add-sqr-sqrt21.3
Applied sqrt-prod21.8
Applied add-cube-cbrt21.3
Applied times-frac21.3
Applied associate-*l*21.2
if 3.466359063004586e+143 < re Initial program 60.7
rmApplied add-sqr-sqrt60.7
Applied pow1/260.7
Applied log-pow60.7
Applied times-frac60.7
Taylor expanded around inf 7.8
Simplified7.8
Final simplification17.4
herbie shell --seed 2019172
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10.0)))