am 3. März 1998
This is a very useful book for scientists and engineers, it collects codes for many most-often-encountered numerical problems, and the discussion is lucid, frank and helpful. However, the author adopted a very bad policy: they do not permit users to distribute their code. So suppose you write an application program which uses lots of integrations, linear algebra and differential equation routines, you would naturally like to use the numerical recipe routines for these basic tasks, but if you want to make your code freely available to others, you find you can't, because the numerical recipes routines are copyrighted and the authors forbid you to distribute even part of them with your code(except for a few public domain routines). They suggest you use the Netlib code which is freely available, however, since there is no systematic documentation, it is more difficult to use the netlib code. In any case, what is the point of having this book and its code if you have to use netlib code? this is really a trouble for the readers and users of this book. On the other hand, the authors provided their book online free of charge, but this is of little use--most readers would buy the book anyway, and prefer to have the code free.
am 9. Dezember 1999
This is an excellent text, filled with code segments, a few equations, and lots of glorious plain english *words* in which the authors share their practical experience on how to go about getting useful work done. If you've ever wanted to really understand numerical methods, or just want to make an intelligent choice between alternative approaches to a problem, this book is a gold mine.
The code itself, however, is a bit quaint. It does compile, and mostly work, but it's not the sort of thing you'd want to gamble a medical instrument or space flight on. (The code has the look and feel of 30 year old fortran which was rudely translated to C by some hapless grad student.)
Take the time to understand the routines that really matter for your application and reimplement them, with better error checking and/or optimizations to suit your needs. (Very likely the first thing you'll do is a global search to replace the string "float" with "double". That alone will bring the code out of the 70's and up to somehwere in the middle 80's)
am 2. April 2000
The code you purchase separately IS definitely in ASCII format. For the Windows version, the authors have provided a "browser" (yes, some kind of .dll file) that allows you to look at individual routines before saving them to your disk. This method is much easier than just dumping 400-500 routines (including example driver programs) to your hard disk. As the authors point out in the help file, there are numerous routines where they WANT you to change things (e.g., platform-dependent definitions of machine epsilon), or at least inspect, for your application. The idea that the code would not be provided in a format that can be edited is completely at odds with what the authors talk about in the Preface (1st ed.), as well as other places in the book. You're SUPPOSED to tear it apart and put it back together. If the above-referenced reviewer's diskettes really do not have the ability to extract ASCII files, like mine, then they are surely defective.
Second, the code IS ANSI-C compliant, which is stated quite clearly in the book. The fact that it is different for different platforms probably (I'm guessing) has to do with the unwrapping program used to navigate through the source files. The Windows browsing file mentioned above is really just a clever application of the standard Windows ".hlp" file format. Obviously, you can't use that on Mac or UNIX. I saw yet another way to do it on DOS platforms with the first edition diskettes. There is no reason to suspect that the actual code is not IDENTICAL on all platforms, except, of course, that each platform defines a newline differently. That said, it is a clear violation of the user license to be porting the code between platforms.
Now, if anyone cares about my opinion of the book... I am not a numerical analyst by trade. I'm just an engineer who finds myself doing numerical analysis sometimes. If this description fits you, or you are a graduate student doing engineering/physics (especially experimental work) that sometimes requires numerical analysis, then this may be the only book you need. It is DEFINITELY the first book you should BUY. Yes, you get all the source code in the book and that's great. But, you get an outstanding introduction, all in one place, to techniques of numerical analysis for all different kinds of applications. It is not a text book, so you don't have to waste the first three chapters proving a bunch of junk about converging series and Rolle's theorem and blah blah blah. (Blah blah blah gives you insight, no doubt. Far be it from me to trash the academic approach. I'm just sayin' that sometimes people in the real world have deadlines with large sums of money at stake and they have to take their best shot with or without the right background.)
I signed up for, and promptly dropped, a numerical analysis course on three different occasions during my graduate career. It was just too boring. This book is fun, and usually gives me enough background to get going on a problem. (I'm sure numerical purists think it's incomplete; but, the authors are usually careful to tell you when they're giving you the "lite" version of some derivation. In those cases, they give you plenty of references.)
I'm not a geek (at least I hope not), but I do find myself reading this book from time to time late at night just for the heck of it. My copy is well-worn and falling apart.
Yes, some of the code is hard to follow, and sometimes it looks like they're making it that way just to be fancy. A couple of spaces here and there wouldn't hurt, and just because C lets you write stuff that can't be read by other people doesn't mean you have do it that way. And, yes, even though my one programming course was FORTRAN 77, I don't care at all for arrays that start at 1 in a language that fundamentally doesn't want to do it that way (even though it can). But, the authors give you a way around this (for 1D arrays, anyway...still waiting for a way to do it for 2D arrays.) It is not a big deal for many of the routines to just convert them to the zero-based assumption. I've there is definitely a productivity argument to be made (not just typing, but debugging). It's really not a big deal to type the code in (as I did for several years) IF you are careful, so you have to decide for yourself if you want to spend your OWN money on the source code.
am 14. November 1999
Schon das erste Numerical Recipes war ein hervorragendes Buch. Die Autoren verstehen es auch in dieser Ausgabe, das doch recht trockene mathematische Material in kurzer, verständlicher Form dem Leser näherzubringen. Allerdings beschränkt sich das sowohl in der alten, als auch in der neuen Version nur auf die mathematischen Inhalte, die Quellcodes bleiben deutlich auf der Strecke. Man sollte meinen, dass die Autoren in der Lage seien, vernünftigen Code zu schreiben. Dem ist leider nicht so, was eigentlich schade ist, da ein vernünftiger Programmcode das Buch abgerundet hätte. Trotzdem ein sehr empfehlenswertes Buch, das sein Geld mehr als wert ist.
am 15. Dezember 1999
There is no question that the book is a valuable resource. It draws on classic references such as Bevington's 'Data Reduction and Error Analysis...' or other good books such as Acton's 'Numerical Methods that Work.' Very nice when you need a quick understanding on how to approach/attack a problem.
I find myself disappointed with the software on the disk you purchase separately. What I was expecting/hoping was ASCII files with the source code so that I wouldn't have to type it in myself from the book; however, it is in Windows DLL format. This is not very useful if you'd like to use the code on different platforms. One puzzling thing is that the Windows disk is about $35, while they offer an on-line download Unix version for $50 ($150 for the multi-user license). I don't understand why there would be differences between the two unless the NR software is not ANSI-C compliant. If this is the case, then I'd consider the software useless.
Recommendation: Buy the book as a reference. Use different software.
am 24. März 2006
I like the book for its theory part, but concerning the programming style it's just bad and up to a certain degree useless. If someone uses indices starting at 1 (instead of 0) in C, this guy knows not much about the programming language anyway! If I need code out of this book, I do have to rewrite the whole program in order to get default indices - and this is definitely a pain!
Sorry to say so, but I wouldn't buy that book: if you're interested in the theory only, there are certainly better books around. And, as mentioned above, if you're really up to good programming, also leave your fingers from this book - it will save you much time.
Let's hope, that the third edition will have the correct indices convention... I would be the first one to buy that book!!
am 9. März 1997
When you have sufficient mathematical background and basci ANSI C programming, this book help you understand and code program for many numerical analysis field greatly. Moreover the available C code help us great portablity and flexibility. From college, this book help my work very much
am 30. April 2000
Numerical Recipes offers a routine to address many applications I find myself needing for my dissertation work. I'm certain it will continue to be a valuable resource as I get out into the "real" world, as well. I have found myself many times going to the book for quick, comprehensible explanations of techniques which are explained in a much less intuitive fashion in some of my standard texts and references; if I need to know how something works, I'm more likely to understand what Press et al. say about it than what my Inverse Theory textbook has to say. I do find the programming style itself a little klunky, and although I am self-taught as both a FORTRAN and C programmer, enough of "classic" C-style has been drilled into me to share the annoyance of other reviewers regarding the array indexing in NR routines. Particularly difficult to call them from a larger driver program where I have already indexed everything beginning with zero. On the other hand, they're a cinch to adapt into Matlab for development and testing of new algorithms, since Matlab indexes from zero (which makes my own routines more difficult to translate).
Optimization is not a feature of the NR routines, so for anything amounting to serious volumes of data, duct tape is needed. But for a good basic collection of applications and for someone like me who does better starting with something rather than nothing (or can never remember the formula for something) the routines are a Godsend, and the explanations in the book are invaluable.
am 20. November 1998
I have used Numerical Recipes in C with generally fairly good results. Nine times out of ten, the methods provided produce the correct results. However in a disturbingly large number of cases, the routines in this book failed to be sufficiently robust. Though in general the methods are handy, the cautious reader should note that the contents of the book have given rise to serious criticism on the net.
am 21. Mai 1999
While I have been a big fan of the Numerical Recipes in FORTRAN, I was extremely disapponted in the C version. It adopts the convention of not using zero-based arrays, which is the ANSI-C standard. Instead it employs a series of hacked routines to use 1-based arrays. I personally find it very clumsy.