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 r2325294 = x_re;
double r2325295 = y_im;
double r2325296 = r2325294 * r2325295;
double r2325297 = x_im;
double r2325298 = y_re;
double r2325299 = r2325297 * r2325298;
double r2325300 = r2325296 + r2325299;
return r2325300;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r2325301 = x_im;
double r2325302 = y_re;
double r2325303 = r2325301 * r2325302;
double r2325304 = x_re;
double r2325305 = y_im;
double r2325306 = r2325304 * r2325305;
double r2325307 = r2325303 + r2325306;
return r2325307;
}



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