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 r48103 = x_re;
double r48104 = y_re;
double r48105 = r48103 * r48104;
double r48106 = x_im;
double r48107 = y_im;
double r48108 = r48106 * r48107;
double r48109 = r48105 - r48108;
return r48109;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r48110 = x_re;
double r48111 = y_re;
double r48112 = r48110 * r48111;
double r48113 = x_im;
double r48114 = y_im;
double r48115 = r48113 * r48114;
double r48116 = r48112 - r48115;
return r48116;
}



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 2020047 +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)))