Floating Point
This wikibook discusses the IEEE 754 standard concerning floating-point numbers. Beginning chapters of this book focus on newcomers to the standard, who wish to understand and make use of floating point numbers, especially in a programming project. Later chapters of this book, however, focus more on the details of implementation of the IEEE 754 standard. This way, advanced users who want more details, or users who are working to create a floating-point implementation of their own can find the information they need. This book can be used as an ancillary reference source to support other books in the computer science and engineering fields.
Programming examples found in this book attempt to use pseudocode where possible, to prevent an over-reliance on any particular language or platform. Specific examples may utilize a single computer language or assembly language.
Prerequisites to this book include an understanding of exponents and Algebra, and an understanding of binary number representation.
Table of Contents
[edit | edit source]Section 1: Number Representation
[edit | edit source]Section 2: IEEE 754
[edit | edit source]Section 3: Floating Point Arithmetic
[edit | edit source]Section 4: Floating Point Hardware
[edit | edit source]- Converting FP and Integers
- Exceptions
- Trap Handlers
- Flags
- Floating Point Hardware
- Soft Implementations
Section 5: Algorithms
[edit | edit source]- Arithmetic Algorithms
- Exponents and Square Roots
- Trancendentals
Further reading
[edit | edit source]- IEEE 754 references
- Let's Get To The (Floating) Point by Chris Hecker
- What Every Computer Scientist Should Know About Floating-Point Arithmetic by David Goldberg - a good introduction and explanation.
- IEEE 854-1987 History and minutes
- Converter
- Another Converter
- The pitfalls of verifying floating-point computations, by David Monniaux, also printed in ACM Transactions on programming languages and systems (TOPLAS), May 2008: a compendium of non-intuitive behaviours of floating-point on popular architectures, with implications for program verification and testing