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 r44888 = x_re;
double r44889 = y_re;
double r44890 = r44888 * r44889;
double r44891 = x_im;
double r44892 = y_im;
double r44893 = r44891 * r44892;
double r44894 = r44890 - r44893;
return r44894;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r44895 = x_re;
double r44896 = y_re;
double r44897 = r44895 * r44896;
double r44898 = x_im;
double r44899 = y_im;
double r44900 = r44898 * r44899;
double r44901 = r44897 - r44900;
return r44901;
}



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