\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -3.859463483918923369547260927451545843966 \cdot 10^{84}:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le -1.167098834567443703136578031923709302405 \cdot 10^{-290}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le 3.812412734570747037549119511317842097867 \cdot 10^{-267}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 1520535341655445535810607142928115832979000:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r29764 = re;
double r29765 = r29764 * r29764;
double r29766 = im;
double r29767 = r29766 * r29766;
double r29768 = r29765 + r29767;
double r29769 = sqrt(r29768);
double r29770 = log(r29769);
return r29770;
}
double f(double re, double im) {
double r29771 = re;
double r29772 = -3.8594634839189234e+84;
bool r29773 = r29771 <= r29772;
double r29774 = -1.0;
double r29775 = r29774 * r29771;
double r29776 = log(r29775);
double r29777 = -1.1670988345674437e-290;
bool r29778 = r29771 <= r29777;
double r29779 = r29771 * r29771;
double r29780 = im;
double r29781 = r29780 * r29780;
double r29782 = r29779 + r29781;
double r29783 = sqrt(r29782);
double r29784 = log(r29783);
double r29785 = 3.812412734570747e-267;
bool r29786 = r29771 <= r29785;
double r29787 = log(r29780);
double r29788 = 1.5205353416554455e+42;
bool r29789 = r29771 <= r29788;
double r29790 = log(r29771);
double r29791 = r29789 ? r29784 : r29790;
double r29792 = r29786 ? r29787 : r29791;
double r29793 = r29778 ? r29784 : r29792;
double r29794 = r29773 ? r29776 : r29793;
return r29794;
}



Bits error versus re



Bits error versus im
Results
if re < -3.8594634839189234e+84Initial program 49.9
Taylor expanded around -inf 9.2
if -3.8594634839189234e+84 < re < -1.1670988345674437e-290 or 3.812412734570747e-267 < re < 1.5205353416554455e+42Initial program 21.5
if -1.1670988345674437e-290 < re < 3.812412734570747e-267Initial program 30.3
Taylor expanded around 0 30.4
if 1.5205353416554455e+42 < re Initial program 45.6
Taylor expanded around inf 11.7
Final simplification17.6
herbie shell --seed 2019354
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))