Double-precision floating-point format Created 2026-10-25 Updated 2026-10-31
A floating-point representation occupying bits, or bytes, with one sign bit, exponent bits and explicitly stored fraction bits. The implicit leading bit of a normal number gives bits of significand precision. Near one, adjacent numbers are separated by ; rounding to nearest has unit roundoff in the normal range. These are relative precision scales, distinct from underflow limits or a universal absolute error bound.[ref]
IEEE arithmetic in Oracle's Numerical Computation Guide. Chapter 2, IEEE Arithmetic Model and Double Format, Table 2-5
Floating-point number Created 2026-10-20 Updated 2026-11-05
A finite floating-point number is a value representable in a specified floating-point representation. For fixed precision and exponent bounds, only finitely many real values are available. Most real numbers therefore require rounding before storage.
In binary arithmetic, is exact but is not: a finite binary fraction has a reduced denominator that is a power of two. This is a property of the representation, even before any arithmetic operation occurs. The associated IEEE encodings additionally include infinities and NaN; NaN is a special arithmetic datum rather than a real value.[ref]
Floating-point representation Created 2026-10-20 Updated 2026-11-05
A finite normal floating-point representation stores a sign, a significand and a bounded integer exponent, representing in radix . Fixing the number of significand digits gives roughly constant relative precision across a wide dynamic range; the gap between adjacent representable values grows with the exponent.
For example, in the binary numeral system. The normal leading binary digit is one and can be implicit in storage. Subnormal numbers use a different leading-digit rule near zero. IEEE formats also reserve encodings for signed zero, infinities and NaN, so the bit pattern cannot always be interpreted by the normal finite formula.[ref]
IEEE arithmetic in Oracle's Numerical Computation Guide. §2.2, IEEE formats and normal/subnormal representations
Half-precision floating-point format 2026-10-31
A sixteen-bit floating-point representation with one sign bit, five exponent bits and ten stored fraction bits. For sign , stored exponent and fraction integer , normal finite values areThe implicit leading one gives eleven significant binary digits. With , the value is , including signed zero at and subnormal numbers otherwise. The stored exponent is reserved for infinities at and NaN otherwise. The positive normal range is through ; the least positive subnormal number is .
Kahan summation algorithm Created 2026-10-20 Updated 2026-11-05
The Kahan summation algorithm computes a sum in floating-point arithmetic while carrying a correction for low-order information lost by successive additions. With accumulator and correction initially zero, process each input in this order:Every operation shown is rounded in the working floating-point representation. The new approximates the portion added too much or too little in the rounded , so the next input subtracts it. For binary64 inputs in that order, ordinary left-to-right summation loses both small increments, returning one; this algorithm recovers .
y = x - c
t = s + y
c = (t - s) - y
s = tThe correction substantially improves many long sums, but is not an exact summation method and does not remove ill-conditioning when large opposite-sign terms nearly cancel. Its operation order is essential: a compiler that rewrites as exact algebraic zero destroys the correction.[ref]
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html. Goldberg, Errors in Summation and Optimizers: compensated summation and why reassociation invalidates it
Significand 2026-10-31
The significant-digit factor in a floating-point representation , where is the sign bit, the radix and the exponent. For a normal positive binary significand, , and the leading one need not be stored. In a subnormal number, the leading digit is zero at the minimum normal exponent scale. The significand is a numerical factor, distinct from the stored trailing fraction bits that encode part of it.