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 r25011527 = x_re;
double r25011528 = y_re;
double r25011529 = r25011527 * r25011528;
double r25011530 = x_im;
double r25011531 = y_im;
double r25011532 = r25011530 * r25011531;
double r25011533 = r25011529 - r25011532;
return r25011533;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r25011534 = x_re;
double r25011535 = y_re;
double r25011536 = r25011534 * r25011535;
double r25011537 = x_im;
double r25011538 = y_im;
double r25011539 = r25011537 * r25011538;
double r25011540 = r25011536 - r25011539;
return r25011540;
}



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