Reviews of the Atlas

Book News, December 1997

Provides four dimensions of information: over 700 pictures of graphs to guide thinking about functions; programs for doing mathematics by computer; key formulas for accurate and efficient solutions; and over 150 numerical functions from mathematics that are used by practitioners in such areas as applied mathematics, statistics, physics, chemistry, computer science and engineering. The CD-ROM contains Mathematica notebooks for the visualizations in the text, generating some of the functions algebraically, and calculating numerical test values; and source programs for the functions in Fortran.

 

Choice, January 1998, by D. V. Feldman

One might suppose that computer software such as Mathematica and Maple has rendered the old-fashioned book of mathematical tables obsolete. Even so, those old books served ancillary functions aside from their main role as a source for numerical values. In particular one could browse them to gather background concerning the range of mathematical tools available for solving various problems, something not so readily done with a piece of software. Thompson’s tome serves as a table book (almost) without the numbers. Instead, he gives background information, fundamental formulas, graphical representations of functions, and program listings embodying algorithms for computation. Scientists and engineers with this book in hand will have much readier access to the full power of the modern software. (A good example of how computers, rather than making books obsolete, create needs for new kinds of books.)

 

Journal of the American Statistical Association, March 1998, by W. L. Briggs

This ambitious and largely successful work extends the tradition of mathematical handbooks set by Abramowitz and Stegun (1964), Erde1yi (1953). and Jahnke and Emde (1945). The book is as encyclopedic as its predecessors and is designed as a reference manual for applied mathematicians, scientists, engineers, and statisticians.

    The Atlas takes a natural step beyond previous handbooks of functions by exploiting recent advances in computer graphics and software. Whereas Jahnke and Emde presented 200 graphic images in 400 pages, and Abramowitz and Stegun provided 100 images in 1,000 pages, the 900-page Atlas features more than 150 functions and 700 images, most of them produced by the Mathematica system. In fact, about one-third of the book is pictorial.

    The selection of special functions in the Atlas is roughly comparable to that provided by Abramowitz and Stegun: gamma and beta functions, combinatorial and number-theoretic functions, probability distributions, standard integral functions, error functions, orthogonal polynomials, Legendre and Bessel functions, spheroidal and coulomb wave functions, elliptic integrals and functions, parabolic cylinder functions, and a chapter of miscellaneous functions primarily from physics.

    The typical treatment of a given function includes some background and references followed by definitions and fundamental properties of the functions. The properties given in the Atlas (e.g. recurrence relations and integral properties) are far less extensive that those provided by Abramowitz and Stegun. However, the shortage of analytical properties is compensated for by a section called “Visualization” that presents several two- and three-dimensional graphical representations of the functions. The graphs are followed by a Section called “Algorithm and Program” that contains a C program for computing function values and relevant programming notes. This is followed by a final section "Test Values” in which selected values of the function are tabulated, generally to 10 digits. In this manner, the Atlas gives a very different perspective of special functions, one that is decidedly more visual and computational that in previously published handbooks.

    The book's final third is devoted to displaying and documenting both the Mathematica notebooks and the C driver programs that generated the entire book. The notes in this section are remarkably detailed and informative. This last section of the book supports the final major feature of the Atlas: a companion CD-ROM that contains C source code for all of the programs in the book as well as the Mathematica notebooks used to generate the graphs and test values. (The Mathematica notebooks require a Mathematica driver.) The CD-ROM clearly extends the Atlas beyond the boundaries of previous mathematical handbooks.

    For those researchers who use mathematical handbooks frequently and would like more computational and visual support than is provided in existing sources, the Atlas is a highly recommended addition to any library.

 

Computers in Physics, May/June 1998, by J. L. Zachary

Abramowitz and Stegun’s Handbook of Mathematical Functions published in 1964, contains 1046 pages of symbolic definitions, two-dimensional graphs, and numerical tables for a wide variety of functions used in science and engineering. William J. Thompson’s Atlas for Computing Mathematical Functions covers much of the same ground from a contemporary perspective. Abramowitz and Stegun’s tables have been replaced by Fortran and C programs, and their graphs have been supplanted by user-customizable three- dimensional visualizations generated by Mathematica. The Atlas (available in both C/Mathematica 2.2 and Fortran 90/Mathematica 3.0 versions) and its accompanying CD-ROM (for Windows, Macintosh, and Unix platforms) are well designed and carefully con­structed, and invite interactive explora­tion from the reader.

    An outstanding reference to the functions commonly used in science and engineering, Thompson’s book capably exploits modern computing technology by providing two computational methods —numerical and graphical for investigating each function that it treats. The text is intelligently formatted, with plenty of visual cues that highlight its organization. it is also carefully cross-referenced and thoroughly indexed. Everything on the CD-ROM is listed and annotated in the book, with clear directions and an abundance of suggestions for using the programs.

   The first two-thirds of the book is organized into 19 thematic chapters devoted to the discussion of over 150 functions. The discussion of each function includes the function’s definition, index keywords, and references to background reading, with the bulk of the presentation devoted to Mathematica visualizations and C/Fortran implementations of the function. The final third of the book contains two chapters devoted to a discussion of the code on the CD-ROM. in Chapter 20, every cell of each Mathematica notebook from the CD-ROM is listed and annotated, and various visualization experiments are suggested. In Chapter 21, each driver (the main function in the case of C and the program component in the case of Fortran) is listed and annotated. The drivers are constructed to prompt the user repeatedly for input values and to display the results.

    The Atlas contains more than 700 Mathematica renderings of surfaces and curves. Although these black-and-white plots provide a handy reference, the reader can do better by using Mathematica interactively to generate color versions of the same graphs. Mathematica notebooks on the CD-ROM define these and other visualizations, and the reader can experiment by modifying parameters and choosing different viewpoints. The visualizations and the accompanying discussions are the book’s strongest selling point. Thompson has devoted much time and attention to writing the Mathematica code required to produce what is an extremely attractive and instructive collection of graphics.

Using Thompson’s notebooks, of course, requires access to Mathematica. The C version of the Atlas comes with Mathematica version 2.2 notebooks that are also generally compatible with Mathematica 3.0. The Fortran version comes with Mathematica 3.0 notebooks. C/Fortran functions that compute each mathematical function are listed in the text. On the CD-ROM, each function in the text is incorporated into a self-contained program complete with the driver and helping functions. With one exception, the consequence of an easily corrected typo on line 83 of CSINTGRL.F90, the 102 programs on each CD-ROM compiled, linked, and ran straight out of the box. Thompson’s code is rather less useful, however, to someone who wishes to modify the numerical algorithms. For example, Thompson has generally constructed his programs to produce a relative accuracy of 10 digits. Although in each case Thompson describes the methods used to obtain that accuracy, it would be difficult for a reader to transform many of the programs into versions that produce, say, 12 digits instead of 10.

Not surprisingly for so ambitious a work, there is room for improvement. Worth mentioning are the test tables, the treatment of recursion, the quality of the graphics, and the program listings.

Each function implementation in the first 19 chapters is accompanied by a short table of test values along with an explanation of how to use the Mathematica notebooks to derive other values. A valuable adjunct would be a C function/Fortran program on the CD-ROM with these tables built in that could be used to test all the functions automatically.

Thompson’s treatment of recursion in the chapter on combinatorial functions (Chapter 7) is troublesome. The C (and Fortran) function for computing the Fibonacci polynomials Fn(x), for example, is a doubly recursive translation of the defining recurrence relation. The function is exponential in n, and it requires over 2 min to compute F40( 1) on an SGI Indigo 2 workstation. In contrast, a simple iterative implementation of the same function exists that is linear in n; F40( I) can be computed in a mere fraction of a second using this function.

The quality of the graphical illustrations in the body of the book, most of which were rendered from the beautiful visualizations that can be produced by Mathematica using the notebooks from the CD-ROM, is not up to the high standards of the rest of the Atlas. They have been rendered at a rather low resolution, and are quite jagged.

Finally, the C/Fortran programs have relatively few comments, many overlong functions, lots of cryptic variable names, and little white space. Although space considerations make this compression understandable for the listings in the book proper, the versions on the CD-ROM exhibit the same short­comings.

        On balance, however, the strengths of Thompson’s impressive labor of love far outweigh the weaknesses. His Atlas is a valuable addition to the reference literature on scientific computation. It belongs on the bookshelves and its CD-ROM in the computers—-of all computationally oriented scientists and engineers.