\log \left(\sqrt{re \cdot re + im \cdot im}\right)\log \left(\mathsf{hypot}\left(re, im\right)\right)double f(double re, double im) {
double r487995 = re;
double r487996 = r487995 * r487995;
double r487997 = im;
double r487998 = r487997 * r487997;
double r487999 = r487996 + r487998;
double r488000 = sqrt(r487999);
double r488001 = log(r488000);
return r488001;
}
double f(double re, double im) {
double r488002 = re;
double r488003 = im;
double r488004 = hypot(r488002, r488003);
double r488005 = log(r488004);
return r488005;
}



Bits error versus re



Bits error versus im
Results
Initial program 30.6
Simplified0
Final simplification0
herbie shell --seed 2019139 +o rules:numerics
(FPCore (re im)
:name "math.log/1 on complex, real part"
(log (sqrt (+ (* re re) (* im im)))))