\sqrt{re \cdot re + im \cdot im}\sqrt{re^2 + im^2}^*double f(double re, double im) {
double r488412 = re;
double r488413 = r488412 * r488412;
double r488414 = im;
double r488415 = r488414 * r488414;
double r488416 = r488413 + r488415;
double r488417 = sqrt(r488416);
return r488417;
}
double f(double re, double im) {
double r488418 = re;
double r488419 = im;
double r488420 = hypot(r488418, r488419);
return r488420;
}



Bits error versus re



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