re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r267861 = re;
double r267862 = r267861 * r267861;
double r267863 = im;
double r267864 = r267863 * r267863;
double r267865 = r267862 - r267864;
return r267865;
}
double f(double re, double im) {
double r267866 = im;
double r267867 = re;
double r267868 = r267866 + r267867;
double r267869 = r267867 - r267866;
double r267870 = r267868 * r267869;
return r267870;
}



Bits error versus re



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