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 r59766 = x_re;
double r59767 = y_im;
double r59768 = r59766 * r59767;
double r59769 = x_im;
double r59770 = y_re;
double r59771 = r59769 * r59770;
double r59772 = r59768 + r59771;
return r59772;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r59773 = x_re;
double r59774 = y_im;
double r59775 = r59773 * r59774;
double r59776 = x_im;
double r59777 = y_re;
double r59778 = r59776 * r59777;
double r59779 = r59775 + r59778;
return r59779;
}



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)))