re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r9635 = re;
double r9636 = r9635 * r9635;
double r9637 = im;
double r9638 = r9637 * r9637;
double r9639 = r9636 - r9638;
return r9639;
}
double f(double re, double im) {
double r9640 = im;
double r9641 = re;
double r9642 = r9640 + r9641;
double r9643 = r9641 - r9640;
double r9644 = r9642 * r9643;
return r9644;
}



Bits error versus re



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