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 r6827820 = x_re;
double r6827821 = y_im;
double r6827822 = r6827820 * r6827821;
double r6827823 = x_im;
double r6827824 = y_re;
double r6827825 = r6827823 * r6827824;
double r6827826 = r6827822 + r6827825;
return r6827826;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r6827827 = x_im;
double r6827828 = y_re;
double r6827829 = r6827827 * r6827828;
double r6827830 = x_re;
double r6827831 = y_im;
double r6827832 = r6827830 * r6827831;
double r6827833 = r6827829 + r6827832;
return r6827833;
}



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