\frac{\left(\frac{\left(x.re \cdot y.re\right)}{\left(x.im \cdot y.im\right)}\right)}{\left(\frac{\left(y.re \cdot y.re\right)}{\left(y.im \cdot y.im\right)}\right)}\frac{x.re \cdot y.re + x.im \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}double f(double x_re, double x_im, double y_re, double y_im) {
double r865003 = x_re;
double r865004 = y_re;
double r865005 = r865003 * r865004;
double r865006 = x_im;
double r865007 = y_im;
double r865008 = r865006 * r865007;
double r865009 = r865005 + r865008;
double r865010 = r865004 * r865004;
double r865011 = r865007 * r865007;
double r865012 = r865010 + r865011;
double r865013 = r865009 / r865012;
return r865013;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r865014 = x_re;
double r865015 = y_re;
double r865016 = r865014 * r865015;
double r865017 = x_im;
double r865018 = y_im;
double r865019 = r865017 * r865018;
double r865020 = r865016 + r865019;
double r865021 = r865015 * r865015;
double r865022 = r865018 * r865018;
double r865023 = r865021 + r865022;
double r865024 = r865020 / r865023;
return r865024;
}



Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Initial program 1.1
Final simplification1.1
herbie shell --seed 2019120
(FPCore (x.re x.im y.re y.im)
:name "_divideComplex, real part"
(/.p16 (+.p16 (*.p16 x.re y.re) (*.p16 x.im y.im)) (+.p16 (*.p16 y.re y.re) (*.p16 y.im y.im))))