\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -1.989101613628458 \cdot 10^{44}:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le 7.9423972447061974 \cdot 10^{-271}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le 2.744576864806113 \cdot 10^{-224}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 1.1417370863594925 \cdot 10^{101}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r34677 = re;
double r34678 = r34677 * r34677;
double r34679 = im;
double r34680 = r34679 * r34679;
double r34681 = r34678 + r34680;
double r34682 = sqrt(r34681);
double r34683 = log(r34682);
return r34683;
}
double f(double re, double im) {
double r34684 = re;
double r34685 = -1.989101613628458e+44;
bool r34686 = r34684 <= r34685;
double r34687 = -1.0;
double r34688 = r34687 * r34684;
double r34689 = log(r34688);
double r34690 = 7.942397244706197e-271;
bool r34691 = r34684 <= r34690;
double r34692 = r34684 * r34684;
double r34693 = im;
double r34694 = r34693 * r34693;
double r34695 = r34692 + r34694;
double r34696 = sqrt(r34695);
double r34697 = log(r34696);
double r34698 = 2.744576864806113e-224;
bool r34699 = r34684 <= r34698;
double r34700 = log(r34693);
double r34701 = 1.1417370863594925e+101;
bool r34702 = r34684 <= r34701;
double r34703 = log(r34684);
double r34704 = r34702 ? r34697 : r34703;
double r34705 = r34699 ? r34700 : r34704;
double r34706 = r34691 ? r34697 : r34705;
double r34707 = r34686 ? r34689 : r34706;
return r34707;
}



Bits error versus re



Bits error versus im
Results
if re < -1.989101613628458e+44Initial program 43.3
Taylor expanded around -inf 12.1
if -1.989101613628458e+44 < re < 7.942397244706197e-271 or 2.744576864806113e-224 < re < 1.1417370863594925e+101Initial program 21.6
if 7.942397244706197e-271 < re < 2.744576864806113e-224Initial program 29.7
Taylor expanded around 0 31.9
if 1.1417370863594925e+101 < re Initial program 52.5
Taylor expanded around inf 8.8
Final simplification17.8
herbie shell --seed 2020060
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))