\frac{\left(re \cdot im\right)}{\left(im \cdot re\right)}\left(im + im\right) \cdot re
double f(double re, double im) {
double r10889 = re;
double r10890 = im;
double r10891 = r10889 * r10890;
double r10892 = r10890 * r10889;
double r10893 = r10891 + r10892;
return r10893;
}
double f(double re, double im) {
double r10894 = im;
double r10895 = r10894 + r10894;
double r10896 = re;
double r10897 = r10895 * r10896;
return r10897;
}



Bits error versus re



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