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 r1387611 = x_re;
double r1387612 = y_re;
double r1387613 = r1387611 * r1387612;
double r1387614 = x_im;
double r1387615 = y_im;
double r1387616 = r1387614 * r1387615;
double r1387617 = r1387613 - r1387616;
return r1387617;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r1387618 = x_re;
double r1387619 = y_re;
double r1387620 = r1387618 * r1387619;
double r1387621 = x_im;
double r1387622 = y_im;
double r1387623 = r1387621 * r1387622;
double r1387624 = r1387620 - r1387623;
return r1387624;
}



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