\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -5.682619343593359335222412458502304029603 \cdot 10^{146}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{2}}}{\sqrt{1}} \cdot \frac{\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \left(-2 \cdot \log \left(\frac{-1}{re}\right)\right)}{\sqrt{\log 10}}\\
\mathbf{elif}\;re \le 7.589712011031017886500337601126258649721 \cdot 10^{130}:\\
\;\;\;\;\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{\sqrt{\frac{1}{2}}}{\sqrt{1}} \cdot \frac{\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \left(\log re \cdot 2\right)}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r44014 = re;
double r44015 = r44014 * r44014;
double r44016 = im;
double r44017 = r44016 * r44016;
double r44018 = r44015 + r44017;
double r44019 = sqrt(r44018);
double r44020 = log(r44019);
double r44021 = 10.0;
double r44022 = log(r44021);
double r44023 = r44020 / r44022;
return r44023;
}
double f(double re, double im) {
double r44024 = re;
double r44025 = -5.682619343593359e+146;
bool r44026 = r44024 <= r44025;
double r44027 = 0.5;
double r44028 = sqrt(r44027);
double r44029 = 1.0;
double r44030 = sqrt(r44029);
double r44031 = r44028 / r44030;
double r44032 = 10.0;
double r44033 = log(r44032);
double r44034 = sqrt(r44033);
double r44035 = r44028 / r44034;
double r44036 = 2.0;
double r44037 = -1.0;
double r44038 = r44037 / r44024;
double r44039 = log(r44038);
double r44040 = r44036 * r44039;
double r44041 = -r44040;
double r44042 = r44035 * r44041;
double r44043 = r44042 / r44034;
double r44044 = r44031 * r44043;
double r44045 = 7.589712011031018e+130;
bool r44046 = r44024 <= r44045;
double r44047 = r44027 / r44034;
double r44048 = r44024 * r44024;
double r44049 = im;
double r44050 = r44049 * r44049;
double r44051 = r44048 + r44050;
double r44052 = r44029 / r44034;
double r44053 = pow(r44051, r44052);
double r44054 = log(r44053);
double r44055 = r44047 * r44054;
double r44056 = log(r44024);
double r44057 = r44056 * r44036;
double r44058 = r44035 * r44057;
double r44059 = r44058 / r44034;
double r44060 = r44031 * r44059;
double r44061 = r44046 ? r44055 : r44060;
double r44062 = r44026 ? r44044 : r44061;
return r44062;
}



Bits error versus re



Bits error versus im
Results
if re < -5.682619343593359e+146Initial program 61.9
rmApplied add-sqr-sqrt61.9
Applied pow1/261.9
Applied log-pow61.9
Applied times-frac61.9
rmApplied add-log-exp61.9
Simplified61.9
rmApplied pow161.9
Applied log-pow61.9
Applied sqrt-prod61.9
Applied add-sqr-sqrt61.9
Applied times-frac61.9
Applied associate-*l*61.9
Simplified61.9
Taylor expanded around -inf 7.9
if -5.682619343593359e+146 < re < 7.589712011031018e+130Initial program 21.3
rmApplied add-sqr-sqrt21.3
Applied pow1/221.3
Applied log-pow21.3
Applied times-frac21.3
rmApplied add-log-exp21.3
Simplified21.1
if 7.589712011031018e+130 < re Initial program 57.4
rmApplied add-sqr-sqrt57.4
Applied pow1/257.4
Applied log-pow57.4
Applied times-frac57.4
rmApplied add-log-exp57.4
Simplified57.4
rmApplied pow157.4
Applied log-pow57.4
Applied sqrt-prod57.4
Applied add-sqr-sqrt57.4
Applied times-frac57.4
Applied associate-*l*57.4
Simplified57.4
Taylor expanded around inf 7.3
Simplified7.3
Final simplification17.2
herbie shell --seed 2019294
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))