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 r1326507 = x_re;
double r1326508 = y_re;
double r1326509 = r1326507 * r1326508;
double r1326510 = x_im;
double r1326511 = y_im;
double r1326512 = r1326510 * r1326511;
double r1326513 = r1326509 - r1326512;
return r1326513;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r1326514 = x_re;
double r1326515 = y_re;
double r1326516 = r1326514 * r1326515;
double r1326517 = x_im;
double r1326518 = y_im;
double r1326519 = r1326517 * r1326518;
double r1326520 = r1326516 - r1326519;
return r1326520;
}



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