\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -3.859463483918923369547260927451545843966 \cdot 10^{84}:\\
\;\;\;\;\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 -1.167098834567443703136578031923709302405 \cdot 10^{-290}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left(\sqrt[3]{{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}^{3}}\right)\\
\mathbf{elif}\;re \le 3.812412734570747037549119511317842097867 \cdot 10^{-267}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({im}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 1520535341655445535810607142928115832979000:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left(\sqrt[3]{{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}^{3}}\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 r106539 = re;
double r106540 = r106539 * r106539;
double r106541 = im;
double r106542 = r106541 * r106541;
double r106543 = r106540 + r106542;
double r106544 = sqrt(r106543);
double r106545 = log(r106544);
double r106546 = 10.0;
double r106547 = log(r106546);
double r106548 = r106545 / r106547;
return r106548;
}
double f(double re, double im) {
double r106549 = re;
double r106550 = -3.8594634839189234e+84;
bool r106551 = r106549 <= r106550;
double r106552 = 1.0;
double r106553 = 10.0;
double r106554 = log(r106553);
double r106555 = sqrt(r106554);
double r106556 = r106552 / r106555;
double r106557 = -1.0;
double r106558 = r106557 / r106549;
double r106559 = r106552 / r106554;
double r106560 = sqrt(r106559);
double r106561 = -r106560;
double r106562 = pow(r106558, r106561);
double r106563 = log(r106562);
double r106564 = r106556 * r106563;
double r106565 = -1.1670988345674437e-290;
bool r106566 = r106549 <= r106565;
double r106567 = r106549 * r106549;
double r106568 = im;
double r106569 = r106568 * r106568;
double r106570 = r106567 + r106569;
double r106571 = sqrt(r106570);
double r106572 = pow(r106571, r106556);
double r106573 = 3.0;
double r106574 = pow(r106572, r106573);
double r106575 = cbrt(r106574);
double r106576 = log(r106575);
double r106577 = r106556 * r106576;
double r106578 = 3.812412734570747e-267;
bool r106579 = r106549 <= r106578;
double r106580 = pow(r106568, r106556);
double r106581 = log(r106580);
double r106582 = r106556 * r106581;
double r106583 = 1.5205353416554455e+42;
bool r106584 = r106549 <= r106583;
double r106585 = pow(r106549, r106556);
double r106586 = log(r106585);
double r106587 = r106556 * r106586;
double r106588 = r106584 ? r106577 : r106587;
double r106589 = r106579 ? r106582 : r106588;
double r106590 = r106566 ? r106577 : r106589;
double r106591 = r106551 ? r106564 : r106590;
return r106591;
}



Bits error versus re



Bits error versus im
Results
if re < -3.8594634839189234e+84Initial program 50.0
rmApplied add-sqr-sqrt50.0
Applied pow150.0
Applied log-pow50.0
Applied times-frac50.0
rmApplied add-log-exp50.0
Simplified49.9
Taylor expanded around -inf 9.6
Simplified9.5
if -3.8594634839189234e+84 < re < -1.1670988345674437e-290 or 3.812412734570747e-267 < re < 1.5205353416554455e+42Initial program 21.9
rmApplied add-sqr-sqrt21.9
Applied pow121.9
Applied log-pow21.9
Applied times-frac21.8
rmApplied add-log-exp21.8
Simplified21.7
rmApplied add-cbrt-cube21.7
Simplified21.7
if -1.1670988345674437e-290 < re < 3.812412734570747e-267Initial program 30.6
rmApplied add-sqr-sqrt30.6
Applied pow130.6
Applied log-pow30.6
Applied times-frac30.6
rmApplied add-log-exp30.6
Simplified30.4
Taylor expanded around 0 30.6
if 1.5205353416554455e+42 < re Initial program 45.8
rmApplied add-sqr-sqrt45.8
Applied pow145.8
Applied log-pow45.8
Applied times-frac45.8
rmApplied add-log-exp45.8
Simplified45.7
Taylor expanded around inf 11.9
Final simplification17.8
herbie shell --seed 2019354
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))