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 r74916 = x_re;
double r74917 = y_re;
double r74918 = r74916 * r74917;
double r74919 = x_im;
double r74920 = y_im;
double r74921 = r74919 * r74920;
double r74922 = r74918 - r74921;
return r74922;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r74923 = x_re;
double r74924 = y_re;
double r74925 = r74923 * r74924;
double r74926 = x_im;
double r74927 = y_im;
double r74928 = r74926 * r74927;
double r74929 = r74925 - r74928;
return r74929;
}



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