What Every Computer Scientist Should Know About Floating-Point Arithmetic.¶
Goldberg, D. (1991). What Every Computer Scientist Should Know About Floating-Point Arithmetic. ACM Computing Surveys, 23(1), 5-48.
Cited by¶
7 citations across 7 artifacts.
Each citation links to the sentence it supports in the citing article.
Primes¶
- Algorithm
- A common failure is reasoning about the abstract algorithm while the implementation silently violates its assumptions
This sourceCanonical survey of how finite-precision floating-point implementation diverges from abstract real-number computation, producing rounding error, cancellation, and overflow not visible at the specification level.
Supported in partVerified against the work's full text
Gives concrete cases where reasoning from real-number semantics goes wrong in the implementation, notably compiler optimizations; it does not say this is a common failure of algorithm reasoning in general.
“These examples can be summarized by saying that optimizers should be extremely cautious when applying algebraic identities that hold for the mathematical real numbers to expressions involving floating-point variables.”
- A common failure is reasoning about the abstract algorithm while the implementation silently violates its assumptions
- Dense Set
- The substitute-the-dense-subset move is what every floating-point computation relies on — finite-precision rationals standing in for the continuum up to machine tolerance.
This sourceCanonical reference on finite-precision rationals standing in for the continuum up to machine tolerance.
Supported in partVerified against the work's full text
Goldberg establishes that floating-point approximates the real numbers in finitely many bits, with rounding error bounded by machine epsilon; he never frames this as a dense-subset substitution.
“Squeezing infinitely many real numbers into a finite number of bits requires an approximate representation.”
- The substitute-the-dense-subset move is what every floating-point computation relies on — finite-precision rationals standing in for the continuum up to machine tolerance.
- Monoid
- IEEE-754 floating-point addition has a plausible unit in +0.0 and is not associative, so parallel summation of the same floats returns different totals under different partitionings — a defect that hides because it is invisible at small scale and on one core.
This sourceShows that floating-point addition is not associative, so a summation's result depends on how the terms are grouped.
Supported in partVerified against the work's full text
Goldberg gives a concrete example that floating-point addition is not associative, but says nothing about parallel summation, partitionings or +0.0 as unit.
“Due to roundoff errors, the associative laws of algebra do not necessarily hold for floating-point numbers.”
- IEEE-754 floating-point addition has a plausible unit in +0.0 and is not associative, so parallel summation of the same floats returns different totals under different partitionings — a defect that hides because it is invisible at small scale and on one core.
Domain-specific¶
Mechanisms¶
- Algebraic Simplification Rulebook
- The textbook case is reassociating floating-point sums: `(a + b) + c` and `a + (b + c)` are algebraically identical but not numerically identical, because IEEE-754 addition is not associative, so a rule that is valid over the reals silently changes results over floats.
This sourceShows that floating-point rounding breaks real-number algebraic identities, including associativity of addition, so reassociation can change computed results.
- The textbook case is reassociating floating-point sums: `(a + b) + c` and `a + (b + c)` are algebraically identical but not numerically identical, because IEEE-754 addition is not associative, so a rule that is valid over the reals silently changes results over floats.
- Cross-Representation Regression Suite
- Set with the numerical realities in mind: floating-point arithmetic is not associative, so different summation orders legitimately differ in the last digits.
This sourceExplains that floating-point addition is nonassociative and that reordered sums can legitimately produce different rounded results.
- Set with the numerical realities in mind: floating-point arithmetic is not associative, so different summation orders legitimately differ in the last digits.
- Linear-Axiom Verification Checklist
- Within one unit, associativity of addition then fails in a subtler way: `(a + b) + c` and `a + (b + c)` give different results in floating point because rounding is not associative,
This sourceExplains that floating-point addition is not associative because rounding after intermediate operations can make the two parenthesizations differ.
- Within one unit, associativity of addition then fails in a subtler way: `(a + b) + c` and `a + (b + c)` give different results in floating point because rounding is not associative,
Verification¶
Does it exist? Confirmed. This work's DOI resolves to a registered record, which fixes its identity. That is all it fixes.
Does it back the claim? Read against the text for 3 of 7 citations: 3 supported in part. Each verdict is shown under its citation below, with what in the work backs the sentence.
Support is checked per citation rather than per work — the same source can be cited soundly in one article and wrongly in another. Per-citation recording began recently, so a citation with no recorded check is a gap in the record rather than evidence it went unchecked.
See how references were verified.
Links previously used in the corpus¶
Before the registry existed this work was also linked 1 other way.
Registry ID ref:1b5cfb774b77 · see in the full table