\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -5.30410728802987954 \cdot 10^{54}:\\
\;\;\;\;\frac{1}{\frac{\log 10}{\log \left(-1 \cdot re\right)}}\\
\mathbf{elif}\;re \le -3.80996693730795831 \cdot 10^{-103}:\\
\;\;\;\;\frac{3}{\frac{\log 10}{\log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}}\\
\mathbf{elif}\;re \le 2.15180429374657097 \cdot 10^{-295}:\\
\;\;\;\;\sqrt[3]{\frac{{\left(\log im\right)}^{3}}{{\left(\log 10\right)}^{3}}}\\
\mathbf{elif}\;re \le 2.55703958874010118 \cdot 10^{92}:\\
\;\;\;\;\sqrt[3]{\left(\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\right) \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt[3]{{\left(\frac{\log re}{\log 10}\right)}^{3}}\\
\end{array}double f(double re, double im) {
double r37810 = re;
double r37811 = r37810 * r37810;
double r37812 = im;
double r37813 = r37812 * r37812;
double r37814 = r37811 + r37813;
double r37815 = sqrt(r37814);
double r37816 = log(r37815);
double r37817 = 10.0;
double r37818 = log(r37817);
double r37819 = r37816 / r37818;
return r37819;
}
double f(double re, double im) {
double r37820 = re;
double r37821 = -5.3041072880298795e+54;
bool r37822 = r37820 <= r37821;
double r37823 = 1.0;
double r37824 = 10.0;
double r37825 = log(r37824);
double r37826 = -1.0;
double r37827 = r37826 * r37820;
double r37828 = log(r37827);
double r37829 = r37825 / r37828;
double r37830 = r37823 / r37829;
double r37831 = -3.8099669373079583e-103;
bool r37832 = r37820 <= r37831;
double r37833 = 3.0;
double r37834 = r37820 * r37820;
double r37835 = im;
double r37836 = r37835 * r37835;
double r37837 = r37834 + r37836;
double r37838 = sqrt(r37837);
double r37839 = cbrt(r37838);
double r37840 = log(r37839);
double r37841 = r37825 / r37840;
double r37842 = r37833 / r37841;
double r37843 = 2.151804293746571e-295;
bool r37844 = r37820 <= r37843;
double r37845 = log(r37835);
double r37846 = pow(r37845, r37833);
double r37847 = pow(r37825, r37833);
double r37848 = r37846 / r37847;
double r37849 = cbrt(r37848);
double r37850 = 2.5570395887401012e+92;
bool r37851 = r37820 <= r37850;
double r37852 = log(r37838);
double r37853 = r37852 / r37825;
double r37854 = r37853 * r37853;
double r37855 = r37854 * r37853;
double r37856 = cbrt(r37855);
double r37857 = log(r37820);
double r37858 = r37857 / r37825;
double r37859 = pow(r37858, r37833);
double r37860 = cbrt(r37859);
double r37861 = r37851 ? r37856 : r37860;
double r37862 = r37844 ? r37849 : r37861;
double r37863 = r37832 ? r37842 : r37862;
double r37864 = r37822 ? r37830 : r37863;
return r37864;
}



Bits error versus re



Bits error versus im
Results
if re < -5.3041072880298795e+54Initial program 44.6
rmApplied add-cube-cbrt44.6
rmApplied pow1/344.6
Applied pow1/344.6
Applied pow1/344.6
Applied pow-sqr44.6
Applied pow-prod-up44.6
Applied log-pow44.6
Applied associate-/l*44.6
Taylor expanded around -inf 11.1
if -5.3041072880298795e+54 < re < -3.8099669373079583e-103Initial program 17.0
rmApplied add-cube-cbrt16.9
rmApplied pow116.9
Applied pow116.9
Applied pow116.9
Applied pow-prod-up16.9
Applied pow-prod-up16.9
Applied log-pow17.0
Applied associate-/l*16.9
if -3.8099669373079583e-103 < re < 2.151804293746571e-295Initial program 28.8
rmApplied add-cbrt-cube29.3
Applied add-cbrt-cube29.2
Applied cbrt-undiv28.8
Simplified28.8
Taylor expanded around 0 36.1
if 2.151804293746571e-295 < re < 2.5570395887401012e+92Initial program 21.0
rmApplied add-cbrt-cube21.6
Applied add-cbrt-cube21.5
Applied cbrt-undiv21.0
Simplified21.0
rmApplied add-cbrt-cube21.0
Applied rem-cube-cbrt21.0
if 2.5570395887401012e+92 < re Initial program 49.9
rmApplied add-cbrt-cube50.1
Applied add-cbrt-cube50.1
Applied cbrt-undiv50.0
Simplified49.9
Taylor expanded around inf 9.4
Final simplification19.0
herbie shell --seed 2020100
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))