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 r28848 = x_re;
double r28849 = y_im;
double r28850 = r28848 * r28849;
double r28851 = x_im;
double r28852 = y_re;
double r28853 = r28851 * r28852;
double r28854 = r28850 + r28853;
return r28854;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r28855 = x_re;
double r28856 = y_im;
double r28857 = r28855 * r28856;
double r28858 = x_im;
double r28859 = y_re;
double r28860 = r28858 * r28859;
double r28861 = r28857 + r28860;
return r28861;
}



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