\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r55730 = re;
double r55731 = r55730 * r55730;
double r55732 = im;
double r55733 = r55732 * r55732;
double r55734 = r55731 + r55733;
double r55735 = sqrt(r55734);
return r55735;
}
double f(double re, double im) {
double r55736 = re;
double r55737 = im;
double r55738 = hypot(r55736, r55737);
return r55738;
}



Bits error versus re



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