re \cdot im + im \cdot re
re \cdot im + im \cdot re
double f(double re, double im) {
double r3780 = re;
double r3781 = im;
double r3782 = r3780 * r3781;
double r3783 = r3781 * r3780;
double r3784 = r3782 + r3783;
return r3784;
}
double f(double re, double im) {
double r3785 = re;
double r3786 = im;
double r3787 = r3785 * r3786;
double r3788 = r3786 * r3785;
double r3789 = r3787 + r3788;
return r3789;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020045 +o rules:numerics
(FPCore (re im)
:name "math.square on complex, imaginary part"
:precision binary64
(+ (* re im) (* im re)))