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 r2693837 = x_re;
double r2693838 = y_re;
double r2693839 = r2693837 * r2693838;
double r2693840 = x_im;
double r2693841 = y_im;
double r2693842 = r2693840 * r2693841;
double r2693843 = r2693839 - r2693842;
return r2693843;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r2693844 = x_re;
double r2693845 = y_re;
double r2693846 = r2693844 * r2693845;
double r2693847 = x_im;
double r2693848 = y_im;
double r2693849 = r2693847 * r2693848;
double r2693850 = r2693846 - r2693849;
return r2693850;
}



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