\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 r1536100 = re;
double r1536101 = r1536100 * r1536100;
double r1536102 = im;
double r1536103 = r1536102 * r1536102;
double r1536104 = r1536101 + r1536103;
double r1536105 = sqrt(r1536104);
return r1536105;
}
double f(double re, double im) {
double r1536106 = re;
double r1536107 = r1536106 * r1536106;
double r1536108 = im;
double r1536109 = r1536108 * r1536108;
double r1536110 = r1536107 + r1536109;
double r1536111 = sqrt(r1536110);
return r1536111;
}



Bits error versus re



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