Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Numbers and computers (2nd ed.)
Kneusel R., Springer Publishing Company, Incorporated, New York, NY, 2017. 346 pp. Type: Book (978-3-319505-07-7)
Date Reviewed: May 24 2018

Numbers, wonderful mathematical idealizations that they are, have fascinated humans for as long as there have been humans. Computers, much more recent creations, are fascinating in their own way. For many, both are useful but intractable and hard to understand beyond the surface. Students and programmers learn that within computers numbers are only approximate, and for many this degree of acquaintance is sufficient to carry them through their careers without excessive trouble. Scientists and engineers need a deeper level of understanding to have confidence in the results they obtain from their computers. Computer scientists and computer designers must, of course, fully understand the relation between numbers, computer circuits, and the software to manipulate them. In Numbers and computers, Kneusel offers a book for all these audiences, and for anyone who would like to delve deeper into this branch of technology.

The aim is to provide a thorough introduction to the representation and operation of numbers within computers. This is done through detailed descriptions of the ways different numbers (integers, reals, and decimals) are represented internally; how they are manipulated is shown both through detailed descriptions of the processes involved and through code given in C and in Python.

The first part of the book, chapters 1 through 4, deals with integers and floating-point numbers. The second part, chapters 5 through 10, deals with other number representations. Chapter titles provide an excellent summary of the contents: (1) “Number Systems,” (2) “Integers,” (3) “Floating Point,” (4) “Pitfalls of Floating-Point Numbers (and How to Avoid Them),” (5) “Big Integers and Rational Arithmetic,” (6) “Fixed-Point Numbers,” (7) “Decimal Floating Point,” (8) “Interval Arithmetic,” (9) “Arbitrary Precision Floating Point,” and (10) “Other Number Systems.”

The material includes information about current standards such as the IEEE 754 standard for binary floating-point arithmetic, emerging standards such as the IEEE 754-2008 standard for floating-point numbers using base 10 rather than base 2, arbitrary precision floating-point representations, and other little-used number representations such as unlimited-precision integers--very large integers limited only by hardware capacity.

Kneusel’s presentation of the material is detailed, concise, and clear. The accompanying code provides additional insights, can be useful in its own right, and provides a springboard for further work or for translation into other languages. Each chapter concludes with exercises and references; the exercises are excellent, and the references extensive.

Kneusel provides knowledgeable commentary and advice from time to time. He mentions some widely available libraries, provides extensive details on them, and suggests how to install them and when to use them.

The second edition contains three new chapters not present in the first edition, and some other additional material. (My review of the book’s first edition [1] takes a more detailed look at that edition.) The most significant new material is chapter 9 on arbitrary precision floating-point arithmetic. This chapter introduces the ideas and benefits underlying this numerical representation and develops a Python library using one of the two options available for implementation, namely, fixed point for the exponent and, taking advantage of Python’s support for unlimited digits, a very large number of digits in the fractional part. Also included are implementations of trigonometry and transcendental functions--sine, cosine, and the exponential function, square root, and natural logarithms. Usage of arbitrary floating-point precision in libraries mpmath for Python and GNU MPFR for C and other languages is illustrated in detail.

Chapter 10, also new to the second edition, looks from a software perspective at some number systems usually implemented in hardware: logarithmic number systems, double-base number system, residue number system, and redundant signed-digit number system. The intent is to understand how these systems operate and when they become advantageous to use.

Chapter 4 is an expanded version of Section 3.10 of the first edition. Two failures due to erroneous numerical results--the recount of a German election, and recalculation, by hand, of the index of a stock exchange--are added to the more spectacular failures previously listed: the explosion of an Ariane rocket and the failure of a Patriot missile (which resulted in loss of military lives).

Finally, Section 6.4, “An Emerging Use Case,” also new to the second edition, illustrates the use of fixed-point numbers in neural networks, which is perhaps the most fruitful technique underlying recent rapid advances in artificial intelligence.

This book should be an excellent resource in the classroom. It can serve as a good reference for future use and can also be used very profitably for self-study.

Reviewer:  Edgar R. Chavez Review #: CR146045 (1808-0414)
1) Kneusel, R. Numbers and computers. Springer, Cham, Switzerland, 2015. (See CR Review No. 144185).
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Computer Arithmetic (G.1.0 ... )
 
 
General (B.2.0 )
 
Would you recommend this review?
yes
no
Other reviews under "Computer Arithmetic": Date
Computer arithmetic algorithms
Koren I., Prentice-Hall, Inc., Upper Saddle River, NJ, 1993. Type: Book (9780131519527)
Aug 1 1995
Table-driven implementation of the logarithm function in IEEE floating-point arithmetic
Tang P. ACM Transactions on Mathematical Software 16(4): 378-400, 2000. Type: Article
Aug 1 1991
Computer number systems and arithmetic
Scott N., Prentice-Hall, Inc., Upper Saddle River, NJ, 1985. Type: Book (9789780131642119)
Jul 1 1985
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy