\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 r731 = x;
double r732 = y;
double r733 = r731 + r732;
double r734 = z;
double r735 = r733 + r734;
double r736 = r732 + r734;
double r737 = r731 + r736;
double r738 = r735 - r737;
return r738;
}
double f(double x, double y, double z) {
double r739 = x;
double r740 = y;
double r741 = r739 + r740;
double r742 = z;
double r743 = r741 + r742;
double r744 = r740 + r742;
double r745 = r739 + r744;
double r746 = r743 - r745;
return r746;
}



Bits error versus x



Bits error versus y



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