\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 r252199 = re;
double r252200 = r252199 * r252199;
double r252201 = im;
double r252202 = r252201 * r252201;
double r252203 = r252200 - r252202;
return r252203;
}
double f(double re, double im) {
double r252204 = re;
double r252205 = im;
double r252206 = r252204 - r252205;
double r252207 = r252205 + r252204;
double r252208 = r252206 * r252207;
return r252208;
}



Bits error versus re



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