\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 r1035241 = re;
double r1035242 = r1035241 * r1035241;
double r1035243 = im;
double r1035244 = r1035243 * r1035243;
double r1035245 = r1035242 + r1035244;
double r1035246 = sqrt(r1035245);
double r1035247 = log(r1035246);
return r1035247;
}
double f(double re, double im) {
double r1035248 = re;
double r1035249 = im;
double r1035250 = hypot(r1035248, r1035249);
double r1035251 = log(r1035250);
return r1035251;
}



Bits error versus re



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