\frac{\left(re \cdot im\right)}{\left(im \cdot re\right)}\left(im + im\right) \cdot re
double f(double re, double im) {
double r8525 = re;
double r8526 = im;
double r8527 = r8525 * r8526;
double r8528 = r8526 * r8525;
double r8529 = r8527 + r8528;
return r8529;
}
double f(double re, double im) {
double r8530 = im;
double r8531 = r8530 + r8530;
double r8532 = re;
double r8533 = r8531 * r8532;
return r8533;
}



Bits error versus re



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