re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r917062 = re;
double r917063 = r917062 * r917062;
double r917064 = im;
double r917065 = r917064 * r917064;
double r917066 = r917063 - r917065;
return r917066;
}
double f(double re, double im) {
double r917067 = im;
double r917068 = re;
double r917069 = r917067 + r917068;
double r917070 = r917068 - r917067;
double r917071 = r917069 * r917070;
return r917071;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
rmApplied difference-of-squares0.0
Final simplification0.0
herbie shell --seed 2019138
(FPCore (re im)
:name "math.square on complex, real part"
(- (* re re) (* im im)))