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 r2658515 = x_re;
double r2658516 = y_re;
double r2658517 = r2658515 * r2658516;
double r2658518 = x_im;
double r2658519 = y_im;
double r2658520 = r2658518 * r2658519;
double r2658521 = r2658517 - r2658520;
return r2658521;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r2658522 = x_re;
double r2658523 = y_re;
double r2658524 = r2658522 * r2658523;
double r2658525 = x_im;
double r2658526 = y_im;
double r2658527 = r2658525 * r2658526;
double r2658528 = r2658524 - r2658527;
return r2658528;
}



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