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 r1617306 = x_re;
double r1617307 = y_re;
double r1617308 = r1617306 * r1617307;
double r1617309 = x_im;
double r1617310 = y_im;
double r1617311 = r1617309 * r1617310;
double r1617312 = r1617308 - r1617311;
return r1617312;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r1617313 = x_re;
double r1617314 = y_re;
double r1617315 = r1617313 * r1617314;
double r1617316 = x_im;
double r1617317 = y_im;
double r1617318 = r1617316 * r1617317;
double r1617319 = r1617315 - r1617318;
return r1617319;
}



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