\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -5.330091552844717472226479932066920744645 \cdot 10^{114}:\\
\;\;\;\;\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 -4.215661627499373563855656419004671791113 \cdot 10^{-144}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 3.482912996481695209350075344359753892544 \cdot 10^{-250}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({im}^{\left(\sqrt{\frac{1}{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 6.50977017724907722738153182022955067076 \cdot 10^{55}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({re}^{\left(\sqrt{\frac{1}{\log 10}}\right)}\right)\\
\end{array}double f(double re, double im) {
double r39363 = re;
double r39364 = r39363 * r39363;
double r39365 = im;
double r39366 = r39365 * r39365;
double r39367 = r39364 + r39366;
double r39368 = sqrt(r39367);
double r39369 = log(r39368);
double r39370 = 10.0;
double r39371 = log(r39370);
double r39372 = r39369 / r39371;
return r39372;
}
double f(double re, double im) {
double r39373 = re;
double r39374 = -5.330091552844717e+114;
bool r39375 = r39373 <= r39374;
double r39376 = 1.0;
double r39377 = 10.0;
double r39378 = log(r39377);
double r39379 = sqrt(r39378);
double r39380 = r39376 / r39379;
double r39381 = -1.0;
double r39382 = r39381 / r39373;
double r39383 = r39376 / r39378;
double r39384 = sqrt(r39383);
double r39385 = -r39384;
double r39386 = pow(r39382, r39385);
double r39387 = log(r39386);
double r39388 = r39380 * r39387;
double r39389 = -4.2156616274993736e-144;
bool r39390 = r39373 <= r39389;
double r39391 = r39373 * r39373;
double r39392 = im;
double r39393 = r39392 * r39392;
double r39394 = r39391 + r39393;
double r39395 = sqrt(r39394);
double r39396 = pow(r39395, r39380);
double r39397 = log(r39396);
double r39398 = r39380 * r39397;
double r39399 = 3.482912996481695e-250;
bool r39400 = r39373 <= r39399;
double r39401 = pow(r39392, r39384);
double r39402 = log(r39401);
double r39403 = r39380 * r39402;
double r39404 = 6.509770177249077e+55;
bool r39405 = r39373 <= r39404;
double r39406 = pow(r39373, r39384);
double r39407 = log(r39406);
double r39408 = r39380 * r39407;
double r39409 = r39405 ? r39398 : r39408;
double r39410 = r39400 ? r39403 : r39409;
double r39411 = r39390 ? r39398 : r39410;
double r39412 = r39375 ? r39388 : r39411;
return r39412;
}



Bits error versus re



Bits error versus im
Results
if re < -5.330091552844717e+114Initial program 54.3
rmApplied add-sqr-sqrt54.3
Applied pow154.3
Applied log-pow54.3
Applied times-frac54.3
rmApplied div-inv54.3
rmApplied add-log-exp54.3
Simplified54.3
Taylor expanded around -inf 7.7
Simplified7.6
if -5.330091552844717e+114 < re < -4.2156616274993736e-144 or 3.482912996481695e-250 < re < 6.509770177249077e+55Initial program 19.1
rmApplied add-sqr-sqrt19.1
Applied pow119.1
Applied log-pow19.1
Applied times-frac19.1
rmApplied div-inv19.0
rmApplied add-log-exp19.0
Simplified18.9
if -4.2156616274993736e-144 < re < 3.482912996481695e-250Initial program 31.3
rmApplied add-sqr-sqrt31.3
Applied pow131.3
Applied log-pow31.3
Applied times-frac31.2
rmApplied div-inv31.2
rmApplied add-log-exp31.2
Simplified31.1
Taylor expanded around 0 35.9
Simplified35.9
if 6.509770177249077e+55 < re Initial program 44.2
rmApplied add-sqr-sqrt44.2
Applied pow144.2
Applied log-pow44.2
Applied times-frac44.2
rmApplied div-inv44.2
rmApplied add-log-exp44.2
Simplified44.1
Taylor expanded around inf 11.3
Simplified11.3
Final simplification18.7
herbie shell --seed 2019325
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))