\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -6.974364752800575 \cdot 10^{+123}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot -2\right)\\
\mathbf{elif}\;re \le 6.747672622242652 \cdot 10^{+140}:\\
\;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}} \cdot \left(\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \left(2 \cdot \log re\right)\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r2491395 = re;
double r2491396 = r2491395 * r2491395;
double r2491397 = im;
double r2491398 = r2491397 * r2491397;
double r2491399 = r2491396 + r2491398;
double r2491400 = sqrt(r2491399);
double r2491401 = log(r2491400);
double r2491402 = 10.0;
double r2491403 = log(r2491402);
double r2491404 = r2491401 / r2491403;
return r2491404;
}
double f(double re, double im) {
double r2491405 = re;
double r2491406 = -6.974364752800575e+123;
bool r2491407 = r2491405 <= r2491406;
double r2491408 = 0.5;
double r2491409 = 10.0;
double r2491410 = log(r2491409);
double r2491411 = sqrt(r2491410);
double r2491412 = r2491408 / r2491411;
double r2491413 = 1.0;
double r2491414 = r2491413 / r2491410;
double r2491415 = sqrt(r2491414);
double r2491416 = -1.0;
double r2491417 = r2491416 / r2491405;
double r2491418 = log(r2491417);
double r2491419 = r2491415 * r2491418;
double r2491420 = -2.0;
double r2491421 = r2491419 * r2491420;
double r2491422 = r2491412 * r2491421;
double r2491423 = 6.747672622242652e+140;
bool r2491424 = r2491405 <= r2491423;
double r2491425 = sqrt(r2491412);
double r2491426 = r2491405 * r2491405;
double r2491427 = im;
double r2491428 = r2491427 * r2491427;
double r2491429 = r2491426 + r2491428;
double r2491430 = log(r2491429);
double r2491431 = r2491430 / r2491411;
double r2491432 = r2491431 * r2491425;
double r2491433 = r2491425 * r2491432;
double r2491434 = 2.0;
double r2491435 = log(r2491405);
double r2491436 = r2491434 * r2491435;
double r2491437 = r2491415 * r2491436;
double r2491438 = r2491437 * r2491412;
double r2491439 = r2491424 ? r2491433 : r2491438;
double r2491440 = r2491407 ? r2491422 : r2491439;
return r2491440;
}



Bits error versus re



Bits error versus im
Results
if re < -6.974364752800575e+123Initial program 55.0
rmApplied add-sqr-sqrt55.0
Applied pow155.0
Applied sqrt-pow155.0
Applied log-pow55.0
Applied times-frac55.0
Simplified55.0
Taylor expanded around -inf 8.0
if -6.974364752800575e+123 < re < 6.747672622242652e+140Initial program 21.0
rmApplied add-sqr-sqrt21.0
Applied pow121.0
Applied sqrt-pow121.0
Applied log-pow21.0
Applied times-frac21.0
Simplified21.0
rmApplied add-sqr-sqrt21.0
Applied associate-*l*21.0
if 6.747672622242652e+140 < re Initial program 58.2
rmApplied add-sqr-sqrt58.2
Applied pow158.2
Applied sqrt-pow158.2
Applied log-pow58.2
Applied times-frac58.2
Simplified58.2
Taylor expanded around inf 7.9
Simplified7.9
Final simplification17.2
herbie shell --seed 2019104
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))