\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 r629690 = re;
double r629691 = r629690 * r629690;
double r629692 = im;
double r629693 = r629692 * r629692;
double r629694 = r629691 + r629693;
double r629695 = sqrt(r629694);
return r629695;
}
double f(double re, double im) {
double r629696 = re;
double r629697 = r629696 * r629696;
double r629698 = im;
double r629699 = r629698 * r629698;
double r629700 = r629697 + r629699;
double r629701 = sqrt(r629700);
return r629701;
}



Bits error versus re



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