re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r332997 = re;
double r332998 = r332997 * r332997;
double r332999 = im;
double r333000 = r332999 * r332999;
double r333001 = r332998 - r333000;
return r333001;
}
double f(double re, double im) {
double r333002 = im;
double r333003 = re;
double r333004 = r333002 + r333003;
double r333005 = r333003 - r333002;
double r333006 = r333004 * r333005;
return r333006;
}



Bits error versus re



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