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 r58944 = x_re;
double r58945 = y_re;
double r58946 = r58944 * r58945;
double r58947 = x_im;
double r58948 = y_im;
double r58949 = r58947 * r58948;
double r58950 = r58946 - r58949;
return r58950;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r58951 = x_re;
double r58952 = y_re;
double r58953 = r58951 * r58952;
double r58954 = x_im;
double r58955 = y_im;
double r58956 = r58954 * r58955;
double r58957 = r58953 - r58956;
return r58957;
}



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