re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r317620 = re;
double r317621 = r317620 * r317620;
double r317622 = im;
double r317623 = r317622 * r317622;
double r317624 = r317621 - r317623;
return r317624;
}
double f(double re, double im) {
double r317625 = im;
double r317626 = re;
double r317627 = r317625 + r317626;
double r317628 = r317626 - r317625;
double r317629 = r317627 * r317628;
return r317629;
}



Bits error versus re



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