Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Numerical Recipes
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Reception== === Content === Numerical Recipes is a single volume that covers a very broad range of algorithms. Unfortunately that format skewed the choice of algorithms towards simpler and shorter early algorithms which were not as accurate, efficient or stable as later more complex algorithms.<ref name=quut>{{cite web |title=Reviews: Numerical Recipes |url=http://www.quut.com/c/num-recipes-in-c.html |website=www.quut.com |access-date=28 January 2019}} (updated for the third edition; [https://www.lysator.liu.se/c/num-recipes-in-c.html clone URL])</ref><ref name=Snyder>{{cite web |last1=Van Snyder |first1=W. |title=Why not use Numerical Recipes? |url=https://www.stat.uchicago.edu/~lekheng/courses/302/wnnr/nr.html |website=stat.uchicago.edu |access-date=28 January 2019|date=March 1991}} (Date estimated by Editor's remark. Last update circa September 1999; [http://www.uwyo.edu/buerkle/misc/wnotnr.html older clone])</ref> The first edition had also some minor bugs, which were fixed in later editions; however according to the authors for years they were encountering on the internet rumors that Numerical Recipes is ''"full of bugs"''. They attributed this to people using outdated versions of the code, bugs in other parts of the code and misuse of routines which require some understanding to use correctly.<ref name=nrdr>{{cite web |title=Numerical Recipes Distressing Rumors |url=http://numerical.recipes/bug-rebutt.html |website=numerical.recipes |date=February 1999 |access-date=28 January 2019}} (Date given is first archive.org date for the page on the old nr.com domain.)</ref> The rebuttal does not, however, cover criticisms regarding lack of mentions to code limitations, boundary conditions, and more modern algorithms, another theme in Snyder's comment compilation.<ref name=Snyder/> A precision issue in Bessel functions has persisted to the third edition according to Pavel Holoborodko.<ref name=quut/> Despite criticism by numerical analysts, engineers and scientists generally find the book conveniently broad in scope.<ref name=Snyder/> Norman Gray concurs in the following quote:<ref>{{cite web |last=Gray|first=Norman |title=Numerical Recipes |url=http://www.astro.gla.ac.uk/users/norman/star/sc13/sc13.htx/N-a2b3c1.html |website=Theory and Modelling Resources Cookbook, www.astro.gla.ac.uk}}</ref> <blockquote>Numerical Recipes [nr] does not claim to be a numerical analysis textbook, and it makes a point of noting that its authors are (astro-)physicists and engineers rather than analysts, and so share the motivations and impatience of the book's intended audience. The declared premise of the NR authors is that you will come to grief one way or the other if you use numerical routines you do not understand. They attempt to give you enough mathematical detail that you understand the routines they present, in enough depth that you can diagnose problems when they occur, and make more sophisticated choices about replacements when the NR routines run out of steam. [...]</blockquote> === License === The code listings are copyrighted and commercially licensed by the ''Numerical Recipes'' authors.<ref>Numerical Recipes Web site, [https://numerical.recipes/licenseinfo.html Numerical Recipes Code]</ref> A license to use the code is given with the purchase of a book, but the terms of use are highly restrictive.<ref>{{cite web |last1=Weiner |first1=Benjamin |title=Boycott Numerical Recipes |url=http://mingus.as.arizona.edu/~bjw/software/boycottnr.html |quote=Buy the book if you feel like it, learn from it, but use a library like the GNU Scientific Library instead. Especially if you ever want other people to use your work. The NR license is the RIAA of the scientific community.}}</ref> For example, programmers need to make sure NR code cannot be extracted from their finished programs and used – a difficult requirement with dubious enforceability.<ref>{{cite tech report |first=Haysn |last= Hornbeck |title=Fast Cubic Spline Interpolation |arxiv=2001.09253 |institution=University of Calgary |date=January 28, 2020 }}</ref> However, ''Numerical Recipes'' does include the following statement regarding copyrights on computer programs:<blockquote>Copyright does not protect ideas, but only the expression of those ideas in a particular form. In the case of a computer program, the ideas consist of the program's methodology and algorithm, including the necessary sequence of steps adopted by the programmer. The expression of those ideas is the program source code{{nbsp}}... If you analyze the ideas contained in a program, and then express those ideas in your own completely different implementation, then that new program implementation belongs to you.<ref name="ThirdEdition" /></blockquote> One early motivation for the [[GNU Scientific Library]] was that a [[free software|free]] library was needed as a substitute for ''Numerical Recipes''.<ref name=gsl>{{cite web |last1=Galassi |first1=Mark |last2=Theiler |first2=James |last3=Gough |first3=Brian |title=GNU Scientific Library -- Design document |url=https://www.gnu.org/software/gsl/design/gsl-design.html |website=GNU Operating System |publisher=GNU.org |access-date=January 5, 2019}}</ref> === Style === Another line of criticism centers on the coding style of the books, which strike some modern readers as "Fortran-ish", though written in contemporary, object-oriented C++.<ref name=gsl/> The authors have defended their very terse coding style as necessary to the format of the book because of space limitations and for readability.<ref name="cip" />
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)