\left(re \cdot re\right) - \left(im \cdot im\right)
\left(re - im\right) \cdot \left(\frac{im}{re}\right)double f(double re, double im) {
double r513426 = re;
double r513427 = r513426 * r513426;
double r513428 = im;
double r513429 = r513428 * r513428;
double r513430 = r513427 - r513429;
return r513430;
}
double f(double re, double im) {
double r513431 = re;
double r513432 = im;
double r513433 = r513431 - r513432;
double r513434 = r513432 + r513431;
double r513435 = r513433 * r513434;
return r513435;
}



Bits error versus re



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