\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -5.38536138052747697 \cdot 10^{63}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{-2 \cdot \log \left(\frac{-1}{re}\right)}{\sqrt{\log 10}}\right)\\
\mathbf{elif}\;re \le 8.51668391544235614 \cdot 10^{92}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\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 r101027 = re;
double r101028 = r101027 * r101027;
double r101029 = im;
double r101030 = r101029 * r101029;
double r101031 = r101028 + r101030;
double r101032 = sqrt(r101031);
double r101033 = log(r101032);
double r101034 = 10.0;
double r101035 = log(r101034);
double r101036 = r101033 / r101035;
return r101036;
}
double f(double re, double im) {
double r101037 = re;
double r101038 = -5.385361380527477e+63;
bool r101039 = r101037 <= r101038;
double r101040 = 0.5;
double r101041 = cbrt(r101040);
double r101042 = r101041 * r101041;
double r101043 = 10.0;
double r101044 = log(r101043);
double r101045 = sqrt(r101044);
double r101046 = sqrt(r101045);
double r101047 = r101042 / r101046;
double r101048 = r101041 / r101046;
double r101049 = 2.0;
double r101050 = -1.0;
double r101051 = r101050 / r101037;
double r101052 = log(r101051);
double r101053 = r101049 * r101052;
double r101054 = -r101053;
double r101055 = r101054 / r101045;
double r101056 = r101048 * r101055;
double r101057 = r101047 * r101056;
double r101058 = 8.516683915442356e+92;
bool r101059 = r101037 <= r101058;
double r101060 = r101040 / r101045;
double r101061 = r101037 * r101037;
double r101062 = im;
double r101063 = r101062 * r101062;
double r101064 = r101061 + r101063;
double r101065 = 1.0;
double r101066 = r101065 / r101045;
double r101067 = pow(r101064, r101066);
double r101068 = log(r101067);
double r101069 = r101060 * r101068;
double r101070 = -2.0;
double r101071 = r101065 / r101037;
double r101072 = log(r101071);
double r101073 = r101065 / r101044;
double r101074 = sqrt(r101073);
double r101075 = r101072 * r101074;
double r101076 = r101070 * r101075;
double r101077 = r101060 * r101076;
double r101078 = r101059 ? r101069 : r101077;
double r101079 = r101039 ? r101057 : r101078;
return r101079;
}



Bits error versus re



Bits error versus im
Results
if re < -5.385361380527477e+63Initial program 46.2
rmApplied add-sqr-sqrt46.2
Applied pow1/246.2
Applied log-pow46.2
Applied times-frac46.2
rmApplied add-sqr-sqrt46.2
Applied sqrt-prod46.4
Applied add-cube-cbrt46.2
Applied times-frac46.2
Applied associate-*l*46.1
Taylor expanded around -inf 10.8
if -5.385361380527477e+63 < re < 8.516683915442356e+92Initial program 22.4
rmApplied add-sqr-sqrt22.4
Applied pow1/222.4
Applied log-pow22.4
Applied times-frac22.3
rmApplied add-log-exp22.3
Simplified22.1
if 8.516683915442356e+92 < re Initial program 49.9
rmApplied add-sqr-sqrt49.9
Applied pow1/249.9
Applied log-pow49.9
Applied times-frac49.9
Taylor expanded around inf 9.3
Final simplification17.7
herbie shell --seed 2020003
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))