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 r46572 = x_re;
double r46573 = y_re;
double r46574 = r46572 * r46573;
double r46575 = x_im;
double r46576 = y_im;
double r46577 = r46575 * r46576;
double r46578 = r46574 - r46577;
return r46578;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r46579 = x_re;
double r46580 = y_re;
double r46581 = r46579 * r46580;
double r46582 = x_im;
double r46583 = y_im;
double r46584 = r46582 * r46583;
double r46585 = r46581 - r46584;
return r46585;
}



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