double f(double x_re, double x_im, double y_re, double y_im) {
double r3361947 = x_re;
double r3361948 = y_re;
double r3361949 = r3361947 * r3361948;
double r3361950 = x_im;
double r3361951 = y_im;
double r3361952 = r3361950 * r3361951;
double r3361953 = r3361949 - r3361952;
return r3361953;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r3361954 = x_re;
double r3361955 = y_re;
double r3361956 = r3361954 * r3361955;
double r3361957 = x_im;
double r3361958 = y_im;
double r3361959 = r3361957 * r3361958;
double r3361960 = r3361956 - r3361959;
return r3361960;
}
x.re \cdot y.re - x.im \cdot y.im
x.re \cdot y.re - x.im \cdot y.im



Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Initial program 0.0
Final simplification0.0
herbie shell --seed 2019101
(FPCore (x.re x.im y.re y.im)
:name "_multiplyComplex, real part"
(- (* x.re y.re) (* x.im y.im)))