\frac{\left(\left(x.im \cdot y.re\right) - \left(x.re \cdot y.im\right)\right)}{\left(\frac{\left(y.re \cdot y.re\right)}{\left(y.im \cdot y.im\right)}\right)}\frac{x.im \cdot y.re - x.re \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 r1089063 = x_im;
double r1089064 = y_re;
double r1089065 = r1089063 * r1089064;
double r1089066 = x_re;
double r1089067 = y_im;
double r1089068 = r1089066 * r1089067;
double r1089069 = r1089065 - r1089068;
double r1089070 = r1089064 * r1089064;
double r1089071 = r1089067 * r1089067;
double r1089072 = r1089070 + r1089071;
double r1089073 = r1089069 / r1089072;
return r1089073;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r1089074 = x_im;
double r1089075 = y_re;
double r1089076 = r1089074 * r1089075;
double r1089077 = x_re;
double r1089078 = y_im;
double r1089079 = r1089077 * r1089078;
double r1089080 = r1089076 - r1089079;
double r1089081 = r1089075 * r1089075;
double r1089082 = r1089078 * r1089078;
double r1089083 = r1089081 + r1089082;
double r1089084 = r1089080 / r1089083;
return r1089084;
}



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 +o rules:numerics
(FPCore (x.re x.im y.re y.im)
:name "_divideComplex, imaginary part"
(/.p16 (-.p16 (*.p16 x.im y.re) (*.p16 x.re y.im)) (+.p16 (*.p16 y.re y.re) (*.p16 y.im y.im))))