re \cdot im + im \cdot re
re \cdot im + im \cdot re
double f(double re, double im) {
double r643 = re;
double r644 = im;
double r645 = r643 * r644;
double r646 = r644 * r643;
double r647 = r645 + r646;
return r647;
}
double f(double re, double im) {
double r648 = re;
double r649 = im;
double r650 = r648 * r649;
double r651 = r649 * r648;
double r652 = r650 + r651;
return r652;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020047
(FPCore (re im)
:name "math.square on complex, imaginary part"
:precision binary64
(+ (* re im) (* im re)))