\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -8.184754974022721082099165272992085068412 \cdot 10^{109}:\\
\;\;\;\;\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 4.342031878168628069071012321852054396987 \cdot 10^{75}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(2 \cdot \log \left(\sqrt[3]{{\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}}\right) + \log \left(\sqrt[3]{{\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\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)\\
\end{array}double f(double re, double im) {
double r51777 = re;
double r51778 = r51777 * r51777;
double r51779 = im;
double r51780 = r51779 * r51779;
double r51781 = r51778 + r51780;
double r51782 = sqrt(r51781);
double r51783 = log(r51782);
double r51784 = 10.0;
double r51785 = log(r51784);
double r51786 = r51783 / r51785;
return r51786;
}
double f(double re, double im) {
double r51787 = re;
double r51788 = -8.184754974022721e+109;
bool r51789 = r51787 <= r51788;
double r51790 = 0.5;
double r51791 = 10.0;
double r51792 = log(r51791);
double r51793 = sqrt(r51792);
double r51794 = r51790 / r51793;
double r51795 = -2.0;
double r51796 = -1.0;
double r51797 = r51796 / r51787;
double r51798 = log(r51797);
double r51799 = 1.0;
double r51800 = r51799 / r51792;
double r51801 = sqrt(r51800);
double r51802 = r51798 * r51801;
double r51803 = r51795 * r51802;
double r51804 = r51794 * r51803;
double r51805 = 4.342031878168628e+75;
bool r51806 = r51787 <= r51805;
double r51807 = 2.0;
double r51808 = r51787 * r51787;
double r51809 = im;
double r51810 = r51809 * r51809;
double r51811 = r51808 + r51810;
double r51812 = r51799 / r51793;
double r51813 = pow(r51811, r51812);
double r51814 = cbrt(r51813);
double r51815 = log(r51814);
double r51816 = r51807 * r51815;
double r51817 = r51816 + r51815;
double r51818 = r51794 * r51817;
double r51819 = r51799 / r51787;
double r51820 = log(r51819);
double r51821 = r51820 * r51801;
double r51822 = r51795 * r51821;
double r51823 = r51794 * r51822;
double r51824 = r51806 ? r51818 : r51823;
double r51825 = r51789 ? r51804 : r51824;
return r51825;
}



Bits error versus re



Bits error versus im
Results
if re < -8.184754974022721e+109Initial program 53.8
rmApplied add-sqr-sqrt53.8
Applied pow1/253.8
Applied log-pow53.8
Applied times-frac53.8
Taylor expanded around -inf 8.6
if -8.184754974022721e+109 < re < 4.342031878168628e+75Initial program 22.3
rmApplied add-sqr-sqrt22.3
Applied pow1/222.3
Applied log-pow22.3
Applied times-frac22.3
rmApplied add-log-exp22.3
Simplified22.1
rmApplied add-cube-cbrt22.1
Applied log-prod22.2
Simplified22.2
if 4.342031878168628e+75 < re Initial program 48.2
rmApplied add-sqr-sqrt48.2
Applied pow1/248.2
Applied log-pow48.2
Applied times-frac48.2
Taylor expanded around inf 9.8
Final simplification17.7
herbie shell --seed 2019308
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))