double f(double re, double im) {
double r63899 = re;
double r63900 = im;
double r63901 = r63899 * r63900;
double r63902 = r63900 * r63899;
double r63903 = r63901 + r63902;
return r63903;
}
double f(double re, double im) {
double r63904 = re;
double r63905 = im;
double r63906 = r63904 * r63905;
double r63907 = r63906 + r63906;
return r63907;
}
re \cdot im + im \cdot re
re \cdot im + re \cdot im



Bits error versus re



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