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 r118277 = x_re;
double r118278 = y_re;
double r118279 = r118277 * r118278;
double r118280 = x_im;
double r118281 = y_im;
double r118282 = r118280 * r118281;
double r118283 = r118279 - r118282;
return r118283;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r118284 = x_re;
double r118285 = y_re;
double r118286 = r118284 * r118285;
double r118287 = x_im;
double r118288 = y_im;
double r118289 = r118287 * r118288;
double r118290 = r118286 - r118289;
return r118290;
}



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