x.re \cdot y.re - x.im \cdot y.im
x.re \cdot y.re - x.im \cdot y.im
double f(double x_re, double x_im, double y_re, double y_im) {
double r29036 = x_re;
double r29037 = y_re;
double r29038 = r29036 * r29037;
double r29039 = x_im;
double r29040 = y_im;
double r29041 = r29039 * r29040;
double r29042 = r29038 - r29041;
return r29042;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r29043 = x_re;
double r29044 = y_re;
double r29045 = r29043 * r29044;
double r29046 = x_im;
double r29047 = y_im;
double r29048 = r29046 * r29047;
double r29049 = r29045 - r29048;
return r29049;
}



Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2019347
(FPCore (x.re x.im y.re y.im)
:name "_multiplyComplex, real part"
:precision binary64
(- (* x.re y.re) (* x.im y.im)))