re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r37731 = re;
double r37732 = r37731 * r37731;
double r37733 = im;
double r37734 = r37733 * r37733;
double r37735 = r37732 - r37734;
return r37735;
}
double f(double re, double im) {
double r37736 = im;
double r37737 = re;
double r37738 = r37736 + r37737;
double r37739 = r37737 - r37736;
double r37740 = r37738 * r37739;
return r37740;
}



Bits error versus re



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