\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 r50069 = re;
double r50070 = r50069 * r50069;
double r50071 = im;
double r50072 = r50071 * r50071;
double r50073 = r50070 + r50072;
double r50074 = sqrt(r50073);
double r50075 = log(r50074);
double r50076 = 10.0;
double r50077 = log(r50076);
double r50078 = r50075 / r50077;
return r50078;
}
double f(double re, double im) {
double r50079 = re;
double r50080 = -4.687222610662785e+117;
bool r50081 = r50079 <= r50080;
double r50082 = 1.0;
double r50083 = 10.0;
double r50084 = log(r50083);
double r50085 = sqrt(r50084);
double r50086 = r50082 / r50085;
double r50087 = -1.0;
double r50088 = r50087 / r50079;
double r50089 = log(r50088);
double r50090 = r50082 / r50084;
double r50091 = sqrt(r50090);
double r50092 = r50089 * r50091;
double r50093 = -r50092;
double r50094 = r50086 * r50093;
double r50095 = 6.23122095692667e+141;
bool r50096 = r50079 <= r50095;
double r50097 = cbrt(r50085);
double r50098 = r50097 * r50097;
double r50099 = r50082 / r50098;
double r50100 = sqrt(r50099);
double r50101 = sqrt(r50086);
double r50102 = 3.0;
double r50103 = pow(r50101, r50102);
double r50104 = r50079 * r50079;
double r50105 = im;
double r50106 = r50105 * r50105;
double r50107 = r50104 + r50106;
double r50108 = sqrt(r50107);
double r50109 = log(r50108);
double r50110 = r50103 * r50109;
double r50111 = r50082 / r50097;
double r50112 = sqrt(r50111);
double r50113 = r50110 * r50112;
double r50114 = r50100 * r50113;
double r50115 = log(r50079);
double r50116 = r50115 * r50091;
double r50117 = r50086 * r50116;
double r50118 = r50096 ? r50114 : r50117;
double r50119 = r50081 ? r50094 : r50118;
return r50119;
}



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