re \cdot im + im \cdot re
re \cdot im + im \cdot re
double f(double re, double im) {
double r1715 = re;
double r1716 = im;
double r1717 = r1715 * r1716;
double r1718 = r1716 * r1715;
double r1719 = r1717 + r1718;
return r1719;
}
double f(double re, double im) {
double r1720 = re;
double r1721 = im;
double r1722 = r1720 * r1721;
double r1723 = r1721 * r1720;
double r1724 = r1722 + r1723;
return r1724;
}



Bits error versus re



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