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 r40757 = x_re;
double r40758 = y_re;
double r40759 = r40757 * r40758;
double r40760 = x_im;
double r40761 = y_im;
double r40762 = r40760 * r40761;
double r40763 = r40759 - r40762;
return r40763;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r40764 = x_re;
double r40765 = y_re;
double r40766 = r40764 * r40765;
double r40767 = x_im;
double r40768 = y_im;
double r40769 = r40767 * r40768;
double r40770 = r40766 - r40769;
return r40770;
}



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