\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -205453296394218056740696489984:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le 5.393409333016407349382852797071554062013 \cdot 10^{-267}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le 3.879358021752326621349199686757123097293 \cdot 10^{-199}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 3.489426022293498639008361120657128859232 \cdot 10^{55}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r30399 = re;
double r30400 = r30399 * r30399;
double r30401 = im;
double r30402 = r30401 * r30401;
double r30403 = r30400 + r30402;
double r30404 = sqrt(r30403);
double r30405 = log(r30404);
return r30405;
}
double f(double re, double im) {
double r30406 = re;
double r30407 = -2.0545329639421806e+29;
bool r30408 = r30406 <= r30407;
double r30409 = -1.0;
double r30410 = r30409 * r30406;
double r30411 = log(r30410);
double r30412 = 5.393409333016407e-267;
bool r30413 = r30406 <= r30412;
double r30414 = r30406 * r30406;
double r30415 = im;
double r30416 = r30415 * r30415;
double r30417 = r30414 + r30416;
double r30418 = sqrt(r30417);
double r30419 = log(r30418);
double r30420 = 3.8793580217523266e-199;
bool r30421 = r30406 <= r30420;
double r30422 = log(r30415);
double r30423 = 3.4894260222934986e+55;
bool r30424 = r30406 <= r30423;
double r30425 = log(r30406);
double r30426 = r30424 ? r30419 : r30425;
double r30427 = r30421 ? r30422 : r30426;
double r30428 = r30413 ? r30419 : r30427;
double r30429 = r30408 ? r30411 : r30428;
return r30429;
}



Bits error versus re



Bits error versus im
Results
if re < -2.0545329639421806e+29Initial program 42.1
Taylor expanded around -inf 11.1
if -2.0545329639421806e+29 < re < 5.393409333016407e-267 or 3.8793580217523266e-199 < re < 3.4894260222934986e+55Initial program 21.8
if 5.393409333016407e-267 < re < 3.8793580217523266e-199Initial program 31.7
Taylor expanded around 0 31.9
if 3.4894260222934986e+55 < re Initial program 45.4
Taylor expanded around inf 10.4
Final simplification17.7
herbie shell --seed 2019362
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))