\sqrt{\left(\frac{\left(re \cdot re\right)}{\left(im \cdot im\right)}\right)}\sqrt{re \cdot re + im \cdot im}double f(double re, double im) {
double r611951 = re;
double r611952 = r611951 * r611951;
double r611953 = im;
double r611954 = r611953 * r611953;
double r611955 = r611952 + r611954;
double r611956 = sqrt(r611955);
return r611956;
}
double f(double re, double im) {
double r611957 = re;
double r611958 = r611957 * r611957;
double r611959 = im;
double r611960 = r611959 * r611959;
double r611961 = r611958 + r611960;
double r611962 = sqrt(r611961);
return r611962;
}



Bits error versus re



Bits error versus im
Initial program 0.6
Final simplification0.6
herbie shell --seed 2019120
(FPCore (re im)
:name "math.abs on complex"
(sqrt.p16 (+.p16 (*.p16 re re) (*.p16 im im))))