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 r40664 = x_re;
double r40665 = y_re;
double r40666 = r40664 * r40665;
double r40667 = x_im;
double r40668 = y_im;
double r40669 = r40667 * r40668;
double r40670 = r40666 - r40669;
return r40670;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r40671 = x_re;
double r40672 = y_re;
double r40673 = r40671 * r40672;
double r40674 = x_im;
double r40675 = y_im;
double r40676 = r40674 * r40675;
double r40677 = r40673 - r40676;
return r40677;
}



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