\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -2.61637518381986743 \cdot 10^{143}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\frac{-1}{re}\right)}^{\left(-\sqrt{\frac{1}{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le -2.02785725229385748 \cdot 10^{-184}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(2 \cdot \log \left({\left({\left(\left|\sqrt[3]{re \cdot re + im \cdot im}\right|\right)}^{\left(\frac{\frac{1}{\sqrt[3]{\sqrt{\log 10}} \cdot \sqrt[3]{\sqrt{\log 10}}}}{\sqrt{2}}\right)}\right)}^{\left(\frac{\frac{\sqrt{1}}{\sqrt[3]{\sqrt{\log 10}}}}{\sqrt{2}}\right)}\right) + \log \left({\left(\sqrt{\sqrt[3]{re \cdot re + im \cdot im}}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\right)\\
\mathbf{elif}\;re \le -8.8041215920204974 \cdot 10^{-274}:\\
\;\;\;\;\frac{\log im}{\log 10}\\
\mathbf{elif}\;re \le 1982429734725978600:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(2 \cdot \log \left({\left({\left(\left|\sqrt[3]{re \cdot re + im \cdot im}\right|\right)}^{\left(\frac{\frac{1}{\sqrt[3]{\sqrt{\log 10}} \cdot \sqrt[3]{\sqrt{\log 10}}}}{\sqrt{2}}\right)}\right)}^{\left(\frac{\frac{\sqrt{1}}{\sqrt[3]{\sqrt{\log 10}}}}{\sqrt{2}}\right)}\right) + \log \left({\left(\sqrt{\sqrt[3]{re \cdot re + im \cdot im}}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\frac{1}{re}\right)}^{\left(-\sqrt{\frac{1}{\log 10}}\right)}\right)\\
\end{array}double f(double re, double im) {
double r57650 = re;
double r57651 = r57650 * r57650;
double r57652 = im;
double r57653 = r57652 * r57652;
double r57654 = r57651 + r57653;
double r57655 = sqrt(r57654);
double r57656 = log(r57655);
double r57657 = 10.0;
double r57658 = log(r57657);
double r57659 = r57656 / r57658;
return r57659;
}
double f(double re, double im) {
double r57660 = re;
double r57661 = -2.6163751838198674e+143;
bool r57662 = r57660 <= r57661;
double r57663 = 1.0;
double r57664 = 10.0;
double r57665 = log(r57664);
double r57666 = sqrt(r57665);
double r57667 = r57663 / r57666;
double r57668 = -1.0;
double r57669 = r57668 / r57660;
double r57670 = r57663 / r57665;
double r57671 = sqrt(r57670);
double r57672 = -r57671;
double r57673 = pow(r57669, r57672);
double r57674 = log(r57673);
double r57675 = r57667 * r57674;
double r57676 = -2.0278572522938575e-184;
bool r57677 = r57660 <= r57676;
double r57678 = 2.0;
double r57679 = r57660 * r57660;
double r57680 = im;
double r57681 = r57680 * r57680;
double r57682 = r57679 + r57681;
double r57683 = cbrt(r57682);
double r57684 = fabs(r57683);
double r57685 = cbrt(r57666);
double r57686 = r57685 * r57685;
double r57687 = r57663 / r57686;
double r57688 = sqrt(r57678);
double r57689 = r57687 / r57688;
double r57690 = pow(r57684, r57689);
double r57691 = sqrt(r57663);
double r57692 = r57691 / r57685;
double r57693 = r57692 / r57688;
double r57694 = pow(r57690, r57693);
double r57695 = log(r57694);
double r57696 = r57678 * r57695;
double r57697 = sqrt(r57683);
double r57698 = pow(r57697, r57667);
double r57699 = log(r57698);
double r57700 = r57696 + r57699;
double r57701 = r57667 * r57700;
double r57702 = -8.804121592020497e-274;
bool r57703 = r57660 <= r57702;
double r57704 = log(r57680);
double r57705 = r57704 / r57665;
double r57706 = 1.9824297347259786e+18;
bool r57707 = r57660 <= r57706;
double r57708 = r57663 / r57660;
double r57709 = pow(r57708, r57672);
double r57710 = log(r57709);
double r57711 = r57667 * r57710;
double r57712 = r57707 ? r57701 : r57711;
double r57713 = r57703 ? r57705 : r57712;
double r57714 = r57677 ? r57701 : r57713;
double r57715 = r57662 ? r57675 : r57714;
return r57715;
}



Bits error versus re



Bits error versus im
Results
if re < -2.6163751838198674e+143Initial program 60.8
rmApplied add-sqr-sqrt60.8
Applied pow160.8
Applied log-pow60.8
Applied times-frac60.8
rmApplied add-log-exp60.8
Simplified60.8
Taylor expanded around -inf 7.1
Simplified7.0
if -2.6163751838198674e+143 < re < -2.0278572522938575e-184 or -8.804121592020497e-274 < re < 1.9824297347259786e+18Initial program 20.7
rmApplied add-sqr-sqrt20.7
Applied pow120.7
Applied log-pow20.7
Applied times-frac20.6
rmApplied add-log-exp20.6
Simplified20.5
rmApplied add-cube-cbrt20.5
Applied sqrt-prod20.5
Applied unpow-prod-down20.5
Applied log-prod20.5
Simplified20.5
rmApplied add-sqr-sqrt20.8
Applied add-cube-cbrt20.7
Applied add-sqr-sqrt20.7
Applied times-frac20.7
Applied times-frac20.5
Applied pow-unpow20.5
Simplified20.5
if -2.0278572522938575e-184 < re < -8.804121592020497e-274Initial program 31.4
Taylor expanded around 0 37.0
if 1.9824297347259786e+18 < re Initial program 43.0
rmApplied add-sqr-sqrt43.0
Applied pow143.0
Applied log-pow43.0
Applied times-frac43.0
rmApplied add-log-exp43.0
Simplified42.9
Taylor expanded around inf 13.5
Simplified13.4
Final simplification18.2
herbie shell --seed 2020056
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))