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 r27239 = x_re;
double r27240 = y_re;
double r27241 = r27239 * r27240;
double r27242 = x_im;
double r27243 = y_im;
double r27244 = r27242 * r27243;
double r27245 = r27241 - r27244;
return r27245;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r27246 = x_re;
double r27247 = y_re;
double r27248 = r27246 * r27247;
double r27249 = x_im;
double r27250 = y_im;
double r27251 = r27249 * r27250;
double r27252 = r27248 - r27251;
return r27252;
}



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