\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r910110 = re;
double r910111 = r910110 * r910110;
double r910112 = im;
double r910113 = r910112 * r910112;
double r910114 = r910111 + r910113;
double r910115 = sqrt(r910114);
return r910115;
}
double f(double re, double im) {
double r910116 = re;
double r910117 = im;
double r910118 = hypot(r910116, r910117);
return r910118;
}



Bits error versus re



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