re \cdot re - im \cdot im
\left(re + im\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r557 = re;
double r558 = r557 * r557;
double r559 = im;
double r560 = r559 * r559;
double r561 = r558 - r560;
return r561;
}
double f(double re, double im) {
double r562 = re;
double r563 = im;
double r564 = r562 + r563;
double r565 = r562 - r563;
double r566 = r564 * r565;
return r566;
}



Bits error versus re



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