\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -1.3951279250903065 \cdot 10^{+116}:\\
\;\;\;\;\log \left(-re\right)\\
\mathbf{elif}\;re \le -1.2552454715818077 \cdot 10^{-176}:\\
\;\;\;\;\log \left(im \cdot im + re \cdot re\right) \cdot \frac{1}{2}\\
\mathbf{elif}\;re \le 8.33451305802747 \cdot 10^{-256}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 8235632211164311.0:\\
\;\;\;\;\log \left(im \cdot im + re \cdot re\right) \cdot \frac{1}{2}\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r2070615 = re;
double r2070616 = r2070615 * r2070615;
double r2070617 = im;
double r2070618 = r2070617 * r2070617;
double r2070619 = r2070616 + r2070618;
double r2070620 = sqrt(r2070619);
double r2070621 = log(r2070620);
return r2070621;
}
double f(double re, double im) {
double r2070622 = re;
double r2070623 = -1.3951279250903065e+116;
bool r2070624 = r2070622 <= r2070623;
double r2070625 = -r2070622;
double r2070626 = log(r2070625);
double r2070627 = -1.2552454715818077e-176;
bool r2070628 = r2070622 <= r2070627;
double r2070629 = im;
double r2070630 = r2070629 * r2070629;
double r2070631 = r2070622 * r2070622;
double r2070632 = r2070630 + r2070631;
double r2070633 = log(r2070632);
double r2070634 = 0.5;
double r2070635 = r2070633 * r2070634;
double r2070636 = 8.33451305802747e-256;
bool r2070637 = r2070622 <= r2070636;
double r2070638 = log(r2070629);
double r2070639 = 8235632211164311.0;
bool r2070640 = r2070622 <= r2070639;
double r2070641 = log(r2070622);
double r2070642 = r2070640 ? r2070635 : r2070641;
double r2070643 = r2070637 ? r2070638 : r2070642;
double r2070644 = r2070628 ? r2070635 : r2070643;
double r2070645 = r2070624 ? r2070626 : r2070644;
return r2070645;
}



Bits error versus re



Bits error versus im
Results
if re < -1.3951279250903065e+116Initial program 52.7
Taylor expanded around -inf 7.5
Simplified7.5
if -1.3951279250903065e+116 < re < -1.2552454715818077e-176 or 8.33451305802747e-256 < re < 8235632211164311.0Initial program 18.0
rmApplied pow1/218.0
Applied log-pow18.0
if -1.2552454715818077e-176 < re < 8.33451305802747e-256Initial program 30.2
Taylor expanded around 0 32.5
if 8235632211164311.0 < re Initial program 39.5
Taylor expanded around inf 12.8
Final simplification17.6
herbie shell --seed 2019158
(FPCore (re im)
:name "math.log/1 on complex, real part"
(log (sqrt (+ (* re re) (* im im)))))