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 r48520 = x_re;
double r48521 = y_re;
double r48522 = r48520 * r48521;
double r48523 = x_im;
double r48524 = y_im;
double r48525 = r48523 * r48524;
double r48526 = r48522 - r48525;
return r48526;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r48527 = x_re;
double r48528 = y_re;
double r48529 = r48527 * r48528;
double r48530 = x_im;
double r48531 = y_im;
double r48532 = r48530 * r48531;
double r48533 = r48529 - r48532;
return r48533;
}



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