\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -5.543624575485825300470836787098407507184 \cdot 10^{99}:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le -1.85066304498007646559295186368455547267 \cdot 10^{-210}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le 2.695186912474015462769700121112449872029 \cdot 10^{-166}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 4.807242814977224375325896090190360016547 \cdot 10^{120}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r82268 = re;
double r82269 = r82268 * r82268;
double r82270 = im;
double r82271 = r82270 * r82270;
double r82272 = r82269 + r82271;
double r82273 = sqrt(r82272);
double r82274 = log(r82273);
return r82274;
}
double f(double re, double im) {
double r82275 = re;
double r82276 = -5.543624575485825e+99;
bool r82277 = r82275 <= r82276;
double r82278 = -1.0;
double r82279 = r82278 * r82275;
double r82280 = log(r82279);
double r82281 = -1.8506630449800765e-210;
bool r82282 = r82275 <= r82281;
double r82283 = r82275 * r82275;
double r82284 = im;
double r82285 = r82284 * r82284;
double r82286 = r82283 + r82285;
double r82287 = sqrt(r82286);
double r82288 = log(r82287);
double r82289 = 2.6951869124740155e-166;
bool r82290 = r82275 <= r82289;
double r82291 = log(r82284);
double r82292 = 4.8072428149772244e+120;
bool r82293 = r82275 <= r82292;
double r82294 = log(r82275);
double r82295 = r82293 ? r82288 : r82294;
double r82296 = r82290 ? r82291 : r82295;
double r82297 = r82282 ? r82288 : r82296;
double r82298 = r82277 ? r82280 : r82297;
return r82298;
}



Bits error versus re



Bits error versus im
Results
if re < -5.543624575485825e+99Initial program 50.7
Taylor expanded around -inf 8.8
if -5.543624575485825e+99 < re < -1.8506630449800765e-210 or 2.6951869124740155e-166 < re < 4.8072428149772244e+120Initial program 16.9
if -1.8506630449800765e-210 < re < 2.6951869124740155e-166Initial program 31.9
Taylor expanded around 0 34.1
if 4.8072428149772244e+120 < re Initial program 55.8
Taylor expanded around inf 8.1
Final simplification17.4
herbie shell --seed 2019353
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))