re \cdot im + im \cdot re
re \cdot \left(im + im\right)
double f(double re, double im) {
double r1868 = re;
double r1869 = im;
double r1870 = r1868 * r1869;
double r1871 = r1869 * r1868;
double r1872 = r1870 + r1871;
return r1872;
}
double f(double re, double im) {
double r1873 = re;
double r1874 = im;
double r1875 = r1874 + r1874;
double r1876 = r1873 * r1875;
return r1876;
}



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