\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r56032 = re;
double r56033 = r56032 * r56032;
double r56034 = im;
double r56035 = r56034 * r56034;
double r56036 = r56033 + r56035;
double r56037 = sqrt(r56036);
return r56037;
}
double f(double re, double im) {
double r56038 = re;
double r56039 = im;
double r56040 = hypot(r56038, r56039);
return r56040;
}



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))))