\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 r29763 = re;
double r29764 = r29763 * r29763;
double r29765 = im;
double r29766 = r29765 * r29765;
double r29767 = r29764 + r29766;
double r29768 = sqrt(r29767);
double r29769 = log(r29768);
return r29769;
}
double f(double re, double im) {
double r29770 = re;
double r29771 = -5.543624575485825e+99;
bool r29772 = r29770 <= r29771;
double r29773 = -1.0;
double r29774 = r29773 * r29770;
double r29775 = log(r29774);
double r29776 = -1.8506630449800765e-210;
bool r29777 = r29770 <= r29776;
double r29778 = r29770 * r29770;
double r29779 = im;
double r29780 = r29779 * r29779;
double r29781 = r29778 + r29780;
double r29782 = sqrt(r29781);
double r29783 = log(r29782);
double r29784 = 2.6951869124740155e-166;
bool r29785 = r29770 <= r29784;
double r29786 = log(r29779);
double r29787 = 4.8072428149772244e+120;
bool r29788 = r29770 <= r29787;
double r29789 = log(r29770);
double r29790 = r29788 ? r29783 : r29789;
double r29791 = r29785 ? r29786 : r29790;
double r29792 = r29777 ? r29783 : r29791;
double r29793 = r29772 ? r29775 : r29792;
return r29793;
}



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)))))