\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r46908 = re;
double r46909 = r46908 * r46908;
double r46910 = im;
double r46911 = r46910 * r46910;
double r46912 = r46909 + r46911;
double r46913 = sqrt(r46912);
return r46913;
}
double f(double re, double im) {
double r46914 = re;
double r46915 = im;
double r46916 = hypot(r46914, r46915);
return r46916;
}



Bits error versus re



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