re \cdot im + im \cdot re
re \cdot \left(im + im\right)
double f(double re, double im) {
double r622 = re;
double r623 = im;
double r624 = r622 * r623;
double r625 = r623 * r622;
double r626 = r624 + r625;
return r626;
}
double f(double re, double im) {
double r627 = re;
double r628 = im;
double r629 = r628 + r628;
double r630 = r627 * r629;
return r630;
}



Bits error versus re



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