\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -3.510504290224585263553036624607276929802 \cdot 10^{110}:\\
\;\;\;\;\sqrt{\frac{1}{2}} \cdot \left(\left(\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot -2\right) \cdot \frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}}\right)\\
\mathbf{elif}\;re \le 2.808181869483482800731614586522121158678 \cdot 10^{83}:\\
\;\;\;\;\sqrt{\frac{1}{2}} \cdot \left(\frac{\sqrt{\frac{1}{2}}}{\sqrt{\log 10}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\frac{1}{\sqrt{\log 10}} \cdot \left(\log re \cdot 2\right)\right)\\
\end{array}double f(double re, double im) {
double r1530574 = re;
double r1530575 = r1530574 * r1530574;
double r1530576 = im;
double r1530577 = r1530576 * r1530576;
double r1530578 = r1530575 + r1530577;
double r1530579 = sqrt(r1530578);
double r1530580 = log(r1530579);
double r1530581 = 10.0;
double r1530582 = log(r1530581);
double r1530583 = r1530580 / r1530582;
return r1530583;
}
double f(double re, double im) {
double r1530584 = re;
double r1530585 = -3.510504290224585e+110;
bool r1530586 = r1530584 <= r1530585;
double r1530587 = 0.5;
double r1530588 = sqrt(r1530587);
double r1530589 = 1.0;
double r1530590 = 10.0;
double r1530591 = log(r1530590);
double r1530592 = r1530589 / r1530591;
double r1530593 = sqrt(r1530592);
double r1530594 = -1.0;
double r1530595 = r1530594 / r1530584;
double r1530596 = log(r1530595);
double r1530597 = r1530593 * r1530596;
double r1530598 = -2.0;
double r1530599 = r1530597 * r1530598;
double r1530600 = sqrt(r1530591);
double r1530601 = r1530588 / r1530600;
double r1530602 = r1530599 * r1530601;
double r1530603 = r1530588 * r1530602;
double r1530604 = 2.808181869483483e+83;
bool r1530605 = r1530584 <= r1530604;
double r1530606 = r1530584 * r1530584;
double r1530607 = im;
double r1530608 = r1530607 * r1530607;
double r1530609 = r1530606 + r1530608;
double r1530610 = log(r1530609);
double r1530611 = r1530610 / r1530600;
double r1530612 = r1530601 * r1530611;
double r1530613 = r1530588 * r1530612;
double r1530614 = r1530587 / r1530600;
double r1530615 = r1530589 / r1530600;
double r1530616 = log(r1530584);
double r1530617 = 2.0;
double r1530618 = r1530616 * r1530617;
double r1530619 = r1530615 * r1530618;
double r1530620 = r1530614 * r1530619;
double r1530621 = r1530605 ? r1530613 : r1530620;
double r1530622 = r1530586 ? r1530603 : r1530621;
return r1530622;
}



Bits error versus re



Bits error versus im
Results
if re < -3.510504290224585e+110Initial program 53.0
rmApplied add-sqr-sqrt53.0
Applied pow1/253.0
Applied log-pow53.0
Applied times-frac53.0
rmApplied div-inv53.0
rmApplied *-un-lft-identity53.0
Applied add-sqr-sqrt53.1
Applied times-frac53.0
Applied associate-*l*53.0
Simplified53.0
Taylor expanded around -inf 7.9
if -3.510504290224585e+110 < re < 2.808181869483483e+83Initial program 22.3
rmApplied add-sqr-sqrt22.3
Applied pow1/222.3
Applied log-pow22.3
Applied times-frac22.3
rmApplied div-inv22.1
rmApplied *-un-lft-identity22.1
Applied add-sqr-sqrt22.5
Applied times-frac22.1
Applied associate-*l*22.2
Simplified22.2
if 2.808181869483483e+83 < re Initial program 48.1
rmApplied add-sqr-sqrt48.1
Applied pow1/248.1
Applied log-pow48.1
Applied times-frac48.0
rmApplied div-inv48.0
Taylor expanded around inf 10.1
Simplified10.1
Final simplification17.6
herbie shell --seed 2019168
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10.0)))