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 r46639 = x_re;
double r46640 = y_im;
double r46641 = r46639 * r46640;
double r46642 = x_im;
double r46643 = y_re;
double r46644 = r46642 * r46643;
double r46645 = r46641 + r46644;
return r46645;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r46646 = x_re;
double r46647 = y_im;
double r46648 = r46646 * r46647;
double r46649 = x_im;
double r46650 = y_re;
double r46651 = r46649 * r46650;
double r46652 = r46648 + r46651;
return r46652;
}



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