re \cdot im + im \cdot re
re \cdot \left(im + im\right)
double f(double re, double im) {
double r191843 = re;
double r191844 = im;
double r191845 = r191843 * r191844;
double r191846 = r191844 * r191843;
double r191847 = r191845 + r191846;
return r191847;
}
double f(double re, double im) {
double r191848 = re;
double r191849 = im;
double r191850 = r191849 + r191849;
double r191851 = r191848 * r191850;
return r191851;
}



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 2019165
(FPCore (re im)
:name "math.square on complex, imaginary part"
(+ (* re im) (* im re)))