This textbook presents the concepts and tools necessary to understand, build, and implement algorithms for computing elementary functions (e.g., logarithms, exponentials, and the trigonometric functions). Both hardware- and software-oriented algorithms are included, along with issues related to accurate floating-point implementation. This third edition has been updated and expanded to incorporate the most recent advances in the field, new elementary function algorithms, and function software. After a preliminary chapter that briefly introduces some fundamental concepts of computer arithmetic, such as floating-point arithmetic and redundant number systems, the text is divided into three main parts. Part I considers the computation of elementary functions using algorithms based on polynomial or rational approximations and using table-based methods; the final chapter in this section deals with basic principles of multiple-precision arithmetic. Part II is devoted to a presentation of "shift-and-add" algorithms (hardware-oriented algorithms that use additions and shifts only). Issues related to accuracy, including range reduction, preservation of monotonicity, and correct rounding, as well as some examples of implementation are explored in Part III. Numerous examples of command lines and full programs are provided throughout for various software packages, including Maple, Sollya, and Gappa. New to this edition are an in-depth overview of the IEEE-754-2008 standard for floating-point arithmetic; a section on using double- and triple-word numbers; a presentation of new tools for designing accurate function software; and a section on the Toom-Cook family of multiplication algorithms. The techniques presented in this book will be of interest to implementers of elementary function libraries or circuits and programmers of numerical applications. Additionally, graduate and advanced undergraduate students, professionals, and researchers in scientific computing, numerical analysis, software engineering, and computer engineering will find this a useful reference and resource. PRAISE FOR PREVIOUS EDITIONS "[T]his book seems like an essential reference for the experts (which I'm not). More importantly, this is an interesting book for the curious (which I am). In this case, you'll probably learn many interesting things from this book. If you teach numerical analysis or approximation theory, then this book will give you some good examples to discuss in class." - MAA Reviews (Review of Second Edition) "The rich content of ideas sketched or presented in some detail in this book is supplemented by a list of over three hundred references, most of them of 1980 or more recent. The book also contains some relevant typical programs." - Zentralblatt MATH (Review of Second Edition) "I think that the book will be very valuable to students both in numerical analysis and in computer science. I found [it to be] well written and containing much interesting material, most of the time disseminated in specialized papers published in specialized journals difficult to find." - Numerical Algorithms (Review of First Edition)
Jean-Michel Muller was born in Grenoble, France, in 1961. He received his Ph.D. degree in 1985 from the Institut National Polytechnique de Grenoble. He is Directeur de Recherches (senior researcher) at CNRS, France. His research interests are in Computer Arithmetic. He is the author or co-author of several books, including the ”Handbook of Floating-Point Arithmetic (Birkhauser, 2010). He is an associate editor of the IEEE Transactions on Computers, and a senior member of the IEEE.