\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 r997821 = re;
double r997822 = r997821 * r997821;
double r997823 = im;
double r997824 = r997823 * r997823;
double r997825 = r997822 + r997824;
double r997826 = sqrt(r997825);
double r997827 = log(r997826);
double r997828 = 10.0;
double r997829 = log(r997828);
double r997830 = r997827 / r997829;
return r997830;
}
double f(double re, double im) {
double r997831 = re;
double r997832 = -9.68163596973406e+102;
bool r997833 = r997831 <= r997832;
double r997834 = 0.5;
double r997835 = 10.0;
double r997836 = log(r997835);
double r997837 = sqrt(r997836);
double r997838 = r997834 / r997837;
double r997839 = 1.0;
double r997840 = r997839 / r997836;
double r997841 = sqrt(r997840);
double r997842 = -1.0;
double r997843 = r997842 / r997831;
double r997844 = log(r997843);
double r997845 = r997841 * r997844;
double r997846 = -2.0;
double r997847 = r997845 * r997846;
double r997848 = r997838 * r997847;
double r997849 = 3.466359063004586e+143;
bool r997850 = r997831 <= r997849;
double r997851 = cbrt(r997834);
double r997852 = r997851 * r997851;
double r997853 = sqrt(r997837);
double r997854 = r997852 / r997853;
double r997855 = r997831 * r997831;
double r997856 = im;
double r997857 = r997856 * r997856;
double r997858 = r997855 + r997857;
double r997859 = log(r997858);
double r997860 = r997859 / r997837;
double r997861 = r997851 / r997853;
double r997862 = r997860 * r997861;
double r997863 = r997854 * r997862;
double r997864 = 2.0;
double r997865 = log(r997831);
double r997866 = r997841 * r997865;
double r997867 = r997864 * r997866;
double r997868 = r997867 * r997838;
double r997869 = r997850 ? r997863 : r997868;
double r997870 = r997833 ? r997848 : r997869;
return r997870;
}



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