re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r9237 = re;
double r9238 = r9237 * r9237;
double r9239 = im;
double r9240 = r9239 * r9239;
double r9241 = r9238 - r9240;
return r9241;
}
double f(double re, double im) {
double r9242 = im;
double r9243 = re;
double r9244 = r9242 + r9243;
double r9245 = r9243 - r9242;
double r9246 = r9244 * r9245;
return r9246;
}



Bits error versus re



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