re \cdot im + im \cdot re
im \cdot \left(re + re\right)
double f(double re, double im) {
double r68339 = re;
double r68340 = im;
double r68341 = r68339 * r68340;
double r68342 = r68340 * r68339;
double r68343 = r68341 + r68342;
return r68343;
}
double f(double re, double im) {
double r68344 = im;
double r68345 = re;
double r68346 = r68345 + r68345;
double r68347 = r68344 * r68346;
return r68347;
}



Bits error versus re



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