re \cdot im + im \cdot re
im \cdot \left(re + re\right)
double f(double re, double im) {
double r2857 = re;
double r2858 = im;
double r2859 = r2857 * r2858;
double r2860 = r2858 * r2857;
double r2861 = r2859 + r2860;
return r2861;
}
double f(double re, double im) {
double r2862 = im;
double r2863 = re;
double r2864 = r2863 + r2863;
double r2865 = r2862 * r2864;
return r2865;
}



Bits error versus re



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