\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -4.6872226106627852 \cdot 10^{117}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(-\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\
\mathbf{elif}\;re \le 6.23122095692666968 \cdot 10^{141}:\\
\;\;\;\;\sqrt{\frac{1}{\sqrt[3]{\sqrt{\log 10}} \cdot \sqrt[3]{\sqrt{\log 10}}}} \cdot \left(\left({\left(\sqrt{\frac{1}{\sqrt{\log 10}}}\right)}^{3} \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)\right) \cdot \sqrt{\frac{1}{\sqrt[3]{\sqrt{\log 10}}}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log re \cdot \sqrt{\frac{1}{\log 10}}\right)\\
\end{array}double f(double re, double im) {
double r49997 = re;
double r49998 = r49997 * r49997;
double r49999 = im;
double r50000 = r49999 * r49999;
double r50001 = r49998 + r50000;
double r50002 = sqrt(r50001);
double r50003 = log(r50002);
double r50004 = 10.0;
double r50005 = log(r50004);
double r50006 = r50003 / r50005;
return r50006;
}
double f(double re, double im) {
double r50007 = re;
double r50008 = -4.687222610662785e+117;
bool r50009 = r50007 <= r50008;
double r50010 = 1.0;
double r50011 = 10.0;
double r50012 = log(r50011);
double r50013 = sqrt(r50012);
double r50014 = r50010 / r50013;
double r50015 = -1.0;
double r50016 = r50015 / r50007;
double r50017 = log(r50016);
double r50018 = r50010 / r50012;
double r50019 = sqrt(r50018);
double r50020 = r50017 * r50019;
double r50021 = -r50020;
double r50022 = r50014 * r50021;
double r50023 = 6.23122095692667e+141;
bool r50024 = r50007 <= r50023;
double r50025 = cbrt(r50013);
double r50026 = r50025 * r50025;
double r50027 = r50010 / r50026;
double r50028 = sqrt(r50027);
double r50029 = sqrt(r50014);
double r50030 = 3.0;
double r50031 = pow(r50029, r50030);
double r50032 = r50007 * r50007;
double r50033 = im;
double r50034 = r50033 * r50033;
double r50035 = r50032 + r50034;
double r50036 = sqrt(r50035);
double r50037 = log(r50036);
double r50038 = r50031 * r50037;
double r50039 = r50010 / r50025;
double r50040 = sqrt(r50039);
double r50041 = r50038 * r50040;
double r50042 = r50028 * r50041;
double r50043 = log(r50007);
double r50044 = r50043 * r50019;
double r50045 = r50014 * r50044;
double r50046 = r50024 ? r50042 : r50045;
double r50047 = r50009 ? r50022 : r50046;
return r50047;
}



Bits error versus re



Bits error versus im
Results
if re < -4.687222610662785e+117Initial program 54.9
rmApplied add-sqr-sqrt54.9
Applied pow154.9
Applied log-pow54.9
Applied times-frac54.9
Taylor expanded around -inf 8.7
Simplified8.7
if -4.687222610662785e+117 < re < 6.23122095692667e+141Initial program 21.4
rmApplied add-sqr-sqrt21.4
Applied pow121.4
Applied log-pow21.4
Applied times-frac21.3
rmApplied add-sqr-sqrt21.3
Applied associate-*l*21.4
rmApplied add-cube-cbrt21.3
Applied *-un-lft-identity21.3
Applied times-frac21.3
Applied sqrt-prod21.3
Applied associate-*l*21.3
Simplified21.2
if 6.23122095692667e+141 < re Initial program 60.0
rmApplied add-sqr-sqrt60.0
Applied pow160.0
Applied log-pow60.0
Applied times-frac60.0
Taylor expanded around inf 7.8
Simplified7.8
Final simplification17.4
herbie shell --seed 2020042
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))