re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r304398 = re;
double r304399 = r304398 * r304398;
double r304400 = im;
double r304401 = r304400 * r304400;
double r304402 = r304399 - r304401;
return r304402;
}
double f(double re, double im) {
double r304403 = im;
double r304404 = re;
double r304405 = r304403 + r304404;
double r304406 = r304404 - r304403;
double r304407 = r304405 * r304406;
return r304407;
}



Bits error versus re



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