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 r54669 = x_re;
double r54670 = y_re;
double r54671 = r54669 * r54670;
double r54672 = x_im;
double r54673 = y_im;
double r54674 = r54672 * r54673;
double r54675 = r54671 - r54674;
return r54675;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r54676 = x_re;
double r54677 = y_re;
double r54678 = r54676 * r54677;
double r54679 = x_im;
double r54680 = y_im;
double r54681 = r54679 * r54680;
double r54682 = r54678 - r54681;
return r54682;
}



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 2019212
(FPCore (x.re x.im y.re y.im)
:name "_multiplyComplex, real part"
:precision binary64
(- (* x.re y.re) (* x.im y.im)))