\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -1.067439766429425256822678606355967347012 \cdot 10^{136}:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le -4.403979278921539526489078141768847052434 \cdot 10^{-257}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le 3.819778680555784511216531232393990012128 \cdot 10^{-227}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 8.439330033545885045213726212950052594665 \cdot 10^{67}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r31559 = re;
double r31560 = r31559 * r31559;
double r31561 = im;
double r31562 = r31561 * r31561;
double r31563 = r31560 + r31562;
double r31564 = sqrt(r31563);
double r31565 = log(r31564);
return r31565;
}
double f(double re, double im) {
double r31566 = re;
double r31567 = -1.0674397664294253e+136;
bool r31568 = r31566 <= r31567;
double r31569 = -1.0;
double r31570 = r31569 * r31566;
double r31571 = log(r31570);
double r31572 = -4.4039792789215395e-257;
bool r31573 = r31566 <= r31572;
double r31574 = r31566 * r31566;
double r31575 = im;
double r31576 = r31575 * r31575;
double r31577 = r31574 + r31576;
double r31578 = sqrt(r31577);
double r31579 = log(r31578);
double r31580 = 3.8197786805557845e-227;
bool r31581 = r31566 <= r31580;
double r31582 = log(r31575);
double r31583 = 8.439330033545885e+67;
bool r31584 = r31566 <= r31583;
double r31585 = log(r31566);
double r31586 = r31584 ? r31579 : r31585;
double r31587 = r31581 ? r31582 : r31586;
double r31588 = r31573 ? r31579 : r31587;
double r31589 = r31568 ? r31571 : r31588;
return r31589;
}



Bits error versus re



Bits error versus im
Results
if re < -1.0674397664294253e+136Initial program 58.9
Taylor expanded around -inf 7.7
if -1.0674397664294253e+136 < re < -4.4039792789215395e-257 or 3.8197786805557845e-227 < re < 8.439330033545885e+67Initial program 18.8
if -4.4039792789215395e-257 < re < 3.8197786805557845e-227Initial program 31.0
Taylor expanded around 0 32.6
if 8.439330033545885e+67 < re Initial program 46.7
Taylor expanded around inf 10.2
Final simplification17.0
herbie shell --seed 2020001
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))