x.re \cdot y.im + x.im \cdot y.re
x.im \cdot y.re + x.re \cdot y.im
double f(double x_re, double x_im, double y_re, double y_im) {
double r2001775 = x_re;
double r2001776 = y_im;
double r2001777 = r2001775 * r2001776;
double r2001778 = x_im;
double r2001779 = y_re;
double r2001780 = r2001778 * r2001779;
double r2001781 = r2001777 + r2001780;
return r2001781;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r2001782 = x_im;
double r2001783 = y_re;
double r2001784 = r2001782 * r2001783;
double r2001785 = x_re;
double r2001786 = y_im;
double r2001787 = r2001785 * r2001786;
double r2001788 = r2001784 + r2001787;
return r2001788;
}



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