re \cdot re - im \cdot im
\left(re + im\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r8712 = re;
double r8713 = r8712 * r8712;
double r8714 = im;
double r8715 = r8714 * r8714;
double r8716 = r8713 - r8715;
return r8716;
}
double f(double re, double im) {
double r8717 = re;
double r8718 = im;
double r8719 = r8717 + r8718;
double r8720 = r8717 - r8718;
double r8721 = r8719 * r8720;
return r8721;
}



Bits error versus re



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