Skip to main content

The precision ladder

Short answer to "should we go to float128?" — no, and the numbers say why. The framework computes in IEEE-754 float64 (what JavaScript, and every browser/Node/desktop target, actually has in hardware). float128 does not exist in JS and is software-emulated on every CPU you'd target. More importantly, at the framework's tolerances float64 rounding is not the limiting error.

Where accuracy actually binds (measured, 10⁶ steps)

Error sourceMagnitude
KO42 tolerance10⁻³
Integrator truncation (default Verlet)5.3×10⁻⁵
float64 rounding (vs 106-bit double-double, same algorithm)2.6×10⁻¹³
CODATA uncertainty of G2.2×10⁻⁵

Rounding sits 8–9 orders of magnitude below the truncation error. Moving the word size buys zero correctness. If you want better numbers, integrator order is the lever, not precision — a 4th-order step buys ~10³× accuracy for ~3× cost; double-double buys nothing here for ~35× cost.

The ladder (opt-in; default is unchanged)

The nano-zeqond engine exposes three upgrades. The default path is byte-identical to the audited engine.

  1. Kahan-compensated energy ledger (always on) — compensated summation for the energy/driftPct diagnostic only; the dynamics are untouched. Near-free.
  2. integrator: 'yoshida4' — 4th-order symplectic composition of the same KDK kernel. Measured: 501× lower truncation error at 1.4× cost, convergence order 4.00. Use for accuracy-critical runs.
  3. precision: 'dd' — double-double (~106-bit, "float128-class") state, pure JS, identical on web/Node/desktop. ~30× cost; agrees with float64 to 3.5×10⁻¹⁵ over 1000 steps. The one legitimate niche is long-horizon chaotic dynamics (three-body class), where extra digits extend the trustworthy horizon — not accuracy of ordinary runs.
new ZeqNanoEvolver({ integrator: "yoshida4" }); // 501× accuracy, 1.4× cost
new ZeqNanoEvolver({ precision: "dd" }); // 106-bit, chaotic-horizon research

The GPU note

The GPU field engine is float32below float64. It is a visualization layer (documented tolerance: max ϕ diff 3.3×10⁻⁷ vs the CPU reference), never the compute source of truth. Native desktop compute inherits the same float64 CPU engine, so results stay consistent across every surface.

Claim discipline

Do not market "float128 accuracy": at these tolerances it is indistinguishable from float64 by nine orders of magnitude, and reviewers will check exactly that way (run both, diff). The defensible claims are: integer-nanosecond time base, symplectic integrators with measured drift ≤0.1%, compensated energy ledger, and — with quad mode — 106-bit option for chaotic-horizon research.

Full study: PRECISION-FLOAT128-DESIGN.md and audits/phase5-precision-ladder/ (7/7).