re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r256509 = re;
double r256510 = r256509 * r256509;
double r256511 = im;
double r256512 = r256511 * r256511;
double r256513 = r256510 - r256512;
return r256513;
}
double f(double re, double im) {
double r256514 = im;
double r256515 = re;
double r256516 = r256514 + r256515;
double r256517 = r256515 - r256514;
double r256518 = r256516 * r256517;
return r256518;
}



Bits error versus re



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