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 r66755 = x_re;
double r66756 = y_im;
double r66757 = r66755 * r66756;
double r66758 = x_im;
double r66759 = y_re;
double r66760 = r66758 * r66759;
double r66761 = r66757 + r66760;
return r66761;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r66762 = x_re;
double r66763 = y_im;
double r66764 = r66762 * r66763;
double r66765 = x_im;
double r66766 = y_re;
double r66767 = r66765 * r66766;
double r66768 = r66764 + r66767;
return r66768;
}



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