\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 r649974 = re;
double r649975 = r649974 * r649974;
double r649976 = im;
double r649977 = r649976 * r649976;
double r649978 = r649975 + r649977;
double r649979 = sqrt(r649978);
return r649979;
}
double f(double re, double im) {
double r649980 = re;
double r649981 = r649980 * r649980;
double r649982 = im;
double r649983 = r649982 * r649982;
double r649984 = r649981 + r649983;
double r649985 = sqrt(r649984);
return r649985;
}



Bits error versus re



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