3 ms·
The most important part of IEEE decimal arithmetic is the (weakened, made optional) mandate that decimal floating point perform exact arithmetic— deterministic
by garmaine 9y ago
The most important part of IEEE decimal arithmetic is the (weakened, made optional) mandate that decimal floating point perform exact arithmetic— deterministic cross platform results on the same inputs. This is important not just for financial accounting which motivated this departure from binary floating point (where error is tolerated), but for any distributed system that needs reliable computation in the presence of heterogeneous hardware or compiler optimizations. It is embarrassing that we live with this state of affairs in 2018 with no way to do deterministic/ exact real number arithmetic in programs without emulating the FPU in software.
- wilun 9y agoIEEE binary floating point is deterministic. There is no such thing as tolerated errors in compliant implementations. Non-compliant implementations are widespread for performance reasons, but that is a completely different story. Also I'm not sure about GPU, but FPU are typically compliant in HW, and it is typically the compilers that have faster approximate modes, and I think for mainstream ones only when you explicitly enable such optimizations, which are disabled by default.