Floating-point arithmetic is the most widely used way of implementing real-number arithmetic on modern computers. However, making such an arithmetic reliable and portable, yet fast, is a very difficult task. 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. 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.
The handbook 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.
Jean-Michel Muller (coordinator), CNRS, Laboratoire LIP, AriC teamNicolas Brunie, KalrayFlorent de Dinechin, INSA Lyon, Laboratoire CITI, Socrate teamClaude-Pierre Jeannerod, Inria, Laboratoire LIP, AriC teamMioara Joldes, CNRS, LAAS, MAC teamVincent Lefèvre, Inria, Laboratoire LIP, AriC teamGuillaume Melquiond, Inria, Laboratoire LRI, Toccata teamNathalie Revol, Inria, Laboratoire LIP, AriC teamSerge Torres, ENS de Lyon, Laboratoire LIP, AriC team
Part I: Introduction, Basic Definitions, and Standards.- Introduction.- Definitions and Basic Notations.- Floating-Point Formats and Environment.- Part II: Cleverly Using Floating-Point Arithmetic.- Basic Properties and Algorithms.- Enhanced FP Sums, Dot Products, and Polynomial Values.- Languages and Compilers.- Part III: Implementing Floating-Point Operators.- Algorithms for the Basic Operations.- Hardware Implementation of Floating-Point Arithmetic.- Software Implementation of Floating-Point Arithmetic.- Evaluating Floating-Point Elementary Functions.- Part IV: Extensions.- Complex Numbers.- Interval Arithmetic.- Verifying Floating-Point Arithmetic.- Extending the Precision.- Appendix A: Number Theory Tools.- Appendix B: Previous Standards.- References.- Index.
"The new edition of this book updates chapters to reflect recent changes to programming languages and compilers and the new prevalence of Graphic Processing Units in recent years. ... In the Appendix, the reader will find an introduction to relevant number theory tools ... . This book is designed for programmers of numerical applications ... and more generally students and researchers in numerical analysis who wish to more accurately understand a tool that they manipulate on an everyday basis." (T. C. Mohan, zbMATH 1394.65001, 2018)
This handbook is a definitive guide to the effective use of modern floating-point arithmetic, which has considerably evolved, from the frequently inconsistent floating-point number systems of early computing to the recent IEEE 754-2008 standard. Most of computational mathematics depends on floating-point numbers, and understanding their various implementations will allow readers to develop programs specifically tailored for the standard's technical features. Algorithms for floating-point arithmetic are presented throughout the book and illustrated where possible by example programs which show how these techniques appear in actual coding and design.
The volume itself breaks its core topic into four parts: the basic concepts and history of floating-point arithmetic; methods of analyzing floating-point algorithms and optimizing them; implementations of IEEE 754-2008 in hardware and software; and useful extensions to the standard floating-point system, such as interval arithmetic, double- and triple-word arithmetic, operations on complex numbers, and formal verification of floating-point algorithms. This new edition updates chapters to reflect recent changes to programming languages and compilers and the new prevalence of GPUs in recent years. The revisions also add material on fused multiply-add instruction, and methods of extending the floating-point precision.
As supercomputing becomes more common, more numerical engineers will need to use number representation to account for trade-offs between various parameters, such as speed, accuracy, and energy consumption. The Handbook of Floating-Point Arithmetic is designed for students and researchers in numerical analysis, programmers of numerical algorithms, compiler designers, and designers of arithmetic operators.