\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 r252180 = re;
double r252181 = r252180 * r252180;
double r252182 = im;
double r252183 = r252182 * r252182;
double r252184 = r252181 - r252183;
return r252184;
}
double f(double re, double im) {
double r252185 = re;
double r252186 = im;
double r252187 = r252185 - r252186;
double r252188 = r252186 + r252185;
double r252189 = r252187 * r252188;
return r252189;
}



Bits error versus re



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