x.re \cdot y.im + x.im \cdot y.re
x.re \cdot y.im + x.im \cdot y.re
double f(double x_re, double x_im, double y_re, double y_im) {
double r40287 = x_re;
double r40288 = y_im;
double r40289 = r40287 * r40288;
double r40290 = x_im;
double r40291 = y_re;
double r40292 = r40290 * r40291;
double r40293 = r40289 + r40292;
return r40293;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r40294 = x_re;
double r40295 = y_im;
double r40296 = r40294 * r40295;
double r40297 = x_im;
double r40298 = y_re;
double r40299 = r40297 * r40298;
double r40300 = r40296 + r40299;
return r40300;
}



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