\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -8.184754974022721082099165272992085068412 \cdot 10^{109}:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le -5.42865480404631814383011665150633500318 \cdot 10^{-185}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le -1.794325950546430591123187005439756959047 \cdot 10^{-210}:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le 4.941794989955851304909697931543184438921 \cdot 10^{75}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r34702 = re;
double r34703 = r34702 * r34702;
double r34704 = im;
double r34705 = r34704 * r34704;
double r34706 = r34703 + r34705;
double r34707 = sqrt(r34706);
double r34708 = log(r34707);
return r34708;
}
double f(double re, double im) {
double r34709 = re;
double r34710 = -8.184754974022721e+109;
bool r34711 = r34709 <= r34710;
double r34712 = -1.0;
double r34713 = r34712 * r34709;
double r34714 = log(r34713);
double r34715 = -5.428654804046318e-185;
bool r34716 = r34709 <= r34715;
double r34717 = r34709 * r34709;
double r34718 = im;
double r34719 = r34718 * r34718;
double r34720 = r34717 + r34719;
double r34721 = sqrt(r34720);
double r34722 = log(r34721);
double r34723 = -1.7943259505464306e-210;
bool r34724 = r34709 <= r34723;
double r34725 = 4.941794989955851e+75;
bool r34726 = r34709 <= r34725;
double r34727 = log(r34709);
double r34728 = r34726 ? r34722 : r34727;
double r34729 = r34724 ? r34714 : r34728;
double r34730 = r34716 ? r34722 : r34729;
double r34731 = r34711 ? r34714 : r34730;
return r34731;
}



Bits error versus re



Bits error versus im
Results
if re < -8.184754974022721e+109 or -5.428654804046318e-185 < re < -1.7943259505464306e-210Initial program 52.1
Taylor expanded around -inf 12.2
if -8.184754974022721e+109 < re < -5.428654804046318e-185 or -1.7943259505464306e-210 < re < 4.941794989955851e+75Initial program 21.5
if 4.941794989955851e+75 < re Initial program 48.0
Taylor expanded around inf 9.5
Final simplification17.6
herbie shell --seed 2019308
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))