re \cdot im + im \cdot re
im \cdot \left(re + re\right)
double f(double re, double im) {
double r190759 = re;
double r190760 = im;
double r190761 = r190759 * r190760;
double r190762 = r190760 * r190759;
double r190763 = r190761 + r190762;
return r190763;
}
double f(double re, double im) {
double r190764 = im;
double r190765 = re;
double r190766 = r190765 + r190765;
double r190767 = r190764 * r190766;
return r190767;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
Simplified0.0
rmApplied *-commutative0.0
Applied *-commutative0.0
Applied distribute-lft-out0.0
Final simplification0.0
herbie shell --seed 2019158
(FPCore (re im)
:name "math.square on complex, imaginary part"
(+ (* re im) (* im re)))