\left(re \cdot re\right) - \left(im \cdot im\right)
\left(re - im\right) \cdot \left(im + re\right)
double f(double re, double im) {
double r443690 = re;
double r443691 = r443690 * r443690;
double r443692 = im;
double r443693 = r443692 * r443692;
double r443694 = r443691 - r443693;
return r443694;
}
double f(double re, double im) {
double r443695 = re;
double r443696 = im;
double r443697 = r443695 - r443696;
double r443698 = r443696 + r443695;
double r443699 = r443697 * r443698;
return r443699;
}



Bits error versus re



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