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 r69743 = x_re;
double r69744 = y_re;
double r69745 = r69743 * r69744;
double r69746 = x_im;
double r69747 = y_im;
double r69748 = r69746 * r69747;
double r69749 = r69745 - r69748;
return r69749;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r69750 = x_re;
double r69751 = y_re;
double r69752 = r69750 * r69751;
double r69753 = x_im;
double r69754 = y_im;
double r69755 = r69753 * r69754;
double r69756 = r69752 - r69755;
return r69756;
}



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