\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -1.359664342997624889944602942441258789071 \cdot 10^{126}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(-re\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le -6.530852052484567489281937792340136827842 \cdot 10^{-279}:\\
\;\;\;\;\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 5.01797673029504236891856937010767397753 \cdot 10^{-258}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({im}^{\left(\sqrt{\frac{1}{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 8.566260784588985126260951805758235341469 \cdot 10^{102}:\\
\;\;\;\;\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(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\end{array}double f(double re, double im) {
double r38320 = re;
double r38321 = r38320 * r38320;
double r38322 = im;
double r38323 = r38322 * r38322;
double r38324 = r38321 + r38323;
double r38325 = sqrt(r38324);
double r38326 = log(r38325);
double r38327 = 10.0;
double r38328 = log(r38327);
double r38329 = r38326 / r38328;
return r38329;
}
double f(double re, double im) {
double r38330 = re;
double r38331 = -1.359664342997625e+126;
bool r38332 = r38330 <= r38331;
double r38333 = 1.0;
double r38334 = 10.0;
double r38335 = log(r38334);
double r38336 = sqrt(r38335);
double r38337 = r38333 / r38336;
double r38338 = -r38330;
double r38339 = pow(r38338, r38337);
double r38340 = log(r38339);
double r38341 = r38337 * r38340;
double r38342 = -6.5308520524845675e-279;
bool r38343 = r38330 <= r38342;
double r38344 = r38330 * r38330;
double r38345 = im;
double r38346 = r38345 * r38345;
double r38347 = r38344 + r38346;
double r38348 = sqrt(r38347);
double r38349 = pow(r38348, r38337);
double r38350 = log(r38349);
double r38351 = r38337 * r38350;
double r38352 = 5.017976730295042e-258;
bool r38353 = r38330 <= r38352;
double r38354 = r38333 / r38335;
double r38355 = sqrt(r38354);
double r38356 = pow(r38345, r38355);
double r38357 = log(r38356);
double r38358 = r38337 * r38357;
double r38359 = 8.566260784588985e+102;
bool r38360 = r38330 <= r38359;
double r38361 = pow(r38330, r38337);
double r38362 = log(r38361);
double r38363 = r38337 * r38362;
double r38364 = r38360 ? r38351 : r38363;
double r38365 = r38353 ? r38358 : r38364;
double r38366 = r38343 ? r38351 : r38365;
double r38367 = r38332 ? r38341 : r38366;
return r38367;
}



Bits error versus re



Bits error versus im
Results
if re < -1.359664342997625e+126Initial program 56.9
rmApplied add-sqr-sqrt56.9
Applied pow156.9
Applied log-pow56.9
Applied times-frac56.9
rmApplied div-inv56.9
rmApplied add-log-exp56.9
Simplified56.9
Taylor expanded around -inf 7.6
Simplified7.6
if -1.359664342997625e+126 < re < -6.5308520524845675e-279 or 5.017976730295042e-258 < re < 8.566260784588985e+102Initial program 21.0
rmApplied add-sqr-sqrt21.0
Applied pow121.0
Applied log-pow21.0
Applied times-frac21.0
rmApplied div-inv20.9
rmApplied add-log-exp20.9
Simplified20.8
if -6.5308520524845675e-279 < re < 5.017976730295042e-258Initial program 30.9
rmApplied add-sqr-sqrt30.9
Applied pow130.9
Applied log-pow30.9
Applied times-frac30.9
rmApplied div-inv30.8
rmApplied add-log-exp30.8
Simplified30.8
Taylor expanded around 0 32.7
Simplified32.7
if 8.566260784588985e+102 < re Initial program 51.2
rmApplied add-sqr-sqrt51.2
Applied pow151.2
Applied log-pow51.2
Applied times-frac51.2
rmApplied div-inv51.2
rmApplied add-log-exp51.2
Simplified51.1
Taylor expanded around inf 8.6
Final simplification17.6
herbie shell --seed 2019306
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))