\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -1.257112734122685429337634185885113846063 \cdot 10^{130}:\\
\;\;\;\;-\log \left(\frac{-1}{re}\right)\\
\mathbf{elif}\;re \le -1.082781542809915013551950598635310407664 \cdot 10^{-198}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le -1.350068654779021630227434578668149263935 \cdot 10^{-288}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 4.433568900171380321450814116162656047486 \cdot 10^{74}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r41115 = re;
double r41116 = r41115 * r41115;
double r41117 = im;
double r41118 = r41117 * r41117;
double r41119 = r41116 + r41118;
double r41120 = sqrt(r41119);
double r41121 = log(r41120);
return r41121;
}
double f(double re, double im) {
double r41122 = re;
double r41123 = -1.2571127341226854e+130;
bool r41124 = r41122 <= r41123;
double r41125 = -1.0;
double r41126 = r41125 / r41122;
double r41127 = log(r41126);
double r41128 = -r41127;
double r41129 = -1.082781542809915e-198;
bool r41130 = r41122 <= r41129;
double r41131 = r41122 * r41122;
double r41132 = im;
double r41133 = r41132 * r41132;
double r41134 = r41131 + r41133;
double r41135 = sqrt(r41134);
double r41136 = log(r41135);
double r41137 = -1.3500686547790216e-288;
bool r41138 = r41122 <= r41137;
double r41139 = log(r41132);
double r41140 = 4.4335689001713803e+74;
bool r41141 = r41122 <= r41140;
double r41142 = log(r41122);
double r41143 = r41141 ? r41136 : r41142;
double r41144 = r41138 ? r41139 : r41143;
double r41145 = r41130 ? r41136 : r41144;
double r41146 = r41124 ? r41128 : r41145;
return r41146;
}



Bits error versus re



Bits error versus im
Results
if re < -1.2571127341226854e+130Initial program 58.4
Taylor expanded around -inf 7.3
if -1.2571127341226854e+130 < re < -1.082781542809915e-198 or -1.3500686547790216e-288 < re < 4.4335689001713803e+74Initial program 20.4
if -1.082781542809915e-198 < re < -1.3500686547790216e-288Initial program 29.7
Taylor expanded around 0 32.6
if 4.4335689001713803e+74 < re Initial program 47.9
Taylor expanded around inf 10.4
Final simplification17.5
herbie shell --seed 2019347
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))