Take the example that I cited:
1 + 2^-25 + 2^-25 ... (2^25 times) will give you 1.
But if you do: 2^-25 + 2^-25 ... (2^25 times) + 1 it will give you 2.
But if you do: 2^-25 + 2^-25 ... (2^25 times) + 1 it will give you 2.
A more simplified version of what you say is that:
1 + x + x + x + x != x + x + x + x + 1
when x is suitably small. But to convert one into the other requires both associativity and commutativity: (((1 + x) + x) + x) + x
-> (((x + 1) + x) + x) + x using commutativity
-> ((x + (1 + x)) + x) + x using associativity
-> ((x + (x + 1)) + x) + x using commutativity
-> (((x + x) + 1) + x) + x using associativity
-> ((x + x) + (1 + x)) + x using associativity
-> ((x + x) + (x + 1)) + x using commutativity
-> (((x + x) + x) + 1) + x using associativity
-> ((x + x) + x) + (1 + x) using associativity
-> ((x + x) + x) + (x + 1) using commutativity
-> (((x + x) + x) + x) + 1 using associativity
If you write Y as x+x+x+x, then 1+Y == Y+1.It's the associativity that fails.
I'd like to learn more, but searches are failing to turn up anything specific and detailed. In particular, the usual reference - http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.ht... - doesn't seem to mention commutativity.
Thanks.