Portable floating-point calculations
summary
Claims a practical route to portable reproducible floating‑point that already solved deterministic multiplayer for Total War and now informs a geometry template library at Six Impossible Things Before Breakfast. Shows compilers (clang, GCC, MSVC), ISO 60559/IEEE‑754, and flags (-ffast‑math, FP_CONTRACT, FP_FAST/PRECISE) actually change results, with fused multiply‑add and stray GPU rounding modes causing divergence. Measures a 3× slowdown when forcing bitwise reproducibility. Proposes types like strict_float and rounded arithmetic plus library implementations rather than blanket optimizations.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 2:06Agenda
- 13:14Fixed-point challenges
- 19:14IEEE 754 and ISO/IEC 60559
- 27:29Reproducibility in operations
- 33:24C++ and C compliance
- 41:13Compiler optimizations trade-offs
- 44:06Improving portability proposals
- 49:05Q&A
related talks
26mGenerating Correctly Rounded Math Libraries for New Floating Point Variants
11mPrinting floating point numbers is surprisingly hard!!
22mOne Polynomial Approximation to Produce Correctly Rounded Results of an Elementa
58mFrom Formal Verification to Correctly Rounded Math Libraries
01h 41mFast Conversion From Cpp Floating Point Numbers
14mFPL: Fast Presburger Arithmetic through Transprecision
14mPrinting Floating Numbers is Surprisingly Hard!
17mMiniFloat-NN: A RISC-V ISA Extension for Low-Precision NN Training
