\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -2.61637518381986743 \cdot 10^{143}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(-1 \cdot re\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le -2.02785725229385748 \cdot 10^{-184}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(2 \cdot \log \left({\left({\left(\left|\sqrt[3]{re \cdot re + im \cdot im}\right|\right)}^{\left(\frac{\frac{1}{\sqrt[3]{\sqrt{\log 10}} \cdot \sqrt[3]{\sqrt{\log 10}}}}{\sqrt{2}}\right)}\right)}^{\left(\frac{\frac{\sqrt{1}}{\sqrt[3]{\sqrt{\log 10}}}}{\sqrt{2}}\right)}\right) + \log \left({\left(\sqrt{\sqrt[3]{re \cdot re + im \cdot im}}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\right)\\
\mathbf{elif}\;re \le -8.8041215920204974 \cdot 10^{-274}:\\
\;\;\;\;\frac{\log im}{\log 10}\\
\mathbf{elif}\;re \le 1982429734725978600:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(2 \cdot \log \left({\left({\left(\left|\sqrt[3]{re \cdot re + im \cdot im}\right|\right)}^{\left(\frac{\frac{1}{\sqrt[3]{\sqrt{\log 10}} \cdot \sqrt[3]{\sqrt{\log 10}}}}{\sqrt{2}}\right)}\right)}^{\left(\frac{\frac{\sqrt{1}}{\sqrt[3]{\sqrt{\log 10}}}}{\sqrt{2}}\right)}\right) + \log \left({\left(\sqrt{\sqrt[3]{re \cdot re + im \cdot im}}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\frac{1}{re}\right)}^{\left(-\sqrt{\frac{1}{\log 10}}\right)}\right)\\
\end{array}double f(double re, double im) {
double r111793 = re;
double r111794 = r111793 * r111793;
double r111795 = im;
double r111796 = r111795 * r111795;
double r111797 = r111794 + r111796;
double r111798 = sqrt(r111797);
double r111799 = log(r111798);
double r111800 = 10.0;
double r111801 = log(r111800);
double r111802 = r111799 / r111801;
return r111802;
}
double f(double re, double im) {
double r111803 = re;
double r111804 = -2.6163751838198674e+143;
bool r111805 = r111803 <= r111804;
double r111806 = 1.0;
double r111807 = 10.0;
double r111808 = log(r111807);
double r111809 = sqrt(r111808);
double r111810 = r111806 / r111809;
double r111811 = -1.0;
double r111812 = r111811 * r111803;
double r111813 = pow(r111812, r111810);
double r111814 = log(r111813);
double r111815 = r111810 * r111814;
double r111816 = -2.0278572522938575e-184;
bool r111817 = r111803 <= r111816;
double r111818 = 2.0;
double r111819 = r111803 * r111803;
double r111820 = im;
double r111821 = r111820 * r111820;
double r111822 = r111819 + r111821;
double r111823 = cbrt(r111822);
double r111824 = fabs(r111823);
double r111825 = cbrt(r111809);
double r111826 = r111825 * r111825;
double r111827 = r111806 / r111826;
double r111828 = sqrt(r111818);
double r111829 = r111827 / r111828;
double r111830 = pow(r111824, r111829);
double r111831 = sqrt(r111806);
double r111832 = r111831 / r111825;
double r111833 = r111832 / r111828;
double r111834 = pow(r111830, r111833);
double r111835 = log(r111834);
double r111836 = r111818 * r111835;
double r111837 = sqrt(r111823);
double r111838 = pow(r111837, r111810);
double r111839 = log(r111838);
double r111840 = r111836 + r111839;
double r111841 = r111810 * r111840;
double r111842 = -8.804121592020497e-274;
bool r111843 = r111803 <= r111842;
double r111844 = log(r111820);
double r111845 = r111844 / r111808;
double r111846 = 1.9824297347259786e+18;
bool r111847 = r111803 <= r111846;
double r111848 = r111806 / r111803;
double r111849 = r111806 / r111808;
double r111850 = sqrt(r111849);
double r111851 = -r111850;
double r111852 = pow(r111848, r111851);
double r111853 = log(r111852);
double r111854 = r111810 * r111853;
double r111855 = r111847 ? r111841 : r111854;
double r111856 = r111843 ? r111845 : r111855;
double r111857 = r111817 ? r111841 : r111856;
double r111858 = r111805 ? r111815 : r111857;
return r111858;
}



Bits error versus re



Bits error versus im
Results
if re < -2.6163751838198674e+143Initial program 60.8
rmApplied add-sqr-sqrt60.8
Applied pow160.8
Applied log-pow60.8
Applied times-frac60.8
rmApplied add-log-exp60.8
Simplified60.8
Taylor expanded around -inf 7.0
if -2.6163751838198674e+143 < re < -2.0278572522938575e-184 or -8.804121592020497e-274 < re < 1.9824297347259786e+18Initial program 20.7
rmApplied add-sqr-sqrt20.7
Applied pow120.7
Applied log-pow20.7
Applied times-frac20.6
rmApplied add-log-exp20.6
Simplified20.5
rmApplied add-cube-cbrt20.5
Applied sqrt-prod20.5
Applied unpow-prod-down20.5
Applied log-prod20.5
Simplified20.5
rmApplied add-sqr-sqrt20.8
Applied add-cube-cbrt20.7
Applied add-sqr-sqrt20.7
Applied times-frac20.7
Applied times-frac20.5
Applied pow-unpow20.5
Simplified20.5
if -2.0278572522938575e-184 < re < -8.804121592020497e-274Initial program 31.4
Taylor expanded around 0 37.0
if 1.9824297347259786e+18 < re Initial program 43.0
rmApplied add-sqr-sqrt43.0
Applied pow143.0
Applied log-pow43.0
Applied times-frac43.0
rmApplied add-log-exp43.0
Simplified42.9
Taylor expanded around inf 13.5
Simplified13.4
Final simplification18.2
herbie shell --seed 2020056
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))