\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -1.3743535485976946 \cdot 10^{+147}:\\
\;\;\;\;\log \left(-re\right)\\
\mathbf{elif}\;re \le -1.8362044109739617 \cdot 10^{-302}:\\
\;\;\;\;\log \left(\sqrt{im \cdot im + re \cdot re}\right)\\
\mathbf{elif}\;re \le 3.2371191719503383 \cdot 10^{-277}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 4.5962833543511176 \cdot 10^{+83}:\\
\;\;\;\;\log \left(\sqrt{im \cdot im + re \cdot re}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r1125796 = re;
double r1125797 = r1125796 * r1125796;
double r1125798 = im;
double r1125799 = r1125798 * r1125798;
double r1125800 = r1125797 + r1125799;
double r1125801 = sqrt(r1125800);
double r1125802 = log(r1125801);
return r1125802;
}
double f(double re, double im) {
double r1125803 = re;
double r1125804 = -1.3743535485976946e+147;
bool r1125805 = r1125803 <= r1125804;
double r1125806 = -r1125803;
double r1125807 = log(r1125806);
double r1125808 = -1.8362044109739617e-302;
bool r1125809 = r1125803 <= r1125808;
double r1125810 = im;
double r1125811 = r1125810 * r1125810;
double r1125812 = r1125803 * r1125803;
double r1125813 = r1125811 + r1125812;
double r1125814 = sqrt(r1125813);
double r1125815 = log(r1125814);
double r1125816 = 3.2371191719503383e-277;
bool r1125817 = r1125803 <= r1125816;
double r1125818 = log(r1125810);
double r1125819 = 4.5962833543511176e+83;
bool r1125820 = r1125803 <= r1125819;
double r1125821 = log(r1125803);
double r1125822 = r1125820 ? r1125815 : r1125821;
double r1125823 = r1125817 ? r1125818 : r1125822;
double r1125824 = r1125809 ? r1125815 : r1125823;
double r1125825 = r1125805 ? r1125807 : r1125824;
return r1125825;
}



Bits error versus re



Bits error versus im
Results
if re < -1.3743535485976946e+147Initial program 59.8
Taylor expanded around -inf 6.6
Simplified6.6
if -1.3743535485976946e+147 < re < -1.8362044109739617e-302 or 3.2371191719503383e-277 < re < 4.5962833543511176e+83Initial program 20.5
if -1.8362044109739617e-302 < re < 3.2371191719503383e-277Initial program 32.3
Taylor expanded around 0 28.3
if 4.5962833543511176e+83 < re Initial program 48.3
Taylor expanded around inf 9.2
Final simplification16.8
herbie shell --seed 2019142
(FPCore (re im)
:name "math.log/1 on complex, real part"
(log (sqrt (+ (* re re) (* im im)))))