\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -2.7728325482865987 \cdot 10^{+132}:\\
\;\;\;\;\frac{\log \left(\frac{-1}{re}\right)}{\log 10} \cdot -1\\
\mathbf{elif}\;re \le -3.454520874704003 \cdot 10^{-249}:\\
\;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\\
\mathbf{elif}\;re \le 1.0730314248253915 \cdot 10^{-288}:\\
\;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \log im\right) \cdot \frac{1}{\sqrt{\log 10}}\\
\mathbf{elif}\;re \le 1.1882351325142646 \cdot 10^{+39}:\\
\;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\frac{1}{\sqrt{\log 10}} \cdot \log re\right)\\
\end{array}double f(double re, double im) {
double r806001 = re;
double r806002 = r806001 * r806001;
double r806003 = im;
double r806004 = r806003 * r806003;
double r806005 = r806002 + r806004;
double r806006 = sqrt(r806005);
double r806007 = log(r806006);
double r806008 = 10.0;
double r806009 = log(r806008);
double r806010 = r806007 / r806009;
return r806010;
}
double f(double re, double im) {
double r806011 = re;
double r806012 = -2.7728325482865987e+132;
bool r806013 = r806011 <= r806012;
double r806014 = -1.0;
double r806015 = r806014 / r806011;
double r806016 = log(r806015);
double r806017 = 10.0;
double r806018 = log(r806017);
double r806019 = r806016 / r806018;
double r806020 = r806019 * r806014;
double r806021 = -3.454520874704003e-249;
bool r806022 = r806011 <= r806021;
double r806023 = 1.0;
double r806024 = sqrt(r806018);
double r806025 = r806023 / r806024;
double r806026 = im;
double r806027 = r806026 * r806026;
double r806028 = r806011 * r806011;
double r806029 = r806027 + r806028;
double r806030 = sqrt(r806029);
double r806031 = log(r806030);
double r806032 = sqrt(r806025);
double r806033 = r806031 * r806032;
double r806034 = r806025 * r806033;
double r806035 = r806034 * r806032;
double r806036 = 1.0730314248253915e-288;
bool r806037 = r806011 <= r806036;
double r806038 = log(r806026);
double r806039 = r806025 * r806038;
double r806040 = r806039 * r806025;
double r806041 = 1.1882351325142646e+39;
bool r806042 = r806011 <= r806041;
double r806043 = log(r806011);
double r806044 = r806025 * r806043;
double r806045 = r806025 * r806044;
double r806046 = r806042 ? r806035 : r806045;
double r806047 = r806037 ? r806040 : r806046;
double r806048 = r806022 ? r806035 : r806047;
double r806049 = r806013 ? r806020 : r806048;
return r806049;
}



Bits error versus re



Bits error versus im
Results
if re < -2.7728325482865987e+132Initial program 56.6
rmApplied add-sqr-sqrt56.6
Applied *-un-lft-identity56.6
Applied times-frac56.5
rmApplied div-inv56.5
rmApplied add-sqr-sqrt56.5
Applied associate-*r*56.6
Taylor expanded around -inf 8.6
if -2.7728325482865987e+132 < re < -3.454520874704003e-249 or 1.0730314248253915e-288 < re < 1.1882351325142646e+39Initial program 20.1
rmApplied add-sqr-sqrt20.1
Applied *-un-lft-identity20.1
Applied times-frac20.0
rmApplied div-inv19.9
rmApplied add-sqr-sqrt19.9
Applied associate-*r*20.0
rmApplied associate-*r*20.0
if -3.454520874704003e-249 < re < 1.0730314248253915e-288Initial program 30.7
rmApplied add-sqr-sqrt30.7
Applied *-un-lft-identity30.7
Applied times-frac30.7
rmApplied div-inv30.6
Taylor expanded around 0 30.3
if 1.1882351325142646e+39 < re Initial program 41.8
rmApplied add-sqr-sqrt41.8
Applied *-un-lft-identity41.8
Applied times-frac41.8
rmApplied div-inv41.8
Taylor expanded around inf 12.3
Final simplification17.3
herbie shell --seed 2019137
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))