\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -5.543624575485825300470836787098407507184 \cdot 10^{99}:\\
\;\;\;\;\log \left({\left(\frac{-1}{re}\right)}^{\left(-\sqrt{\frac{1}{\log 10}}\right)}\right) \cdot \frac{1}{\sqrt{\log 10}}\\
\mathbf{elif}\;re \le -1.005507393154052661497216237161906591061 \cdot 10^{-263}:\\
\;\;\;\;\log \left(\sqrt[3]{{\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}}\right) \cdot \frac{2}{\sqrt{\log 10}} + \frac{1}{\sqrt{\log 10}} \cdot \log \left(\sqrt[3]{{\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}}\right)\\
\mathbf{elif}\;re \le 2.695186912474015462769700121112449872029 \cdot 10^{-166}:\\
\;\;\;\;\log \left({im}^{\left(\sqrt{\frac{1}{\log 10}}\right)}\right) \cdot \frac{1}{\sqrt{\log 10}}\\
\mathbf{elif}\;re \le 4.969148025702489596813788314716096306133 \cdot 10^{122}:\\
\;\;\;\;\log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right) \cdot \frac{1}{\sqrt{\log 10}}\\
\mathbf{else}:\\
\;\;\;\;\log \left({re}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right) \cdot \frac{1}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r49706 = re;
double r49707 = r49706 * r49706;
double r49708 = im;
double r49709 = r49708 * r49708;
double r49710 = r49707 + r49709;
double r49711 = sqrt(r49710);
double r49712 = log(r49711);
double r49713 = 10.0;
double r49714 = log(r49713);
double r49715 = r49712 / r49714;
return r49715;
}
double f(double re, double im) {
double r49716 = re;
double r49717 = -5.543624575485825e+99;
bool r49718 = r49716 <= r49717;
double r49719 = -1.0;
double r49720 = r49719 / r49716;
double r49721 = 1.0;
double r49722 = 10.0;
double r49723 = log(r49722);
double r49724 = r49721 / r49723;
double r49725 = sqrt(r49724);
double r49726 = -r49725;
double r49727 = pow(r49720, r49726);
double r49728 = log(r49727);
double r49729 = sqrt(r49723);
double r49730 = r49721 / r49729;
double r49731 = r49728 * r49730;
double r49732 = -1.0055073931540527e-263;
bool r49733 = r49716 <= r49732;
double r49734 = r49716 * r49716;
double r49735 = im;
double r49736 = r49735 * r49735;
double r49737 = r49734 + r49736;
double r49738 = sqrt(r49737);
double r49739 = pow(r49738, r49730);
double r49740 = cbrt(r49739);
double r49741 = log(r49740);
double r49742 = 2.0;
double r49743 = r49742 / r49729;
double r49744 = r49741 * r49743;
double r49745 = r49730 * r49741;
double r49746 = r49744 + r49745;
double r49747 = 2.6951869124740155e-166;
bool r49748 = r49716 <= r49747;
double r49749 = pow(r49735, r49725);
double r49750 = log(r49749);
double r49751 = r49750 * r49730;
double r49752 = 4.9691480257024896e+122;
bool r49753 = r49716 <= r49752;
double r49754 = log(r49739);
double r49755 = r49754 * r49730;
double r49756 = pow(r49716, r49730);
double r49757 = log(r49756);
double r49758 = r49757 * r49730;
double r49759 = r49753 ? r49755 : r49758;
double r49760 = r49748 ? r49751 : r49759;
double r49761 = r49733 ? r49746 : r49760;
double r49762 = r49718 ? r49731 : r49761;
return r49762;
}



Bits error versus re



Bits error versus im
Results
if re < -5.543624575485825e+99Initial program 50.9
rmApplied add-sqr-sqrt50.9
Applied pow150.9
Applied log-pow50.9
Applied times-frac50.9
rmApplied add-log-exp50.9
Simplified50.8
rmApplied *-commutative50.8
Taylor expanded around -inf 9.1
Simplified9.0
if -5.543624575485825e+99 < re < -1.0055073931540527e-263Initial program 20.0
rmApplied add-sqr-sqrt20.0
Applied pow120.0
Applied log-pow20.0
Applied times-frac20.0
rmApplied add-log-exp20.0
Simplified19.8
rmApplied add-cube-cbrt19.8
Applied log-prod19.9
Applied distribute-lft-in19.9
Simplified19.9
if -1.0055073931540527e-263 < re < 2.6951869124740155e-166Initial program 32.3
rmApplied add-sqr-sqrt32.3
Applied pow132.3
Applied log-pow32.3
Applied times-frac32.3
rmApplied add-log-exp32.3
Simplified32.1
rmApplied *-commutative32.1
Taylor expanded around 0 34.5
Simplified34.5
if 2.6951869124740155e-166 < re < 4.9691480257024896e+122Initial program 16.7
rmApplied add-sqr-sqrt16.7
Applied pow116.7
Applied log-pow16.7
Applied times-frac16.6
rmApplied add-log-exp16.6
Simplified16.4
rmApplied *-commutative16.4
if 4.9691480257024896e+122 < re Initial program 56.3
rmApplied add-sqr-sqrt56.3
Applied pow156.3
Applied log-pow56.3
Applied times-frac56.3
rmApplied add-log-exp56.3
Simplified56.3
rmApplied *-commutative56.3
Taylor expanded around inf 8.1
Final simplification17.6
herbie shell --seed 2019353
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))