x.re \cdot y.re - x.im \cdot y.im
x.re \cdot y.re - x.im \cdot y.im
double f(double x_re, double x_im, double y_re, double y_im) {
double r111778 = x_re;
double r111779 = y_re;
double r111780 = r111778 * r111779;
double r111781 = x_im;
double r111782 = y_im;
double r111783 = r111781 * r111782;
double r111784 = r111780 - r111783;
return r111784;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r111785 = x_re;
double r111786 = y_re;
double r111787 = r111785 * r111786;
double r111788 = x_im;
double r111789 = y_im;
double r111790 = r111788 * r111789;
double r111791 = r111787 - r111790;
return r111791;
}



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