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 r47825 = x_re;
double r47826 = y_re;
double r47827 = r47825 * r47826;
double r47828 = x_im;
double r47829 = y_im;
double r47830 = r47828 * r47829;
double r47831 = r47827 - r47830;
return r47831;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r47832 = x_re;
double r47833 = y_re;
double r47834 = r47832 * r47833;
double r47835 = x_im;
double r47836 = y_im;
double r47837 = r47835 * r47836;
double r47838 = r47834 - r47837;
return r47838;
}



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