Computation
A proposal that rounding error switches from benign to catastrophic at a critical reduction depth, tested against an exact rational reference at 200 orderings per depth.
Test of hypothesis 23, Volume II — "Floating-Point Error Has a Phase Transition" Published proposal: <https://incoprea.com/research-library/original-theories-vol2-20261030/> Test run: 30 October 2026 · Working result, not peer reviewed · AI-assisted
The threshold is real, predictable, and exactly where the arithmetic says it should be — but it is not a catastrophe. Summing a decaying sequence in 200 random orders, every ordering returns the identical value up to a depth of 54 terms in 64-bit arithmetic and 25 terms in 32-bit. Beyond that depth the answers disagree, and the disagreement is one unit in the last place. The switch from "every run agrees" to "runs disagree" is a step, not a gradient, and it moves exactly 29 terms for every factor of 2^29 in precision — 29 terms between binary64 and binary32, 58 between the repetitions that halve the decay rate, and so on (Table 1). What does not follow from depth is magnitude. Catastrophic error appears at a condition number near 1.6/ε, and at fixed condition number depth has no effect at all: a 101-term and a 10,001-term sum carry the same 2% relative error. Reproducibility is a threshold property, as the proposal claims. Catastrophe is a conditioning property, which the proposal conflates with it.
The proposal makes three predictions. They were fixed before the first run (hypothesis.md):
The test sequence is v<sub>i</sub> = 2<sup>−⌊i/k⌋</sup> for k ∈ {1, 2, 4, 8, 16}, so the total is ≈ 2k and every partial sum below the threshold is exactly representable. That matters: if the data carry their own rounding from the first term, "the threshold" is not separable from ordinary rounding noise. With exactly representable data the only thing that can break determinism is absorption — a term smaller than the running sum's last place.
For each depth, 200 random orderings were summed naively (left to right) and the number of distinct results was counted, in binary64 and in binary32. The exact sum was computed as a rational, so "error" is error against the true value, not against a rounded reference.
| 1 | 51 | 54 | 22 | 25 | −29 | −29 |
|---|---|---|---|---|---|---|
| 2 | 100 | 105 | 42 | 47 | −58 | −58 |
| 4 | 196 | 205 | 80 | 89 | −116 | −116 |
| 8 | 384 | 401 | 152 | 169 | −232 | −232 |
| 16 | 752 | 785 | 288 | 321 | −464 | −464 |
Observed depth = predicted + 2k in every row, with no free parameter. The prediction comes from one line of arithmetic: a term is absorbed when 2<sup>−j</sup> < ε·(2k), so the first lost level is j\ = 52 − log₂(2k) and the first lost term index is k·j\. The offset 2k is round-to-nearest-even: a term of exactly half an ulp is absorbed without changing the sum, so disagreement needs the accumulated tail to exceed half an ulp, which takes two further levels.
The step in determinism is sharp: at 53 terms every one of 200 orderings returns the same number; at 55 terms they return two. The step in magnitude is one ulp. Mean relative error at the threshold is 4.1 × 10⁻¹⁷ in binary64, about 0.19 of a unit in the last place — ten times the median step elsewhere in the curve, but still one ulp. It does not grow into a catastrophe as depth increases; it saturates at the size of the lost tail.
Catastrophe needs cancellation, and cancellation is measured by the condition number κ = Σ|x|/|Σx|, not by depth. In a 1,001-term sum built from cancelling pairs plus a residual c, mean relative error rises from 2 × 10⁻¹¹ at κ = 1.5 × 10⁶ to 0.19 at κ = 1.5 × 10¹⁶, crossing 10% at κ ≈ 7.3 × 10¹⁵, which is 1.63/ε. Holding κ at 1.5 × 10¹⁵ while changing depth from 101 to 10,001 moves mean relative error from 0.021 to 0.016 — no depth effect (Table 2).
| 101 | 1.5 × 10¹⁵ | 2.1 × 10⁻² |
|---|---|---|
| 1,001 | 1.5 × 10¹⁵ | 2.1 × 10⁻² |
| 10,001 | 1.5 × 10¹⁵ | 1.6 × 10⁻² |
Below the threshold, 200 orderings give one answer. Above it they give two, differing by half an ulp (1.9999999999999998 vs 2.0 at 200 terms). That is reproducibility failing in the sense that matters for bitwise comparison, and it fails abruptly. It does not mean the simulation has gone wrong: both answers are correct to the last bit, and the spread never approaches the magnitude of the answer. Practitioners who see two different checksums above a known depth are seeing this, not divergence.
The threshold is a closed-form function of precision and decay, and it tracks exactly: −29 terms per halving of the decay rate's exponent, and −29·k terms between binary64 and binary32. The proposal's "mixed precision shifts the threshold in a calculable way" is the best-supported part of it, and the calculation is a one-liner to hand to a numerical library.
rounding from the first term and heavier-tailed magnitudes; the form of the threshold should survive, the exact constants will not.
Pairwise or Kahan summation change the constants, not the mechanism.
mechanism from plain absorption. Simple absorption predicts every number here, so the stronger mechanism is not needed — and not supported.
ordering could disagree slightly below the reported depth.
A data set with realistic magnitudes and cancellation showing a magnitude threshold at fixed condition number would restore the catastrophe claim. We looked for it in the natural place — depth at fixed conditioning — and it is not there.
run.py (reproduces everything) · results.json · data/ · figures/ · hypothesis.md (pre-specified criteria) · SOURCE.md (environment, hashes)


