\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -4.219332295965777137041720193068407814529 \cdot 10^{82}:\\
\;\;\;\;\log \left(-re\right)\\
\mathbf{elif}\;re \le -3.743447547042940916879606925039648794356 \cdot 10^{-217}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le -1.6117218241464792617406634329935791946 \cdot 10^{-282}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 124645931887550053482496:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r24156 = re;
double r24157 = r24156 * r24156;
double r24158 = im;
double r24159 = r24158 * r24158;
double r24160 = r24157 + r24159;
double r24161 = sqrt(r24160);
double r24162 = log(r24161);
return r24162;
}
double f(double re, double im) {
double r24163 = re;
double r24164 = -4.219332295965777e+82;
bool r24165 = r24163 <= r24164;
double r24166 = -r24163;
double r24167 = log(r24166);
double r24168 = -3.743447547042941e-217;
bool r24169 = r24163 <= r24168;
double r24170 = r24163 * r24163;
double r24171 = im;
double r24172 = r24171 * r24171;
double r24173 = r24170 + r24172;
double r24174 = sqrt(r24173);
double r24175 = log(r24174);
double r24176 = -1.6117218241464793e-282;
bool r24177 = r24163 <= r24176;
double r24178 = log(r24171);
double r24179 = 1.2464593188755005e+23;
bool r24180 = r24163 <= r24179;
double r24181 = log(r24163);
double r24182 = r24180 ? r24175 : r24181;
double r24183 = r24177 ? r24178 : r24182;
double r24184 = r24169 ? r24175 : r24183;
double r24185 = r24165 ? r24167 : r24184;
return r24185;
}



Bits error versus re



Bits error versus im
Results
if re < -4.219332295965777e+82Initial program 49.1
Taylor expanded around -inf 10.0
Simplified10.0
if -4.219332295965777e+82 < re < -3.743447547042941e-217 or -1.6117218241464793e-282 < re < 1.2464593188755005e+23Initial program 21.7
if -3.743447547042941e-217 < re < -1.6117218241464793e-282Initial program 34.5
Taylor expanded around 0 34.1
if 1.2464593188755005e+23 < re Initial program 41.7
Taylor expanded around inf 11.8
Final simplification17.8
herbie shell --seed 2019322
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))