~/talk

Forward to the Past: The Case for Uniformly Strict Floating Point Arithmetic on the JVM

Talkat JVM Language Summit 2017 · 2017-07-31..08-02· [java]
name:Joe Darcy
github:jddarcy
slides:none on file

Argues for restoring always-strict IEEE floating-point semantics via JEP 306, demonstrating a concrete double-rounding bug on x87 vs SSE by constructing a pair of hex doubles whose product falls on the subnormal-to-normal boundary and producing two different results. Shows the practical fix used on x87 — an x87 store-reload scaling trick (multiply by 2^-15360, operate, then rescale) — and notes modern x86 uses SSE2 so strict semantics cost no perf. Mentions fused-multiply-add API complications.

AI-written summary · about

  1. 0:00Intro
  2. 0:34Overview
  3. 5:02Specifications and semantics Java source code
  4. 13:41The games of mathematics
  5. 15:09Levels of floating point
  6. 15:48Encoding and decoding IEEE 754 floating-point
  7. 20:43Round to nearest even rounding mode, illustrated
  8. 24:39Fun facts about floating-point arithmetic
  9. 25:39Completing floating point arithmetic
  10. 26:23Design of x87 floating point instructions, circa 1977
  11. 31:56A potential problem or a real problem?
  12. 36:28Toy example
  13. 36:50Abbreviated & abridged history of Java FP Proposals
  14. 38:54Features of default floating-point semantics
  15. 39:55Complexity in semantics or code generation
  16. 40:37JEP 306: Restore always strict floating point semantics
  17. 42:40Example: fused multiply add (fma)
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.