\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -1.2627952124883404 \cdot 10^{+147}:\\
\;\;\;\;\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 -7.44826331886994 \cdot 10^{-262}:\\
\;\;\;\;\left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10}}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right) \cdot \frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10} \cdot \sqrt[3]{\log 10}}}\\
\mathbf{elif}\;re \le 1.475790091087918 \cdot 10^{-158}:\\
\;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}} \cdot \left(\left(\sqrt{\frac{1}{2}} \cdot {\left(\frac{\frac{1}{\log 10}}{\log 10 \cdot \log 10}\right)}^{\frac{1}{4}}\right) \cdot \left(2 \cdot \log im\right)\right)\\
\mathbf{elif}\;re \le 6.756828864494474 \cdot 10^{+105}:\\
\;\;\;\;\left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10}}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right) \cdot \frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10} \cdot \sqrt[3]{\log 10}}}\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \left(2 \cdot \log re\right)\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r1000840 = re;
double r1000841 = r1000840 * r1000840;
double r1000842 = im;
double r1000843 = r1000842 * r1000842;
double r1000844 = r1000841 + r1000843;
double r1000845 = sqrt(r1000844);
double r1000846 = log(r1000845);
double r1000847 = 10.0;
double r1000848 = log(r1000847);
double r1000849 = r1000846 / r1000848;
return r1000849;
}
double f(double re, double im) {
double r1000850 = re;
double r1000851 = -1.2627952124883404e+147;
bool r1000852 = r1000850 <= r1000851;
double r1000853 = 0.5;
double r1000854 = 10.0;
double r1000855 = log(r1000854);
double r1000856 = sqrt(r1000855);
double r1000857 = r1000853 / r1000856;
double r1000858 = 1.0;
double r1000859 = r1000858 / r1000855;
double r1000860 = sqrt(r1000859);
double r1000861 = -1.0;
double r1000862 = r1000861 / r1000850;
double r1000863 = log(r1000862);
double r1000864 = r1000860 * r1000863;
double r1000865 = -2.0;
double r1000866 = r1000864 * r1000865;
double r1000867 = r1000857 * r1000866;
double r1000868 = -7.44826331886994e-262;
bool r1000869 = r1000850 <= r1000868;
double r1000870 = cbrt(r1000853);
double r1000871 = cbrt(r1000855);
double r1000872 = sqrt(r1000871);
double r1000873 = r1000870 / r1000872;
double r1000874 = r1000850 * r1000850;
double r1000875 = im;
double r1000876 = r1000875 * r1000875;
double r1000877 = r1000874 + r1000876;
double r1000878 = log(r1000877);
double r1000879 = r1000878 / r1000856;
double r1000880 = r1000873 * r1000879;
double r1000881 = r1000870 * r1000870;
double r1000882 = r1000871 * r1000871;
double r1000883 = sqrt(r1000882);
double r1000884 = r1000881 / r1000883;
double r1000885 = r1000880 * r1000884;
double r1000886 = 1.475790091087918e-158;
bool r1000887 = r1000850 <= r1000886;
double r1000888 = sqrt(r1000857);
double r1000889 = sqrt(r1000853);
double r1000890 = r1000855 * r1000855;
double r1000891 = r1000859 / r1000890;
double r1000892 = 0.25;
double r1000893 = pow(r1000891, r1000892);
double r1000894 = r1000889 * r1000893;
double r1000895 = 2.0;
double r1000896 = log(r1000875);
double r1000897 = r1000895 * r1000896;
double r1000898 = r1000894 * r1000897;
double r1000899 = r1000888 * r1000898;
double r1000900 = 6.756828864494474e+105;
bool r1000901 = r1000850 <= r1000900;
double r1000902 = log(r1000850);
double r1000903 = r1000895 * r1000902;
double r1000904 = r1000860 * r1000903;
double r1000905 = r1000904 * r1000857;
double r1000906 = r1000901 ? r1000885 : r1000905;
double r1000907 = r1000887 ? r1000899 : r1000906;
double r1000908 = r1000869 ? r1000885 : r1000907;
double r1000909 = r1000852 ? r1000867 : r1000908;
return r1000909;
}



Bits error versus re



Bits error versus im
Results
if re < -1.2627952124883404e+147Initial program 60.1
rmApplied add-sqr-sqrt60.1
Applied pow1/260.1
Applied log-pow60.1
Applied times-frac60.1
Taylor expanded around -inf 8.0
if -1.2627952124883404e+147 < re < -7.44826331886994e-262 or 1.475790091087918e-158 < re < 6.756828864494474e+105Initial program 18.0
rmApplied add-sqr-sqrt18.0
Applied pow1/218.0
Applied log-pow18.0
Applied times-frac18.0
rmApplied add-cube-cbrt18.6
Applied sqrt-prod18.6
Applied add-cube-cbrt18.0
Applied times-frac18.0
Applied associate-*l*17.9
if -7.44826331886994e-262 < re < 1.475790091087918e-158Initial program 30.1
rmApplied add-sqr-sqrt30.1
Applied pow1/230.1
Applied log-pow30.1
Applied times-frac30.1
rmApplied add-sqr-sqrt30.1
Applied associate-*l*30.0
Taylor expanded around 0 34.9
Simplified34.9
if 6.756828864494474e+105 < re Initial program 50.9
rmApplied add-sqr-sqrt50.9
Applied pow1/250.9
Applied log-pow50.9
Applied times-frac50.9
Taylor expanded around inf 9.2
Simplified9.2
Final simplification18.0
herbie shell --seed 2019165
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))