\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -4.219332295965777137041720193068407814529 \cdot 10^{82}:\\
\;\;\;\;\left(\frac{\sqrt{\frac{1}{\sqrt{2}}}}{\log 10} \cdot \left|\sqrt[3]{\frac{1}{2}}\right|\right) \cdot \frac{\sqrt{\frac{1}{\sqrt{2}}}}{\frac{\frac{1}{-2 \cdot \log \left(\frac{-1}{re}\right)}}{\sqrt{\sqrt[3]{\frac{1}{2}}}}}\\
\mathbf{elif}\;re \le -3.743447547042940916879606925039648794356 \cdot 10^{-217}:\\
\;\;\;\;\left(\frac{\sqrt{\frac{1}{\sqrt{2}}}}{\log 10} \cdot \left|\sqrt[3]{\frac{1}{2}}\right|\right) \cdot \frac{\sqrt{\frac{1}{\sqrt{2}}}}{\frac{\frac{1}{\log \left(re \cdot re + im \cdot im\right)}}{\sqrt{\sqrt[3]{\frac{1}{2}}}}}\\
\mathbf{elif}\;re \le 2.623840975917302765619376361437223360048 \cdot 10^{-268}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\frac{\frac{1}{2} \cdot \frac{\log 10}{\log im}}{\sqrt{\frac{1}{2}}}}\\
\mathbf{elif}\;re \le 124645931887550053482496:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\frac{\frac{\log 10}{\log \left(re \cdot re + im \cdot im\right)}}{\sqrt{\frac{1}{2}}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\frac{-1}{2} \cdot \frac{\log 10}{\log \left(\frac{1}{re}\right) \cdot \sqrt{\frac{1}{2}}}}\\
\end{array}double f(double re, double im) {
double r119060 = re;
double r119061 = r119060 * r119060;
double r119062 = im;
double r119063 = r119062 * r119062;
double r119064 = r119061 + r119063;
double r119065 = sqrt(r119064);
double r119066 = log(r119065);
double r119067 = 10.0;
double r119068 = log(r119067);
double r119069 = r119066 / r119068;
return r119069;
}
double f(double re, double im) {
double r119070 = re;
double r119071 = -4.219332295965777e+82;
bool r119072 = r119070 <= r119071;
double r119073 = 1.0;
double r119074 = 2.0;
double r119075 = sqrt(r119074);
double r119076 = r119073 / r119075;
double r119077 = sqrt(r119076);
double r119078 = 10.0;
double r119079 = log(r119078);
double r119080 = r119077 / r119079;
double r119081 = 0.5;
double r119082 = cbrt(r119081);
double r119083 = fabs(r119082);
double r119084 = r119080 * r119083;
double r119085 = -1.0;
double r119086 = r119085 / r119070;
double r119087 = log(r119086);
double r119088 = r119074 * r119087;
double r119089 = -r119088;
double r119090 = r119073 / r119089;
double r119091 = sqrt(r119082);
double r119092 = r119090 / r119091;
double r119093 = r119077 / r119092;
double r119094 = r119084 * r119093;
double r119095 = -3.743447547042941e-217;
bool r119096 = r119070 <= r119095;
double r119097 = r119070 * r119070;
double r119098 = im;
double r119099 = r119098 * r119098;
double r119100 = r119097 + r119099;
double r119101 = log(r119100);
double r119102 = r119073 / r119101;
double r119103 = r119102 / r119091;
double r119104 = r119077 / r119103;
double r119105 = r119084 * r119104;
double r119106 = 2.623840975917303e-268;
bool r119107 = r119070 <= r119106;
double r119108 = sqrt(r119081);
double r119109 = log(r119098);
double r119110 = r119079 / r119109;
double r119111 = r119081 * r119110;
double r119112 = r119111 / r119108;
double r119113 = r119108 / r119112;
double r119114 = 1.2464593188755005e+23;
bool r119115 = r119070 <= r119114;
double r119116 = r119079 / r119101;
double r119117 = r119116 / r119108;
double r119118 = r119108 / r119117;
double r119119 = -0.5;
double r119120 = r119073 / r119070;
double r119121 = log(r119120);
double r119122 = r119121 * r119108;
double r119123 = r119079 / r119122;
double r119124 = r119119 * r119123;
double r119125 = r119108 / r119124;
double r119126 = r119115 ? r119118 : r119125;
double r119127 = r119107 ? r119113 : r119126;
double r119128 = r119096 ? r119105 : r119127;
double r119129 = r119072 ? r119094 : r119128;
return r119129;
}



Bits error versus re



Bits error versus im
Results
if re < -4.219332295965777e+82Initial program 49.2
rmApplied pow149.2
Applied sqrt-pow149.2
Applied log-pow49.2
Applied associate-/l*49.2
rmApplied add-sqr-sqrt49.3
Applied associate-/l*49.2
Simplified49.2
rmApplied add-cube-cbrt49.2
Applied sqrt-prod49.4
Applied div-inv49.4
Applied times-frac49.4
Applied add-sqr-sqrt49.2
Applied add-sqr-sqrt49.2
Applied times-frac49.2
Applied sqrt-prod49.2
Applied times-frac49.2
Simplified49.2
Simplified49.2
Taylor expanded around -inf 10.4
if -4.219332295965777e+82 < re < -3.743447547042941e-217Initial program 18.8
rmApplied pow118.8
Applied sqrt-pow118.8
Applied log-pow18.8
Applied associate-/l*18.8
rmApplied add-sqr-sqrt18.9
Applied associate-/l*18.7
Simplified18.7
rmApplied add-cube-cbrt18.7
Applied sqrt-prod19.1
Applied div-inv19.1
Applied times-frac19.1
Applied add-sqr-sqrt18.7
Applied add-sqr-sqrt18.7
Applied times-frac18.7
Applied sqrt-prod18.7
Applied times-frac18.7
Simplified18.7
Simplified18.7
if -3.743447547042941e-217 < re < 2.623840975917303e-268Initial program 34.4
rmApplied pow134.4
Applied sqrt-pow134.4
Applied log-pow34.4
Applied associate-/l*34.4
rmApplied add-sqr-sqrt34.5
Applied associate-/l*34.3
Simplified34.3
Taylor expanded around 0 34.6
if 2.623840975917303e-268 < re < 1.2464593188755005e+23Initial program 23.0
rmApplied pow123.0
Applied sqrt-pow123.0
Applied log-pow23.0
Applied associate-/l*23.0
rmApplied add-sqr-sqrt23.1
Applied associate-/l*22.9
Simplified22.9
if 1.2464593188755005e+23 < re Initial program 41.9
rmApplied pow141.9
Applied sqrt-pow141.9
Applied log-pow41.9
Applied associate-/l*42.0
rmApplied add-sqr-sqrt42.0
Applied associate-/l*41.9
Simplified41.9
Taylor expanded around inf 12.2
Final simplification18.2
herbie shell --seed 2019322
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))