re \cdot im + im \cdot re
re \cdot \left(im + im\right)
double f(double re, double im) {
double r68333 = re;
double r68334 = im;
double r68335 = r68333 * r68334;
double r68336 = r68334 * r68333;
double r68337 = r68335 + r68336;
return r68337;
}
double f(double re, double im) {
double r68338 = re;
double r68339 = im;
double r68340 = r68339 + r68339;
double r68341 = r68338 * r68340;
return r68341;
}



Bits error versus re



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