\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r114383 = re;
double r114384 = r114383 * r114383;
double r114385 = im;
double r114386 = r114385 * r114385;
double r114387 = r114384 + r114386;
double r114388 = sqrt(r114387);
return r114388;
}
double f(double re, double im) {
double r114389 = re;
double r114390 = im;
double r114391 = hypot(r114389, r114390);
return r114391;
}



Bits error versus re



Bits error versus im
Results
Initial program 31.6
Simplified0.0
Final simplification0.0
herbie shell --seed 2019323 +o rules:numerics
(FPCore (re im)
:name "math.abs on complex"
:precision binary64
(sqrt (+ (* re re) (* im im))))