re \cdot re - im \cdot im
\left(re + im\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r570 = re;
double r571 = r570 * r570;
double r572 = im;
double r573 = r572 * r572;
double r574 = r571 - r573;
return r574;
}
double f(double re, double im) {
double r575 = re;
double r576 = im;
double r577 = r575 + r576;
double r578 = r575 - r576;
double r579 = r577 * r578;
return r579;
}



Bits error versus re



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