x.re \cdot y.im + x.im \cdot y.re
x.im \cdot y.re + x.re \cdot y.im
double f(double x_re, double x_im, double y_re, double y_im) {
double r1440991 = x_re;
double r1440992 = y_im;
double r1440993 = r1440991 * r1440992;
double r1440994 = x_im;
double r1440995 = y_re;
double r1440996 = r1440994 * r1440995;
double r1440997 = r1440993 + r1440996;
return r1440997;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r1440998 = x_im;
double r1440999 = y_re;
double r1441000 = r1440998 * r1440999;
double r1441001 = x_re;
double r1441002 = y_im;
double r1441003 = r1441001 * r1441002;
double r1441004 = r1441000 + r1441003;
return r1441004;
}



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