\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r48943 = re;
double r48944 = r48943 * r48943;
double r48945 = im;
double r48946 = r48945 * r48945;
double r48947 = r48944 + r48946;
double r48948 = sqrt(r48947);
return r48948;
}
double f(double re, double im) {
double r48949 = re;
double r48950 = im;
double r48951 = hypot(r48949, r48950);
return r48951;
}



Bits error versus re



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