\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r47729 = re;
double r47730 = r47729 * r47729;
double r47731 = im;
double r47732 = r47731 * r47731;
double r47733 = r47730 + r47732;
double r47734 = sqrt(r47733);
return r47734;
}
double f(double re, double im) {
double r47735 = re;
double r47736 = im;
double r47737 = hypot(r47735, r47736);
return r47737;
}



Bits error versus re



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