\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r733666 = re;
double r733667 = r733666 * r733666;
double r733668 = im;
double r733669 = r733668 * r733668;
double r733670 = r733667 + r733669;
double r733671 = sqrt(r733670);
return r733671;
}
double f(double re, double im) {
double r733672 = re;
double r733673 = im;
double r733674 = hypot(r733672, r733673);
return r733674;
}



Bits error versus re



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