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 r50249 = x_re;
double r50250 = y_re;
double r50251 = r50249 * r50250;
double r50252 = x_im;
double r50253 = y_im;
double r50254 = r50252 * r50253;
double r50255 = r50251 - r50254;
return r50255;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r50256 = x_re;
double r50257 = y_re;
double r50258 = r50256 * r50257;
double r50259 = x_im;
double r50260 = y_im;
double r50261 = r50259 * r50260;
double r50262 = r50258 - r50261;
return r50262;
}



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