|WikiProject Mathematics||(Rated Start-class, Low-importance)|
Link to Colt for Java
I think that it would me useful to add a link to the voice about the Colt library for Java. I say this because in the past I actually found myself looking for something similar to Numerical Recipes for Java, and it wasn't straightforward to find it. I actually don't know of a Java version of the LEDA library, so if anyone knows one, it would be nice to add a link in the LEDA voice as well.
I deleted the following section from the article:
- Negative criticism of the books, almost without exception, has one or more of the following characteristics:
- It refers to the first edition
- It is nonspecific
- It is anonymous
- It is unsupported by citations or reference to "better" techniques
- Assertions of "efficiency" are not quantitative
- It cites numerous "bugs" that have long since been corrected
- It claims something like "serious scholars have long since derided <some NR algorithm that is not explicitly named> and now "modern techniques" are in use, all without specific citations
- It claims something like "the book seems OK at first glance but serious analysis of 'my specialist area' shows that at least this part of the book is deficient"
- As such, much of the negative criticism of the book has much in common with urban myth or pseudoscience.
In my opinion, this is not a fair reflection of the complaints which have been mentioned in reviews about the books. I replaced the above fragment with a summary of the main critisms. -- Jitse Niesen 18:24, 5 May 2004 (UTC)
I liked your NPOV rephrasing of my bullet points. If anything, your phrasing makes the case for NR more strongly than my rather more explicit list. I particularly liked the bit about clear and intelligible programs being efficient.
Notwithstanding that, all the complaints about the book that I have seen DO adhere to the bullet points...I'd be very interested to see any complaints you have about NR that we could discuss.
Robinh 20:19, 5 May 2004 (UTC)
Robin, I'm glad that you like my changes. All reviews about NR that I've read (which are just a few) refer to the first edition (except for the reviews of the Fortran 90 book, which is quite different); however, I think it is quite natural that the second edition of a book is not reviewed as widely as the first edition. So it's not so much that the text which I deleted is not true, it's only that I did not like the tone, especially of the last sentence.
As for my personal opinion about NR: I have only browsed through it and I've heard people talking about it, so I don't feel qualified to give a definitive opinion, but my impression is not that bad. I think that people using NR should be warned that it's not the final word; a lot of theory and alternative algorithms is omitted (as is necessary for a book of this scope), and the writing style may cause some people to forget this. However, the book seems quite okay as an introduction for non-mathematicians (I think it has too little analysis for mathematicians), and if you just have an easy problem that you want to solve numerically, that's all you need.
I hope that clarifies my position a bit. All the best, Jitse Niesen 00:08, 6 May 2004 (UTC)
- Wikipedia articles are not the place to give your opinions on neither the book nor the criticisms of it. Both its criticism and "criticism about the criticism" have to be properly sourced. 184.108.40.206 (talk) 23:52, 10 March 2009 (UTC)
Can anyone point out where in Whaley it says 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"? I tried to locate this statement, or anything like it, in the paper, but couldn't. --Robert.Baruch (talk) 19:04, 14 July 2010 (UTC)
- In the beginning of part III of the paper, they point out that level-3 BLAS operations (which are what is used in LAPACK for things like LU decomposition) "can display orders of magnitude speedups" compared to unoptimized code (e.g. the textbook-style triply nested loops are specifically mentioned), and they back this up by comparing benchmarks (fig. 4) to the reference BLAS, which is basically the textbook 3-loop implementation. (As far as I can tell, there is nothing controversial about this statement; the order-of-magnitude speedups from rearranging algorithms for locality is the whole reason behind the restructuring of the old LINPACK+EISPACK into LAPACK+BLAS. But I haven't seen anyone who bothered to publish a benchmark specifically against Numerical Recipes; everyone who does numerical linear algebra seriously already knows that NR is an order of magnitude slower precisely because it copies the old pre-LAPACK style.) — Steven G. Johnson (talk) 22:48, 14 July 2010 (UTC)
Remove this page entirely?
There are decisions to be taken about this page. Is it a balanced piece of information about what a book has to offer, or is it a springboard for a rant? At the moment, the "Overview" section is less informative than an Amazon search. The external links section is fundamentally useless: the NR site can be found more quickly using Google, and the other sites are of poor quality and are confusing. For example, the "Boycott numerical recipes" is merely a vehemently expressed, vitriolic attack on restricted licenses, and the Numerical Recipes authors are hardly the only people out there to have imposed licensing conditions. One feels that they were unfortunate to fall in the gun-sights! "Boycott.." also fails to display legibly in many popular browsers (e.g. Internet Explorer 7), which is not acceptable for a Wikipedial external source.
Good encyclopedias give guidance to the person who doesn't have a huge background. This wikipedia page won't tell the numerical expert anything they don't already know, and will leave the numerical beginner completely confused about whether NR is a good book or a bad, and none the wiser about what's in it.
- WP:IDONTLIKEIT is not a valid reason for deletion. Do you have a constructive suggestion about what information should be included to make the article more informative? — Steven G. Johnson (talk) 03:12, 5 May 2011 (UTC)
- I think you're misunderstanding me. My problem with the page is that this wikipedia page looks itself to an outside reader like a sort of "IDONTLIKEIT" book-review, set up not to inform, but to attack a particular book. It lacks balance, and it references inappropriate external websites. That part of it that aims to be informative contains less information than can be obtained from Amazon.
- You've quite reasonably asked how I would improve the page. (1) I think the uninitiated reader needs to know the level at which the book is aimed. What mathematical background do you need before you can understand this book. The Overview states that the book is "accessible", but to whom? I'd reckon that it's accessible to anyone with first-year University maths, but this is a PoV. (2) The list of contents is currently a single sentence; this could be expanded (See GNU page as an example), or alternatively leave this to the NR home-page in the external links. (3) The book is clearly about understanding, not merely about being a code-library. While this is mentioned once at the start of the Overview, the "Analysis and Criticism" section unbalances the article by spending many, many sentences comparing the book unfavourably to code-libraries. Code-libraries are fundamentally different! Their raison d'etre is to be efficient, not to teach.
- It's this third point that causes me most trouble. The "Analysis and Criticism" section (together with its continuation in External Links) is really a collection of points of view with little peer-reviewed support. The two references used in "Analysis and Criticism" are no doubt relevant, but not specific to NR. I'm not sure this section can be improved as I don't think data are available. I agree that there needs to be a mention that NR has stirred up controversy, but the flavour of the article at the moment is that the book is fundamentally misleading and dangerous in the eyes of all but its authors. Please consider at least trimming this section (I'm not going to unless there's agreement). In particular, I feel strongly that the "Boycott..." external reference is completely inappropriate. It is a hate-blog written by an individual with an axe to grind, and falls firmly on the wrong side of WP policy about "Opinion". Some of the external references appear to perpetuate rumours that NR algorithms are incorrect, rumours that the authors strenously deny. I'd argue that continuing to reference them verges on scandal-mongering, also against WP policy. Of the external links, I would remove (a) "Reviews of NR", which contains mostly unreferenced, anonymous viewpoints; (b) "Boycott NR"; (c) "Why not use NR", which is mostly a copy of (a), or vice versa. I would leave the two authors' sites (NR and rebuttal) and the Norman Gray and Alternative sites. This is a fair 2-all balance, with the Norman Gray site being informative and balanced, and the Alternative site offering genuine help as well as a strong critique. 220.127.116.11 (talk) 13:42, 5 May 2011 (UTC)
- I came to this page from Linear Congruential Generator, where it lists the LCR values used in this book. I clicked through to see if that meant these were values worth using. From a quick skim of this page, I quickly came to the conclusion that this book was some sham book of no significant notability, and mo mathematical strength. Why, then, I wondered, were its numbers cited on the LCR page? Why was this obviously-terrible book even noteworthy? Why had this page not been deleted? Probably spam, not my problem, moved on. But as I read more about LCRs, those numbers and this book kept coming up, so I came back to read more carefully. I am in complete agreement that this page basically mostly reads like a smear campaign, and that the huge "Criticism" section is basically inappropriate in an article that lacks any description of what the book covers, what it's been used for, by whom, why it's considered so great, by whom, and all the actually-relevant stuff. 18.104.22.168 (talk) 02:18, 24 August 2014 (UTC)
Major Rewrite Answering Some Issues Above
I've done a major rewrite of this article to try to restore it to a neutral viewpoint. It is without doubt that the Numerical Recipes books are an important set of works that have had a significant influence over more than a generation of scientific programmers. On the other hand, there are some valid criticisms of the books that must be aired.
I've tried to get across the "spirit" of the books that has indeed made them best-sellers over the years, but not to minimize their limitations -- and also to identify the communities that the criticism has come from.
I think the "debate" about errors in the code is 20 years out of date and not worth wasting wiki-space on. You can go to the Numerical Recipes web site to see their list of bugs found in the last few years. They are down to very few, and very minor, per year, indicating a mature code base.
I've pruned the "rant" external references down to a minimum. I'm not sure I've included the right ones, so welcome discussion here as to which (if any) should be restored, or which included ones should be deleted. As for me, I'd delete them all, but I want to accommodate other views if they really still exist out there (not just as old fossils).
Date of First Edition
The First Edition of Numerical Recipes was first published in 1989, even though it has a copyright date of 1986. The code therein was all ANSI-standard FORTRAN-77. Other languages, such as BASIC, were later handled in supplements that were somewhat thinner than the main book, since they contained mostly program listings with very little discussion. I own a copy of the First Edition, Second Printing, with the yellow dust jacket. This edition isn't shown on the Numerical Recipes site anymore. — QuicksilverT @ 18:00, 8 October 2013 (UTC)
Deleting inappropriate criticism.
I've no dog in this race: I've never seen or heard of this book until today. But this section was really awful.
Rationale for each but deleted is given: please consider a counter-rationale before replacing. I've kept what I could, but it wasn't much.
"An early reviewer wrote, "The phrase 'numerical recipes' is bound to send the shudders down every honest numerical mathematician's spine." He also praised, however, the authors' readiness to "go out on a limb and present their own opinions"."
- Assuming good faith, I think this is intended to be balanced, but just comes across as an insult, followed by a backhanded insult.
- Calls the authors (and anyone who uses the book) a dishonest mathematician; then calling the authors opinionated.
- Review by "an early reviewer" is likely to be for 1st ed, so is arguing against a strawman anyway. A review for a version of a software program that's 25 years old would not be considered worth mentioning, so why is this factless, opinionated spite, a quarter of a century old, considered relevant here?
"Given the editorial style of the books, it is not surprising that they were (and to some extent remain) controversial within the numerical analysis community."
I was going to just slap a  here, but... OR premises (the books are editorial; they are controversial in that community) and unfounded OR conclusion (premise A comes from premise B) suggest it's best to just delete.
"Early criticism centered on the books' assumed unreliability (the First Edition indeed contained some mistakes), the exclusion of some algorithms, and the authors' implication, not always correct, that their programs were as efficient and reliable as "black-box" libraries, for example the NAG Numerical Libraries."
- "Early criticism" - is criticism of 1st ed notable in some way?
- The "authors' implication" - without a cite, a quote, or even a claim that they directly claimed that, ever? Sounds like someone misread/misinterpreted the book.
Passage can't stand as is, but could be reintroduced with references of this being a specific criticism leveled against this book, since it does feel like it might almost be notable. I've replaced it with a small placeholder and a cite tag, rather than delete it outright.
"Although not mentioning Numerical Recipes by name, Whaley et al. demonstrate that LAPACK with a highly optimized BLAS library can be an order of magnitude faster (or more) than textbook-style triply nested-loop linear-algebra routines similar to the code in Numerical Recipes. As another example, Frigo and Johnson point out that the fast Fourier transform (FFT) code in highly optimized programs on modern computer architectures is 5–40 times faster than the example in Numerical Recipes."
- That's really cool, but... not at all relevant to this page. This is a page about a book.
- Unless the book explicitly claims to give maximally-optimized code-snippets (and it doesn't; covered above), the fact that there are faster versions of the algorithms described therein should come as no surprise to anyone, anywhere. Info on the current-fastest algorithms may be relevant under Linear Algebra and fast Fourier transform, though.
- Given that math and computing are fields where development is common, it's normal to expect faster algorithms to be found.
- Given that both examples postdate the first edition by well over a decade, you can't claim as a "criticism" of the work that someone found a faster way to do stuff using massive parallelism.
- Given that both examples described predate the current edition, it's even unsafe to claim that the book does not already mention them.
- Given that the refs for these faster implementations do not even mention this book, they cannot be counted as criticisms of the book, so don't deserve mention in this section.
- The book is cited 3k times a year according to an earlier paragraph... and yet, the "criticisms" cited here are neither critical, nor cites.
"A second line of criticism centers on the fact that, although printed in the books, the code is copyright by the Numerical Recipes authors, and thus not freely available for use under a GNU General Public License or similar open license. Indeed, one early motivation for the GNU Scientific Library was that a free library was needed as a substitute for Numerical Recipes. The Numerical Recipes authors have been unapologetic to this criticism. They derive income from selling individual and corporate licenses to the code, and clearly consider the Numerical Recipes enterprise as a business."
This had some (unreferenced) facts that might actually be worth including, but was quite laced with bias:
- "although printed in the books" - printing doesn't relieve stuff of copyright.
- "and thus not GNU" - Copyright doesn't preclude open licensing, it depends on it. GNU is not Public Domain.
- "have been unapologetic" - Sounds like OR, plus, why should they apologize for doing no wrong?
- "clearly consider the NR enterprise a business" - authors counting their book as a business?! The shame! Except... that's what authors DO. It's their JOB.
- Iserles, Arieh; Mathematical Gazette, vol. 73, no. 464 (June 1989)
- Whaley, R. Clint; Petitet, Antoine; and Dongarra, Jack J.; "Automated empirical optimization of software and the ATLAS project," Parallel Computing 27, 3–35 (2001).
- Johnson, Steven G.; and Frigo, Matteo; "Implementing FFTs in practice in Fast Fourier Transforms (Burrus, C. Sidney; ed.), ch. 11, Rice University, Houston TX: Connexions, September 2008.
- Numerical Recipes Web site, Numerical Recipes Code