Numerical Recipes
Numerical Recipes is the generic title of an influential series of books on algorithms and numerical analysis, all by William Press, Saul Teukolsky, William Vetterling and Brian Flannery:
Overview
The books contain material on a range of computational methods, and an accompanying disk includes computer code and several libraries. The scope is supposed to be "everything up to, but not including, partial differential equations (PDEs)", although the second edition does include a chapter on PDEs that discusses the important concepts in the field and cites the most important papers.
The Numerical Recipes series is notable for its accessibility and generally informal tone. The emphasis is on the understanding of techniques (the authors repeatedly state their suspicion of black-box techniques). They say that the algorithms emphasize clarity and simplicity:[1]
If there is a single dominant theme in this book, it is that practical methods of numerical computation can be simultaneously efficient, clever, and — important — clear. The alternative viewpoint, that efficient computational methods must necessarily be so arcane and complex as to be useful only in "black box" form, we firmly reject.
Some of the topics discussed are: random number generation, sorting, special functions, orthogonal polynomials, optimization techniques, statistical methods, Fourier transforms and wavelet transforms.
Analysis and criticism
The series has attracted a great deal of acclaim and criticism. Acclaim typically focuses on the clear explanations and the wide range of methods presented.
The books are especially controversial in the numerical analysis community. Negative criticism has centred on the books' assumed unreliability (the first edition contained some mistakes), the exclusion of some algorithms, the authors' implication that their programs have efficiency and reliability comparable to that of "black-box" libraries (see above), and the fact that the software cannot be freely redistributed in modified (or unmodified) version—it is issued under a non-free licence. A well-known free software library providing many functions similar to those in Numerical Recipes is the GNU Scientific Library.
For example, Whaley et al., 2001, maintain that LAPACK with a highly optimized BLAS library can be an order of magnitude faster than textbook linear-algebra routines such as the Gaussian elimination or LU decomposition code in Numerical Recipes (see e.g. ). (In contrast, the Recipes authors state that "much of the sophistication of complicated 'linear equation-solving packages' is devoted to the detection and/or correction of [numerical accuracy problems]", although they also mention LAPACK and LINPACK as having "increased efficiency" by minimizing the "number of operations" and "storage" for "very large linear systems".) As another example, Frigo and Johnson (2005) point out that the fast Fourier transform (FFT) code in Numerical Recipes is 3–10 times slower than highly optimized programs on modern computer architectures. (In contrast, the Recipes authors write that tricks such as larger radices for the FFT "can be faster than simpler FFTs by some significant, but not overwhelming, factor, e.g., 20 or 30 percent.")
Notes
- ^ From the preface to the first edition, which is reprinted in the second edition.
References
Titles
Each book in the Numerical Recipes series communicates much the same information, but focuses on its implementation in a particular computer programming language.
- Numerical Recipes in C++. The Art of Scientific Computing, ISBN 0-521-75033-4.
- Numerical Recipes in C. The Art of Scientific Computing, ISBN 0-521-43108-5.
- Numerical Recipes in Fortran. The Art of Scientific Computing, ISBN 0-521-43064-X.
- Numerical Recipes in Fortran 90. The Art of Parallel Scientific Computing, ISBN 0-521-57439-0.
- Numerical Recipes in Pascal. The Art of Scientific Computing, ISBN 0-521-37516-9.
- Numerical Recipes. The Art of Scientific Computing, 3rd Edition, 2007, ISBN 0-521-88068-8. (C++ code)
The books, which are published by Cambridge University Press, are now in their third edition.
Journal articles
- R. Clint Whaley, Antoine Petitet, and Jack J. Dongarra, "Automated empirical optimization of software and the ATLAS project," Parallel Computing 27, 3-35 (2001).
- M. Frigo and S. G. Johnson, "The design and implementation of FFTW3," Proc. IEEE 93 (2), 216-231 (2005).
See also
External links
- Numerical Recipes official website
- Numerical Recipes in C Link to the C version of the book in pdf format
- Reviews of Numerical Recipes
- Boycott Numerical Recipes
- Why Not Use Numerical Recipes (a collection of both published and anonymous criticisms)
- Rebuttal of "incorrect reports of bugs" by the NR authors.
- Norman Gray, A discussion of NR and its critics that Bill Press calls a "balanced view" [1]
- Alternatives to Numerical Recipes