Handbook of Floating-Point Arithmetic [electronic resource] /
Muller, Jean-Michel.author.
Brisebarre, Nicolas.author.
de Dinechin, Florent.author.
Jeannerod, Claude-Pierre.author.
Lefèvre, Vincent.author.
Melquiond, Guillaume.author.
Revol, Nathalie.author.
Stehlé, Damien.author.
Torres, Serge.author.
Floating-point arithmetic is by far the most widely used way of implementing real-number arithmetic on modern computers. Although the basic principles of floating-point arithmetic can be explained in a short amount of time, making such an arithmetic reliable and portable, yet fast, is a very difficult task. From the 1960s to the early 1980s, many different arithmetics were developed, but their implementation varied widely from one machine to another, making it difficult for nonexperts to design, learn, and use the required algorithms. As a result, floating-point arithmetic is far from being exploited to its full potential. This handbook aims to provide a complete overview of modern floating-point arithmetic, including a detailed treatment of the newly revised (IEEE 754-2008) standard for floating-point arithmetic. Presented throughout are algorithms for implementing floating-point arithmetic as well as algorithms that use floating-point arithmetic. So that the techniques presented can be put directly into practice in actual coding or design, they are illustrated, whenever possible, by a corresponding program. Key topics and features include: * Presentation of the history and basic concepts of floating-point arithmetic and various aspects of the past and current standards * Development of smart and nontrivial algorithms, and algorithmic possibilities induced by the availability of a fused multiply-add (fma) instruction, e.g., correctly rounded software division and square roots * Implementation of floating-point arithmetic, either in software—on an integer processor—or hardware, and a discussion of issues related to compilers and languages * Coverage of several recent advances related to elementary functions: correct rounding of these functions and computation of very accurate approximations under constraints * Extensions of floating-point arithmetic such as certification, verification, and big precision Handbook of Floating-Point Arithmetic is designed for programmers of numerical applications, compiler designers, programmers of floating-point algorithms, designers of arithmetic operators, and more generally, students and researchers in numerical analysis who wish to better understand a tool used in their daily work and research. .
Description based upon print version of record.
Includes bibliographical references (p. 529-565) and index.
Introduction, Basic Definitions, and Standards -- Definitions and Basic Notions -- Floating-Point Formats and Environment -- Cleverly Using Floating-Point Arithmetic -- Basic Properties and Algorithms -- The Fused Multiply-Add Instruction -- Enhanced Floating-Point Sums, Dot Products, and Polynomial Values -- Languages and Compilers -- Implementing Floating-Point Operators -- Algorithms for the Five Basic Operations -- Hardware Implementation of Floating-Point Arithmetic -- Software Implementation of Floating-Point Arithmetic -- Elementary Functions -- Evaluating Floating-Point Elementary Functions -- Solving the Table Maker’s Dilemma -- Extensions -- Formalisms for Certifying Floating-Point Algorithms -- Extending the Precision -- Perspectives and Appendix -- Conclusion and Perspectives -- Appendix: Number Theory Tools for Floating-Point Arithmetic.
Floating-point arithmetic is by far the most widely used way of implementing real-number arithmetic on modern computers. Although the basic principles of floating-point arithmetic can be explained in a short amount of time, making such an arithmetic reliable and portable, yet fast, is a very difficult task. From the 1960s to the early 1980s, many different arithmetics were developed, but their implementation varied widely from one machine to another, making it difficult for nonexperts to design, learn, and use the required algorithms. As a result, floating-point arithmetic is far from being exploited to its full potential. This handbook aims to provide a complete overview of modern floating-point arithmetic, including a detailed treatment of the newly revised (IEEE 754-2008) standard for floating-point arithmetic. Presented throughout are algorithms for implementing floating-point arithmetic as well as algorithms that use floating-point arithmetic. So that the techniques presented can be put directly into practice in actual coding or design, they are illustrated, whenever possible, by a corresponding program. Key topics and features include: * Presentation of the history and basic concepts of floating-point arithmetic and various aspects of the past and current standards * Development of smart and nontrivial algorithms, and algorithmic possibilities induced by the availability of a fused multiply-add (fma) instruction, e.g., correctly rounded software division and square roots * Implementation of floating-point arithmetic, either in software—on an integer processor—or hardware, and a discussion of issues related to compilers and languages * Coverage of several recent advances related to elementary functions: correct rounding of these functions and computation of very accurate approximations under constraints * Extensions of floating-point arithmetic such as certification, verification, and big precision Handbook of Floating-Point Arithmetic is designed for programmers of numerical applications, compiler designers, programmers of floating-point algorithms, designers of arithmetic operators, and more generally, students and researchers in numerical analysis who wish to better understand a tool used in their daily work and research. .
Computer mathematics.
Algorithms.
Computer science—Mathematics.
Applied mathematics.
Engineering mathematics.
Programming languages (Electronic computers).
Computational Mathematics and Numerical Analysis.
Algorithm Analysis and Problem Complexity.
Algorithms.
Math Applications in Computer Science.
Mathematical and Computational Engineering.
Programming Languages, Compilers, Interpreters.