In the modern world of symbolic mathematics software that can carry out computations to thousands of places, it would seem that knowing how to do them would be of minor importance. However, there is a certain awe and feeling of accomplishment in knowing how to program a computer to carry out computations to a very large number of places. This requires a detailed knowledge of arithmetic, numbers and the potential errors that are invariably present in computer arithmetic.
In some ways, the techniques presented here can be considered extreme numerical and algorithmic analysis, for even though the fundamental operations are addition, subtraction, multiplication and division, they must be done efficiently and extremely accurately. I personally have always been fascinated with high precision arithmetic, for like most mathematicians, I always want to take a peek a little farther down the mathematical road than I have before. This book can give you the knowledge that will allow you to look some distance down that road of working with numbers of arbitrary size or precision. The level of delivery is that of the graduate student with some experience in number theory and significant background in computer arithmetic and how numbers are stored.
When I teach a course in the fundamentals of arithmetic for budding teachers, I always made a point of writing very large integers on the board and explaining to the students how the addition algorithm allows them to add together any two integers, no matter how large. I used the numbers as a demonstration of how powerful algorithms can be. That wonder was revisited for me when I read this book.
Charles Ashbacher splits his time between consulting with industry in projects involving math and computers, teaching college classes and co-editing The Journal of Recreational Mathematics. In his spare time, he reads about these things and helps his daughter in her lawn care business.
1. Integer arithmetic
2. Modular arithmetic and the FFT
3. Floating-point arithmetic
4. Newton's method and function evaluation
Appendix. Implementations and pointers