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 r3701931 = x_re;
double r3701932 = y_re;
double r3701933 = r3701931 * r3701932;
double r3701934 = x_im;
double r3701935 = y_im;
double r3701936 = r3701934 * r3701935;
double r3701937 = r3701933 - r3701936;
return r3701937;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r3701938 = x_re;
double r3701939 = y_re;
double r3701940 = r3701938 * r3701939;
double r3701941 = x_im;
double r3701942 = y_im;
double r3701943 = r3701941 * r3701942;
double r3701944 = r3701940 - r3701943;
return r3701944;
}



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