\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -4.1975508038006968 \cdot 10^{153}:\\
\;\;\;\;\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 -1.53062664724659985 \cdot 10^{-287}:\\
\;\;\;\;\frac{\frac{\frac{1}{2}}{\sqrt{\log 10}}}{\sqrt{\log 10}} \cdot \log \left(re \cdot re + im \cdot im\right)\\
\mathbf{elif}\;re \le 9.88087578424207621 \cdot 10^{-281}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(2 \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\
\mathbf{elif}\;re \le 2.9332118608681794 \cdot 10^{97}:\\
\;\;\;\;\frac{\frac{\frac{1}{2}}{\sqrt{\log 10}}}{\sqrt{\log 10}} \cdot \log \left(re \cdot re + im \cdot im\right)\\
\mathbf{else}:\\
\;\;\;\;\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)\\
\end{array}double f(double re, double im) {
double r96835 = re;
double r96836 = r96835 * r96835;
double r96837 = im;
double r96838 = r96837 * r96837;
double r96839 = r96836 + r96838;
double r96840 = sqrt(r96839);
double r96841 = log(r96840);
double r96842 = 10.0;
double r96843 = log(r96842);
double r96844 = r96841 / r96843;
return r96844;
}
double f(double re, double im) {
double r96845 = re;
double r96846 = -4.197550803800697e+153;
bool r96847 = r96845 <= r96846;
double r96848 = 0.5;
double r96849 = 10.0;
double r96850 = log(r96849);
double r96851 = sqrt(r96850);
double r96852 = r96848 / r96851;
double r96853 = -2.0;
double r96854 = -1.0;
double r96855 = r96854 / r96845;
double r96856 = log(r96855);
double r96857 = 1.0;
double r96858 = r96857 / r96850;
double r96859 = sqrt(r96858);
double r96860 = r96856 * r96859;
double r96861 = r96853 * r96860;
double r96862 = r96852 * r96861;
double r96863 = -1.5306266472465998e-287;
bool r96864 = r96845 <= r96863;
double r96865 = r96852 / r96851;
double r96866 = r96845 * r96845;
double r96867 = im;
double r96868 = r96867 * r96867;
double r96869 = r96866 + r96868;
double r96870 = log(r96869);
double r96871 = r96865 * r96870;
double r96872 = 9.880875784242076e-281;
bool r96873 = r96845 <= r96872;
double r96874 = 2.0;
double r96875 = log(r96867);
double r96876 = r96875 * r96859;
double r96877 = r96874 * r96876;
double r96878 = r96852 * r96877;
double r96879 = 2.9332118608681794e+97;
bool r96880 = r96845 <= r96879;
double r96881 = r96857 / r96845;
double r96882 = log(r96881);
double r96883 = r96882 * r96859;
double r96884 = r96853 * r96883;
double r96885 = r96852 * r96884;
double r96886 = r96880 ? r96871 : r96885;
double r96887 = r96873 ? r96878 : r96886;
double r96888 = r96864 ? r96871 : r96887;
double r96889 = r96847 ? r96862 : r96888;
return r96889;
}



Bits error versus re



Bits error versus im
Results
if re < -4.197550803800697e+153Initial program 63.9
rmApplied clear-num63.9
rmApplied add-cube-cbrt63.9
Applied associate-/l*63.9
Simplified63.9
rmApplied pow1/263.9
Applied log-pow63.9
Applied add-sqr-sqrt63.9
Applied times-frac63.9
Applied times-frac63.9
Simplified63.9
Simplified63.9
Taylor expanded around -inf 6.8
if -4.197550803800697e+153 < re < -1.5306266472465998e-287 or 9.880875784242076e-281 < re < 2.9332118608681794e+97Initial program 21.8
rmApplied clear-num21.8
rmApplied add-cube-cbrt21.8
Applied associate-/l*21.8
Simplified21.8
rmApplied pow1/221.8
Applied log-pow21.8
Applied add-sqr-sqrt21.8
Applied times-frac22.0
Applied times-frac21.8
Simplified21.8
Simplified21.8
rmApplied associate-/r/21.7
Applied associate-*r*21.6
Simplified21.6
if -1.5306266472465998e-287 < re < 9.880875784242076e-281Initial program 34.0
rmApplied clear-num34.0
rmApplied add-cube-cbrt34.0
Applied associate-/l*34.0
Simplified34.0
rmApplied pow1/234.0
Applied log-pow34.0
Applied add-sqr-sqrt34.0
Applied times-frac34.1
Applied times-frac33.9
Simplified33.9
Simplified33.9
Taylor expanded around 0 32.3
if 2.9332118608681794e+97 < re Initial program 51.5
rmApplied clear-num51.5
rmApplied add-cube-cbrt51.5
Applied associate-/l*51.5
Simplified51.5
rmApplied pow1/251.5
Applied log-pow51.5
Applied add-sqr-sqrt51.5
Applied times-frac51.5
Applied times-frac51.5
Simplified51.5
Simplified51.5
Taylor expanded around inf 8.0
Final simplification17.8
herbie shell --seed 2020046
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))