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 r42778 = x_re;
double r42779 = y_im;
double r42780 = r42778 * r42779;
double r42781 = x_im;
double r42782 = y_re;
double r42783 = r42781 * r42782;
double r42784 = r42780 + r42783;
return r42784;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r42785 = x_re;
double r42786 = y_im;
double r42787 = r42785 * r42786;
double r42788 = x_im;
double r42789 = y_re;
double r42790 = r42788 * r42789;
double r42791 = r42787 + r42790;
return r42791;
}



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