\left(\left(x + y\right) + z\right) - \left(x + \left(y + z\right)\right)
\left(\left(x + y\right) + z\right) - \left(x + \left(y + z\right)\right)
double f(double x, double y, double z) {
double r8725 = x;
double r8726 = y;
double r8727 = r8725 + r8726;
double r8728 = z;
double r8729 = r8727 + r8728;
double r8730 = r8726 + r8728;
double r8731 = r8725 + r8730;
double r8732 = r8729 - r8731;
return r8732;
}
double f(double x, double y, double z) {
double r8733 = x;
double r8734 = y;
double r8735 = r8733 + r8734;
double r8736 = z;
double r8737 = r8735 + r8736;
double r8738 = r8734 + r8736;
double r8739 = r8733 + r8738;
double r8740 = r8737 - r8739;
return r8740;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 0
Final simplification0
herbie shell --seed 2019325 +o rules:numerics
(FPCore (x y z)
:name "Commute and associate"
:precision binary64
(- (+ (+ x y) z) (+ x (+ y z))))