\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -9.850726757232304656097215039461175225007 \cdot 10^{116}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(-re\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 9282772713307497733004856393728:\\
\;\;\;\;\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \frac{\frac{1}{\sqrt{\log 10}}}{\sqrt{\log 10}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{\sqrt{\log 10}}}{\sqrt{\log 10}} \cdot \log re\\
\end{array}double f(double re, double im) {
double r39544 = re;
double r39545 = r39544 * r39544;
double r39546 = im;
double r39547 = r39546 * r39546;
double r39548 = r39545 + r39547;
double r39549 = sqrt(r39548);
double r39550 = log(r39549);
double r39551 = 10.0;
double r39552 = log(r39551);
double r39553 = r39550 / r39552;
return r39553;
}
double f(double re, double im) {
double r39554 = re;
double r39555 = -9.850726757232305e+116;
bool r39556 = r39554 <= r39555;
double r39557 = 1.0;
double r39558 = 10.0;
double r39559 = log(r39558);
double r39560 = sqrt(r39559);
double r39561 = r39557 / r39560;
double r39562 = -r39554;
double r39563 = pow(r39562, r39561);
double r39564 = log(r39563);
double r39565 = r39561 * r39564;
double r39566 = 9.282772713307498e+30;
bool r39567 = r39554 <= r39566;
double r39568 = im;
double r39569 = r39568 * r39568;
double r39570 = r39554 * r39554;
double r39571 = r39569 + r39570;
double r39572 = sqrt(r39571);
double r39573 = log(r39572);
double r39574 = r39561 / r39560;
double r39575 = r39573 * r39574;
double r39576 = log(r39554);
double r39577 = r39574 * r39576;
double r39578 = r39567 ? r39575 : r39577;
double r39579 = r39556 ? r39565 : r39578;
return r39579;
}



Bits error versus re



Bits error versus im
Results
if re < -9.850726757232305e+116Initial program 55.6
rmApplied add-sqr-sqrt55.6
Applied pow155.6
Applied log-pow55.6
Applied times-frac55.6
rmApplied add-log-exp55.6
Simplified55.5
Taylor expanded around -inf 8.2
Simplified8.2
if -9.850726757232305e+116 < re < 9.282772713307498e+30Initial program 21.4
rmApplied add-sqr-sqrt21.4
Applied pow121.4
Applied log-pow21.4
Applied times-frac21.3
rmApplied add-log-exp21.3
Simplified21.2
rmApplied log-pow21.2
Applied associate-*r*21.2
Simplified21.2
if 9.282772713307498e+30 < re Initial program 42.1
rmApplied add-sqr-sqrt42.1
Applied pow142.1
Applied log-pow42.1
Applied times-frac42.1
rmApplied add-log-exp42.1
Simplified42.0
rmApplied log-pow42.0
Applied associate-*r*42.0
Simplified42.0
Taylor expanded around inf 12.0
Final simplification17.1
herbie shell --seed 2019194
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10.0)))