re \cdot re - im \cdot im
\left(re + im\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r9865 = re;
double r9866 = r9865 * r9865;
double r9867 = im;
double r9868 = r9867 * r9867;
double r9869 = r9866 - r9868;
return r9869;
}
double f(double re, double im) {
double r9870 = re;
double r9871 = im;
double r9872 = r9870 + r9871;
double r9873 = r9870 - r9871;
double r9874 = r9872 * r9873;
return r9874;
}



Bits error versus re



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