\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r43413 = re;
double r43414 = r43413 * r43413;
double r43415 = im;
double r43416 = r43415 * r43415;
double r43417 = r43414 + r43416;
double r43418 = sqrt(r43417);
return r43418;
}
double f(double re, double im) {
double r43419 = re;
double r43420 = im;
double r43421 = hypot(r43419, r43420);
return r43421;
}



Bits error versus re



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