\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -1.1845577271365163 \cdot 10^{+79}:\\
\;\;\;\;\log \left(-re\right)\\
\mathbf{elif}\;re \le 1.1144412990449351 \cdot 10^{-247}:\\
\;\;\;\;\log \left(\sqrt{im \cdot im + re \cdot re}\right)\\
\mathbf{elif}\;re \le 6.513147769961864 \cdot 10^{-175}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 6.701299277965636 \cdot 10^{+118}:\\
\;\;\;\;\log \left(\sqrt{im \cdot im + re \cdot re}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r503434 = re;
double r503435 = r503434 * r503434;
double r503436 = im;
double r503437 = r503436 * r503436;
double r503438 = r503435 + r503437;
double r503439 = sqrt(r503438);
double r503440 = log(r503439);
return r503440;
}
double f(double re, double im) {
double r503441 = re;
double r503442 = -1.1845577271365163e+79;
bool r503443 = r503441 <= r503442;
double r503444 = -r503441;
double r503445 = log(r503444);
double r503446 = 1.1144412990449351e-247;
bool r503447 = r503441 <= r503446;
double r503448 = im;
double r503449 = r503448 * r503448;
double r503450 = r503441 * r503441;
double r503451 = r503449 + r503450;
double r503452 = sqrt(r503451);
double r503453 = log(r503452);
double r503454 = 6.513147769961864e-175;
bool r503455 = r503441 <= r503454;
double r503456 = log(r503448);
double r503457 = 6.701299277965636e+118;
bool r503458 = r503441 <= r503457;
double r503459 = log(r503441);
double r503460 = r503458 ? r503453 : r503459;
double r503461 = r503455 ? r503456 : r503460;
double r503462 = r503447 ? r503453 : r503461;
double r503463 = r503443 ? r503445 : r503462;
return r503463;
}



Bits error versus re



Bits error versus im
Results
if re < -1.1845577271365163e+79Initial program 47.5
Taylor expanded around -inf 9.5
Simplified9.5
if -1.1845577271365163e+79 < re < 1.1144412990449351e-247 or 6.513147769961864e-175 < re < 6.701299277965636e+118Initial program 20.2
if 1.1144412990449351e-247 < re < 6.513147769961864e-175Initial program 33.3
Taylor expanded around 0 38.2
if 6.701299277965636e+118 < re Initial program 54.3
Taylor expanded around inf 8.0
Final simplification17.4
herbie shell --seed 2019133
(FPCore (re im)
:name "math.log/1 on complex, real part"
(log (sqrt (+ (* re re) (* im im)))))