re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r325909 = re;
double r325910 = r325909 * r325909;
double r325911 = im;
double r325912 = r325911 * r325911;
double r325913 = r325910 - r325912;
return r325913;
}
double f(double re, double im) {
double r325914 = im;
double r325915 = re;
double r325916 = r325914 + r325915;
double r325917 = r325915 - r325914;
double r325918 = r325916 * r325917;
return r325918;
}



Bits error versus re



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