\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r95472 = re;
double r95473 = r95472 * r95472;
double r95474 = im;
double r95475 = r95474 * r95474;
double r95476 = r95473 + r95475;
double r95477 = sqrt(r95476);
return r95477;
}
double f(double re, double im) {
double r95478 = re;
double r95479 = im;
double r95480 = hypot(r95478, r95479);
return r95480;
}



Bits error versus re



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