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
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-
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 func
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
shortcomings.
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.