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 r3639262 = x_re;
double r3639263 = y_re;
double r3639264 = r3639262 * r3639263;
double r3639265 = x_im;
double r3639266 = y_im;
double r3639267 = r3639265 * r3639266;
double r3639268 = r3639264 - r3639267;
return r3639268;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r3639269 = x_re;
double r3639270 = y_re;
double r3639271 = r3639269 * r3639270;
double r3639272 = x_im;
double r3639273 = y_im;
double r3639274 = r3639272 * r3639273;
double r3639275 = r3639271 - r3639274;
return r3639275;
}



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