\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -3.25652114888863578 \cdot 10^{112}:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le -1.74994020298687266 \cdot 10^{-290}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le 1.2918788242355971 \cdot 10^{-219}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 1.20526441884369862 \cdot 10^{151}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r82944 = re;
double r82945 = r82944 * r82944;
double r82946 = im;
double r82947 = r82946 * r82946;
double r82948 = r82945 + r82947;
double r82949 = sqrt(r82948);
double r82950 = log(r82949);
return r82950;
}
double f(double re, double im) {
double r82951 = re;
double r82952 = -3.2565211488886358e+112;
bool r82953 = r82951 <= r82952;
double r82954 = -1.0;
double r82955 = r82954 * r82951;
double r82956 = log(r82955);
double r82957 = -1.7499402029868727e-290;
bool r82958 = r82951 <= r82957;
double r82959 = r82951 * r82951;
double r82960 = im;
double r82961 = r82960 * r82960;
double r82962 = r82959 + r82961;
double r82963 = sqrt(r82962);
double r82964 = log(r82963);
double r82965 = 1.2918788242355971e-219;
bool r82966 = r82951 <= r82965;
double r82967 = log(r82960);
double r82968 = 1.2052644188436986e+151;
bool r82969 = r82951 <= r82968;
double r82970 = log(r82951);
double r82971 = r82969 ? r82964 : r82970;
double r82972 = r82966 ? r82967 : r82971;
double r82973 = r82958 ? r82964 : r82972;
double r82974 = r82953 ? r82956 : r82973;
return r82974;
}



Bits error versus re



Bits error versus im
Results
if re < -3.2565211488886358e+112Initial program 52.8
Taylor expanded around -inf 7.8
if -3.2565211488886358e+112 < re < -1.7499402029868727e-290 or 1.2918788242355971e-219 < re < 1.2052644188436986e+151Initial program 19.2
if -1.7499402029868727e-290 < re < 1.2918788242355971e-219Initial program 32.0
Taylor expanded around 0 32.2
if 1.2052644188436986e+151 < re Initial program 63.0
Taylor expanded around inf 6.1
Final simplification16.9
herbie shell --seed 2020035
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))