Skip to Main Content
IEEE 754 a standard for binary floating-point arithmetic has revolutionized the portability and reliability of programs that use binary floating-point arithmetic. Floating point is almost universally implemented with special-purpose hardware that tucks into a small corner of the CPU chip and runs in the hundreds of Mflops to Gflops range. Single-stepping through today's floating-point software to debug it often turns out to be futile. The concept of a NaN, standing for "not a number", evolved from an "indefinite" in Seymour Cray's CDC 6600. IEEE 754, by default, requires an untrapped "invalid operation", to signal itself by raising a flag and to deliver a NaN just when any other result, be it finite or infinite, would cause worse confusion. The NaN lets a program retain control unless the program or programmer directs its cancellation upon an invalid operation. Thus, a program conducting a search can return to the realm being searched after an accidental foray beyond a boundary whose existence and location were previously unknown. A sNaN differs from the other quiet NaNs by traooing any attempt to perform arithmetic upon it; then a trap-handler must interpret this sNaN.