"(even the same computation on the same system can produce different results for floats)" wait...what? Is this real?
Yes and no. 1. Yes -- On old x86 systems, the x87 registers were 80-bits and the bottom bits were undefined. You could theoretically have a 1-bit difference on some results depending on what the bottom 26 bits (that were undefined, because you had 64-bit floats most of the time, even though the machine did things 80-bits at a time). 2. No -- Modern x86 systems use SSE registers, which are 64-bits. There are a whole s…
* (+ (+ 1 1) (expt 2 256))
115792089237316195423570985008687907853269984665640564039457584007913129639938
* (+ 1 (+ 1 (expt 2 256)))
115792089237316195423570985008687907853269984665640564039457584007913129639938