\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -4.75759962206180014 \cdot 10^{138}:\\
\;\;\;\;\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)\\
\mathbf{elif}\;re \le -1.97156786943007107 \cdot 10^{-177}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10} \cdot \sqrt[3]{\log 10}}} \cdot \left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10}}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right)\\
\mathbf{elif}\;re \le 8.2045700377319277 \cdot 10^{-249}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(2 \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\
\mathbf{elif}\;re \le 3.6267478666816686 \cdot 10^{95}:\\
\;\;\;\;\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(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(2 \cdot \log re\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\
\end{array}double f(double re, double im) {
double r31751 = re;
double r31752 = r31751 * r31751;
double r31753 = im;
double r31754 = r31753 * r31753;
double r31755 = r31752 + r31754;
double r31756 = sqrt(r31755);
double r31757 = log(r31756);
double r31758 = 10.0;
double r31759 = log(r31758);
double r31760 = r31757 / r31759;
return r31760;
}
double f(double re, double im) {
double r31761 = re;
double r31762 = -4.7575996220618e+138;
bool r31763 = r31761 <= r31762;
double r31764 = 0.5;
double r31765 = 10.0;
double r31766 = log(r31765);
double r31767 = sqrt(r31766);
double r31768 = r31764 / r31767;
double r31769 = -2.0;
double r31770 = -1.0;
double r31771 = r31770 / r31761;
double r31772 = log(r31771);
double r31773 = 1.0;
double r31774 = r31773 / r31766;
double r31775 = sqrt(r31774);
double r31776 = r31772 * r31775;
double r31777 = r31769 * r31776;
double r31778 = r31768 * r31777;
double r31779 = -1.971567869430071e-177;
bool r31780 = r31761 <= r31779;
double r31781 = cbrt(r31764);
double r31782 = r31781 * r31781;
double r31783 = cbrt(r31766);
double r31784 = r31783 * r31783;
double r31785 = sqrt(r31784);
double r31786 = r31782 / r31785;
double r31787 = sqrt(r31783);
double r31788 = r31781 / r31787;
double r31789 = r31761 * r31761;
double r31790 = im;
double r31791 = r31790 * r31790;
double r31792 = r31789 + r31791;
double r31793 = log(r31792);
double r31794 = r31793 / r31767;
double r31795 = r31788 * r31794;
double r31796 = r31786 * r31795;
double r31797 = 8.204570037731928e-249;
bool r31798 = r31761 <= r31797;
double r31799 = 2.0;
double r31800 = log(r31790);
double r31801 = r31800 * r31775;
double r31802 = r31799 * r31801;
double r31803 = r31768 * r31802;
double r31804 = 3.6267478666816686e+95;
bool r31805 = r31761 <= r31804;
double r31806 = sqrt(r31767);
double r31807 = r31782 / r31806;
double r31808 = r31781 / r31806;
double r31809 = r31808 * r31794;
double r31810 = r31807 * r31809;
double r31811 = log(r31761);
double r31812 = r31799 * r31811;
double r31813 = r31812 * r31775;
double r31814 = r31768 * r31813;
double r31815 = r31805 ? r31810 : r31814;
double r31816 = r31798 ? r31803 : r31815;
double r31817 = r31780 ? r31796 : r31816;
double r31818 = r31763 ? r31778 : r31817;
return r31818;
}



Bits error versus re



Bits error versus im
Results
if re < -4.7575996220618e+138Initial program 59.2
rmApplied add-sqr-sqrt59.2
Applied pow1/259.2
Applied log-pow59.2
Applied times-frac59.2
Taylor expanded around -inf 7.4
if -4.7575996220618e+138 < re < -1.971567869430071e-177Initial program 18.3
rmApplied add-sqr-sqrt18.3
Applied pow1/218.3
Applied log-pow18.3
Applied times-frac18.2
rmApplied add-cube-cbrt18.8
Applied sqrt-prod18.8
Applied add-cube-cbrt18.2
Applied times-frac18.2
Applied associate-*l*18.2
if -1.971567869430071e-177 < re < 8.204570037731928e-249Initial program 33.4
rmApplied add-sqr-sqrt33.4
Applied pow1/233.4
Applied log-pow33.4
Applied times-frac33.4
Taylor expanded around 0 33.8
if 8.204570037731928e-249 < re < 3.6267478666816686e+95Initial program 21.1
rmApplied add-sqr-sqrt21.1
Applied pow1/221.1
Applied log-pow21.1
Applied times-frac21.1
rmApplied add-sqr-sqrt21.1
Applied sqrt-prod21.6
Applied add-cube-cbrt21.1
Applied times-frac21.1
Applied associate-*l*21.0
if 3.6267478666816686e+95 < re Initial program 51.2
rmApplied add-sqr-sqrt51.2
Applied pow1/251.2
Applied log-pow51.2
Applied times-frac51.2
Taylor expanded around inf 9.4
Simplified9.4
Final simplification18.2
herbie shell --seed 2020047
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))