double f(double re, double im) {
double r22734 = re;
double r22735 = r22734 * r22734;
double r22736 = im;
double r22737 = r22736 * r22736;
double r22738 = r22735 - r22737;
return r22738;
}
double f(double re, double im) {
double r22739 = re;
double r22740 = im;
double r22741 = r22739 - r22740;
double r22742 = r22740 + r22739;
double r22743 = r22741 * r22742;
return r22743;
}
re \cdot re - im \cdot im
\left(re - im\right) \cdot \left(im + re\right)



Bits error versus re



Bits error versus im
Initial program 0.3
Simplified0.1
Final simplification0.1
herbie shell --seed 2019101
(FPCore (re im)
:name "math.square on complex, real part"
(-.p16 (*.p16 re re) (*.p16 im im)))