\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -4.00847790071649149 \cdot 10^{147}:\\
\;\;\;\;\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 4.7344679219365152 \cdot 10^{65}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({re}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\end{array}double f(double re, double im) {
double r52816 = re;
double r52817 = r52816 * r52816;
double r52818 = im;
double r52819 = r52818 * r52818;
double r52820 = r52817 + r52819;
double r52821 = sqrt(r52820);
double r52822 = log(r52821);
double r52823 = 10.0;
double r52824 = log(r52823);
double r52825 = r52822 / r52824;
return r52825;
}
double f(double re, double im) {
double r52826 = re;
double r52827 = -4.0084779007164915e+147;
bool r52828 = r52826 <= r52827;
double r52829 = 1.0;
double r52830 = 10.0;
double r52831 = log(r52830);
double r52832 = sqrt(r52831);
double r52833 = r52829 / r52832;
double r52834 = -1.0;
double r52835 = r52834 * r52826;
double r52836 = pow(r52835, r52833);
double r52837 = log(r52836);
double r52838 = r52833 * r52837;
double r52839 = 4.734467921936515e+65;
bool r52840 = r52826 <= r52839;
double r52841 = r52826 * r52826;
double r52842 = im;
double r52843 = r52842 * r52842;
double r52844 = r52841 + r52843;
double r52845 = sqrt(r52844);
double r52846 = pow(r52845, r52833);
double r52847 = log(r52846);
double r52848 = r52833 * r52847;
double r52849 = pow(r52826, r52833);
double r52850 = log(r52849);
double r52851 = r52833 * r52850;
double r52852 = r52840 ? r52848 : r52851;
double r52853 = r52828 ? r52838 : r52852;
return r52853;
}



Bits error versus re



Bits error versus im
Results
if re < -4.0084779007164915e+147Initial program 62.1
rmApplied add-sqr-sqrt62.1
Applied pow162.1
Applied log-pow62.1
Applied times-frac62.1
rmApplied add-log-exp62.1
Simplified62.1
Taylor expanded around -inf 7.4
if -4.0084779007164915e+147 < re < 4.734467921936515e+65Initial program 22.3
rmApplied add-sqr-sqrt22.3
Applied pow122.3
Applied log-pow22.3
Applied times-frac22.3
rmApplied add-log-exp22.3
Simplified22.1
if 4.734467921936515e+65 < re Initial program 47.6
rmApplied add-sqr-sqrt47.6
Applied pow147.6
Applied log-pow47.6
Applied times-frac47.6
rmApplied add-log-exp47.6
Simplified47.5
Taylor expanded around inf 10.3
Final simplification17.9
herbie shell --seed 2020034
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))