\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -8.019718531677109 \cdot 10^{+83}:\\
\;\;\;\;\log \left(-re\right)\\
\mathbf{elif}\;re \le -4.41122201426305 \cdot 10^{-167}:\\
\;\;\;\;\log \left(\sqrt{im \cdot im + re \cdot re}\right)\\
\mathbf{elif}\;re \le 3.772349416931329 \cdot 10^{-236}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 5.362757127991631 \cdot 10^{+122}:\\
\;\;\;\;\log \left(\sqrt{im \cdot im + re \cdot re}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r1184671 = re;
double r1184672 = r1184671 * r1184671;
double r1184673 = im;
double r1184674 = r1184673 * r1184673;
double r1184675 = r1184672 + r1184674;
double r1184676 = sqrt(r1184675);
double r1184677 = log(r1184676);
return r1184677;
}
double f(double re, double im) {
double r1184678 = re;
double r1184679 = -8.019718531677109e+83;
bool r1184680 = r1184678 <= r1184679;
double r1184681 = -r1184678;
double r1184682 = log(r1184681);
double r1184683 = -4.41122201426305e-167;
bool r1184684 = r1184678 <= r1184683;
double r1184685 = im;
double r1184686 = r1184685 * r1184685;
double r1184687 = r1184678 * r1184678;
double r1184688 = r1184686 + r1184687;
double r1184689 = sqrt(r1184688);
double r1184690 = log(r1184689);
double r1184691 = 3.772349416931329e-236;
bool r1184692 = r1184678 <= r1184691;
double r1184693 = log(r1184685);
double r1184694 = 5.362757127991631e+122;
bool r1184695 = r1184678 <= r1184694;
double r1184696 = log(r1184678);
double r1184697 = r1184695 ? r1184690 : r1184696;
double r1184698 = r1184692 ? r1184693 : r1184697;
double r1184699 = r1184684 ? r1184690 : r1184698;
double r1184700 = r1184680 ? r1184682 : r1184699;
return r1184700;
}



Bits error versus re



Bits error versus im
Results
if re < -8.019718531677109e+83Initial program 47.6
Taylor expanded around -inf 10.4
Simplified10.4
if -8.019718531677109e+83 < re < -4.41122201426305e-167 or 3.772349416931329e-236 < re < 5.362757127991631e+122Initial program 18.1
if -4.41122201426305e-167 < re < 3.772349416931329e-236Initial program 29.8
Taylor expanded around 0 33.3
if 5.362757127991631e+122 < re Initial program 53.1
Taylor expanded around inf 7.8
Final simplification17.8
herbie shell --seed 2019146
(FPCore (re im)
:name "math.log/1 on complex, real part"
(log (sqrt (+ (* re re) (* im im)))))