Design of x87 floating point instructions, circa 1977
11
A potential problem or a real problem?
12
Toy example
13
Abbreviated & abridged history of Java FP Proposals
14
Features of default floating-point semantics
15
Complexity in semantics or code generation
16
JEP 306: Restore always strict floating point semantics
17
Example: fused multiply add (fma)
Description:
Explore the evolution and intricacies of floating-point arithmetic in Java through this 47-minute conference talk. Delve into the history of Java's floating-point semantics, from its initial strict definition to subsequent modifications. Examine the interaction between Java's floating-point implementation and x86 architecture, and understand the rationale behind changes made in Java 2. Investigate the current state of floating-point arithmetic in Java and consider the case for returning to uniformly strict semantics. Learn about IEEE 754 floating-point encoding, rounding modes, and the complexities of floating-point calculations. Discover the impact of hardware design on language implementation, particularly focusing on the x87 floating-point instructions. Analyze code examples, including fused multiply-add operations, to grasp the practical implications of different floating-point semantic models. Gain insights into ongoing efforts to refine Java's approach to floating-point arithmetic, including JEP 306, which aims to restore always-strict floating-point semantics.
Read more
Forward to the Past: The Case for Uniformly Strict Floating Point Arithmetic on the JVM