re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r317632 = re;
double r317633 = r317632 * r317632;
double r317634 = im;
double r317635 = r317634 * r317634;
double r317636 = r317633 - r317635;
return r317636;
}
double f(double re, double im) {
double r317637 = im;
double r317638 = re;
double r317639 = r317637 + r317638;
double r317640 = r317638 - r317637;
double r317641 = r317639 * r317640;
return r317641;
}



Bits error versus re



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