\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -9.68163596973405975259895298385316105053 \cdot 10^{102}:\\
\;\;\;\;\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 3.466359063004585928983019110650629959503 \cdot 10^{143}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot \frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \left(\log re \cdot 2\right)\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r861356 = re;
double r861357 = r861356 * r861356;
double r861358 = im;
double r861359 = r861358 * r861358;
double r861360 = r861357 + r861359;
double r861361 = sqrt(r861360);
double r861362 = log(r861361);
double r861363 = 10.0;
double r861364 = log(r861363);
double r861365 = r861362 / r861364;
return r861365;
}
double f(double re, double im) {
double r861366 = re;
double r861367 = -9.68163596973406e+102;
bool r861368 = r861366 <= r861367;
double r861369 = 0.5;
double r861370 = 10.0;
double r861371 = log(r861370);
double r861372 = sqrt(r861371);
double r861373 = r861369 / r861372;
double r861374 = 1.0;
double r861375 = r861374 / r861371;
double r861376 = sqrt(r861375);
double r861377 = -1.0;
double r861378 = r861377 / r861366;
double r861379 = log(r861378);
double r861380 = r861376 * r861379;
double r861381 = -2.0;
double r861382 = r861380 * r861381;
double r861383 = r861373 * r861382;
double r861384 = 3.466359063004586e+143;
bool r861385 = r861366 <= r861384;
double r861386 = cbrt(r861369);
double r861387 = r861386 * r861386;
double r861388 = sqrt(r861372);
double r861389 = r861387 / r861388;
double r861390 = r861366 * r861366;
double r861391 = im;
double r861392 = r861391 * r861391;
double r861393 = r861390 + r861392;
double r861394 = log(r861393);
double r861395 = r861394 / r861372;
double r861396 = r861386 / r861388;
double r861397 = r861395 * r861396;
double r861398 = r861389 * r861397;
double r861399 = log(r861366);
double r861400 = 2.0;
double r861401 = r861399 * r861400;
double r861402 = r861376 * r861401;
double r861403 = r861402 * r861373;
double r861404 = r861385 ? r861398 : r861403;
double r861405 = r861368 ? r861383 : r861404;
return r861405;
}



Bits error versus re



Bits error versus im
Results
if re < -9.68163596973406e+102Initial program 52.0
rmApplied add-sqr-sqrt52.0
Applied pow1/252.0
Applied log-pow52.0
Applied times-frac52.0
Taylor expanded around -inf 8.8
if -9.68163596973406e+102 < re < 3.466359063004586e+143Initial program 21.3
rmApplied add-sqr-sqrt21.3
Applied pow1/221.3
Applied log-pow21.3
Applied times-frac21.3
rmApplied add-sqr-sqrt21.3
Applied sqrt-prod21.8
Applied add-cube-cbrt21.3
Applied times-frac21.3
Applied associate-*l*21.2
if 3.466359063004586e+143 < re Initial program 60.7
rmApplied add-sqr-sqrt60.7
Applied pow1/260.7
Applied log-pow60.7
Applied times-frac60.7
Taylor expanded around inf 7.8
Simplified7.8
Final simplification17.4
herbie shell --seed 2019172
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10.0)))