re \cdot im + im \cdot re
re \cdot im + im \cdot re
double f(double re, double im) {
double r672 = re;
double r673 = im;
double r674 = r672 * r673;
double r675 = r673 * r672;
double r676 = r674 + r675;
return r676;
}
double f(double re, double im) {
double r677 = re;
double r678 = im;
double r679 = r677 * r678;
double r680 = r678 * r677;
double r681 = r679 + r680;
return r681;
}



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)))