\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -4.1975508038006968 \cdot 10^{153}:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le -9.52817244882649108 \cdot 10^{-265}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le 1.04745553524127593 \cdot 10^{-281}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 8.0421619395688348 \cdot 10^{92}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r38488 = re;
double r38489 = r38488 * r38488;
double r38490 = im;
double r38491 = r38490 * r38490;
double r38492 = r38489 + r38491;
double r38493 = sqrt(r38492);
double r38494 = log(r38493);
return r38494;
}
double f(double re, double im) {
double r38495 = re;
double r38496 = -4.197550803800697e+153;
bool r38497 = r38495 <= r38496;
double r38498 = -1.0;
double r38499 = r38498 * r38495;
double r38500 = log(r38499);
double r38501 = -9.528172448826491e-265;
bool r38502 = r38495 <= r38501;
double r38503 = r38495 * r38495;
double r38504 = im;
double r38505 = r38504 * r38504;
double r38506 = r38503 + r38505;
double r38507 = sqrt(r38506);
double r38508 = log(r38507);
double r38509 = 1.047455535241276e-281;
bool r38510 = r38495 <= r38509;
double r38511 = log(r38504);
double r38512 = 8.042161939568835e+92;
bool r38513 = r38495 <= r38512;
double r38514 = log(r38495);
double r38515 = r38513 ? r38508 : r38514;
double r38516 = r38510 ? r38511 : r38515;
double r38517 = r38502 ? r38508 : r38516;
double r38518 = r38497 ? r38500 : r38517;
return r38518;
}



Bits error versus re



Bits error versus im
Results
if re < -4.197550803800697e+153Initial program 63.9
Taylor expanded around -inf 6.5
if -4.197550803800697e+153 < re < -9.528172448826491e-265 or 1.047455535241276e-281 < re < 8.042161939568835e+92Initial program 21.3
if -9.528172448826491e-265 < re < 1.047455535241276e-281Initial program 31.7
Taylor expanded around 0 33.5
if 8.042161939568835e+92 < re Initial program 50.4
Taylor expanded around inf 7.8
Final simplification17.8
herbie shell --seed 2020046
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))