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 r44802 = x_re;
double r44803 = y_re;
double r44804 = r44802 * r44803;
double r44805 = x_im;
double r44806 = y_im;
double r44807 = r44805 * r44806;
double r44808 = r44804 - r44807;
return r44808;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r44809 = x_re;
double r44810 = y_re;
double r44811 = r44809 * r44810;
double r44812 = x_im;
double r44813 = y_im;
double r44814 = r44812 * r44813;
double r44815 = r44811 - r44814;
return r44815;
}



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