\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -5.1853738157433311 \cdot 10^{115}:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le -3.2322001606130373 \cdot 10^{-152}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le 3.3264901232199245 \cdot 10^{-273}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 2.97128001067495674 \cdot 10^{26}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r34149 = re;
double r34150 = r34149 * r34149;
double r34151 = im;
double r34152 = r34151 * r34151;
double r34153 = r34150 + r34152;
double r34154 = sqrt(r34153);
double r34155 = log(r34154);
return r34155;
}
double f(double re, double im) {
double r34156 = re;
double r34157 = -5.185373815743331e+115;
bool r34158 = r34156 <= r34157;
double r34159 = -1.0;
double r34160 = r34159 * r34156;
double r34161 = log(r34160);
double r34162 = -3.2322001606130373e-152;
bool r34163 = r34156 <= r34162;
double r34164 = r34156 * r34156;
double r34165 = im;
double r34166 = r34165 * r34165;
double r34167 = r34164 + r34166;
double r34168 = sqrt(r34167);
double r34169 = log(r34168);
double r34170 = 3.3264901232199245e-273;
bool r34171 = r34156 <= r34170;
double r34172 = log(r34165);
double r34173 = 2.9712800106749567e+26;
bool r34174 = r34156 <= r34173;
double r34175 = log(r34156);
double r34176 = r34174 ? r34169 : r34175;
double r34177 = r34171 ? r34172 : r34176;
double r34178 = r34163 ? r34169 : r34177;
double r34179 = r34158 ? r34161 : r34178;
return r34179;
}



Bits error versus re



Bits error versus im
Results
if re < -5.185373815743331e+115Initial program 54.1
Taylor expanded around -inf 7.9
if -5.185373815743331e+115 < re < -3.2322001606130373e-152 or 3.3264901232199245e-273 < re < 2.9712800106749567e+26Initial program 18.9
if -3.2322001606130373e-152 < re < 3.3264901232199245e-273Initial program 30.3
Taylor expanded around 0 34.8
if 2.9712800106749567e+26 < re Initial program 42.2
Taylor expanded around inf 11.4
Final simplification18.0
herbie shell --seed 2020021
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))