re \cdot im + im \cdot re
im \cdot \left(re + re\right)
double f(double re, double im) {
double r270 = re;
double r271 = im;
double r272 = r270 * r271;
double r273 = r271 * r270;
double r274 = r272 + r273;
return r274;
}
double f(double re, double im) {
double r275 = im;
double r276 = re;
double r277 = r276 + r276;
double r278 = r275 * r277;
return r278;
}



Bits error versus re



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