\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r30548 = re;
double r30549 = r30548 * r30548;
double r30550 = im;
double r30551 = r30550 * r30550;
double r30552 = r30549 + r30551;
double r30553 = sqrt(r30552);
return r30553;
}
double f(double re, double im) {
double r30554 = re;
double r30555 = im;
double r30556 = hypot(r30554, r30555);
return r30556;
}



Bits error versus re



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