re \cdot im + im \cdot re
re \cdot \left(im + im\right)
double f(double re, double im) {
double r755 = re;
double r756 = im;
double r757 = r755 * r756;
double r758 = r756 * r755;
double r759 = r757 + r758;
return r759;
}
double f(double re, double im) {
double r760 = re;
double r761 = im;
double r762 = r761 + r761;
double r763 = r760 * r762;
return r763;
}



Bits error versus re



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