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 r47782 = x_re;
double r47783 = y_im;
double r47784 = r47782 * r47783;
double r47785 = x_im;
double r47786 = y_re;
double r47787 = r47785 * r47786;
double r47788 = r47784 + r47787;
return r47788;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r47789 = x_re;
double r47790 = y_im;
double r47791 = r47789 * r47790;
double r47792 = x_im;
double r47793 = y_re;
double r47794 = r47792 * r47793;
double r47795 = r47791 + r47794;
return r47795;
}



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