\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -4.542162861981963339451786530680392909626 \cdot 10^{56}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \left(\sqrt{\frac{1}{\log 10}} \cdot -2\right)\right)\\
\mathbf{elif}\;re \le 5.06244624490984940405170994740450552862 \cdot 10^{-287}:\\
\;\;\;\;\log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\
\mathbf{elif}\;re \le 5.264208104179283547008627606577248738155 \cdot 10^{-185}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\sqrt{\frac{1}{\log 10}} \cdot -2\right) \cdot \log \left(\frac{-1}{im}\right)\right)\\
\mathbf{elif}\;re \le 5.789399298499139210623335916353519526215 \cdot 10^{51}:\\
\;\;\;\;\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{\log \left(im \cdot im + {re}^{2}\right)}{\sqrt{\log 10}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(2 \cdot \log re\right) \cdot \sqrt{\frac{1}{\log 10}}\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r36807 = re;
double r36808 = r36807 * r36807;
double r36809 = im;
double r36810 = r36809 * r36809;
double r36811 = r36808 + r36810;
double r36812 = sqrt(r36811);
double r36813 = log(r36812);
double r36814 = 10.0;
double r36815 = log(r36814);
double r36816 = r36813 / r36815;
return r36816;
}
double f(double re, double im) {
double r36817 = re;
double r36818 = -4.542162861981963e+56;
bool r36819 = r36817 <= r36818;
double r36820 = 0.5;
double r36821 = 10.0;
double r36822 = log(r36821);
double r36823 = sqrt(r36822);
double r36824 = r36820 / r36823;
double r36825 = -1.0;
double r36826 = r36825 / r36817;
double r36827 = log(r36826);
double r36828 = 1.0;
double r36829 = r36828 / r36822;
double r36830 = sqrt(r36829);
double r36831 = -2.0;
double r36832 = r36830 * r36831;
double r36833 = r36827 * r36832;
double r36834 = r36824 * r36833;
double r36835 = 5.0624462449098494e-287;
bool r36836 = r36817 <= r36835;
double r36837 = r36817 * r36817;
double r36838 = im;
double r36839 = r36838 * r36838;
double r36840 = r36837 + r36839;
double r36841 = r36828 / r36823;
double r36842 = pow(r36840, r36841);
double r36843 = log(r36842);
double r36844 = r36843 * r36824;
double r36845 = 5.2642081041792835e-185;
bool r36846 = r36817 <= r36845;
double r36847 = r36825 / r36838;
double r36848 = log(r36847);
double r36849 = r36832 * r36848;
double r36850 = r36824 * r36849;
double r36851 = 5.789399298499139e+51;
bool r36852 = r36817 <= r36851;
double r36853 = cbrt(r36820);
double r36854 = r36853 * r36853;
double r36855 = sqrt(r36823);
double r36856 = r36854 / r36855;
double r36857 = r36853 / r36855;
double r36858 = 2.0;
double r36859 = pow(r36817, r36858);
double r36860 = r36839 + r36859;
double r36861 = log(r36860);
double r36862 = r36861 / r36823;
double r36863 = r36857 * r36862;
double r36864 = r36856 * r36863;
double r36865 = log(r36817);
double r36866 = r36858 * r36865;
double r36867 = r36866 * r36830;
double r36868 = r36867 * r36824;
double r36869 = r36852 ? r36864 : r36868;
double r36870 = r36846 ? r36850 : r36869;
double r36871 = r36836 ? r36844 : r36870;
double r36872 = r36819 ? r36834 : r36871;
return r36872;
}



Bits error versus re



Bits error versus im
Results
if re < -4.542162861981963e+56Initial program 46.1
rmApplied add-sqr-sqrt46.1
Applied pow1/246.1
Applied log-pow46.1
Applied times-frac46.1
Taylor expanded around -inf 11.0
Simplified11.0
if -4.542162861981963e+56 < re < 5.0624462449098494e-287Initial program 23.1
rmApplied add-sqr-sqrt23.1
Applied pow1/223.1
Applied log-pow23.1
Applied times-frac23.1
rmApplied add-log-exp23.1
Simplified22.9
if 5.0624462449098494e-287 < re < 5.2642081041792835e-185Initial program 31.0
rmApplied add-sqr-sqrt31.0
Applied pow1/231.0
Applied log-pow31.0
Applied times-frac30.9
rmApplied add-log-exp30.9
Simplified30.8
Taylor expanded around -inf 33.6
Simplified33.6
if 5.2642081041792835e-185 < re < 5.789399298499139e+51Initial program 17.3
rmApplied add-sqr-sqrt17.3
Applied pow1/217.3
Applied log-pow17.3
Applied times-frac17.3
rmApplied add-log-exp17.3
Simplified17.1
rmApplied add-sqr-sqrt17.1
Applied sqrt-prod17.7
Applied add-cube-cbrt17.1
Applied times-frac17.1
Applied associate-*l*17.2
Simplified17.2
if 5.789399298499139e+51 < re Initial program 45.2
rmApplied add-sqr-sqrt45.2
Applied pow1/245.2
Applied log-pow45.2
Applied times-frac45.2
Taylor expanded around inf 11.9
Simplified11.9
Final simplification17.9
herbie shell --seed 2019196
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10.0)))