x.re \cdot y.im + x.im \cdot y.re
x.re \cdot y.im + x.im \cdot y.re
double f(double x_re, double x_im, double y_re, double y_im) {
double r57065 = x_re;
double r57066 = y_im;
double r57067 = r57065 * r57066;
double r57068 = x_im;
double r57069 = y_re;
double r57070 = r57068 * r57069;
double r57071 = r57067 + r57070;
return r57071;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r57072 = x_re;
double r57073 = y_im;
double r57074 = r57072 * r57073;
double r57075 = x_im;
double r57076 = y_re;
double r57077 = r57075 * r57076;
double r57078 = r57074 + r57077;
return r57078;
}



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