Embedded Systems September 2000 Vol13_10

Issue link:

Contents of this Issue


Page 37 of 229

PROGRAMMER'S TOOLBOX e You've heard me say, in the past, that I was not a great fan of the Numerical Recipes series. Popular as it is, I always get the feeling that I'm getting a canned subroutine, converted over from old Fortran code by people who didn't understand it all that well. LISnNG 1, cont'd. x=u fx=fu endif c c c update tolerances for next Loop XllFO. Sd(}k ( a+b) tol1=eps*dabs(x)+tol3 tol2=2.CJdOktol 1 enddo c c end of main Loop c fmin=x return end Snyder of NASA:JPL goes on to quote several specialists who share the feel- ing that Recipes gives one just enough information to get into trouble. One of the experts quoted is my hero, Lawrence F. Shampine. Shampine is arguably the world's leading authority on numerical in tegration algorithms. Whatever he says, you can take to the bank. The general fl avor of the Web site article is that while Recipes may be a good source for serviceable canned subroutines to solve certain problems, they are n ot the ones an expert in tha t particular area would use. Unde rstand, I don ' t intend this study. I absolute ly will not be de terred from giving you an algo- rithm this month. If it has to be one I've invented on th e spot, that's what it has to be. More on Brent and Press Now that I've taken on, in recent months, Microsoft, Mathsoft, and De ll, can it be that I'm about to take on Press et al. as well? Yeah, I guess it can. You 've heard me say, in the past, th at I was not a great fan of the Numerical RecifJes series. Popular as it is, I always get the feeling that I'm getting a canned subrou tine, con- vened over from old Fortran code by people who didn 't understand it all that well. Don' t get me wrong; the scope of coverage of Recipes is monume ntal. Press et al. give more subroutines to solve more problems than I am likely to write 111 seve ra l lifetimes. I've always stood in awe over the sheer volume of algorithms that are cov- ered in the book. Whenever I want to learn more about certain problems, I still go to Recipes first. Still , one is left with that nagging questi on: how can one or a few people be experts in so many differen t areas? Obvious answer: they can ' t. When I want a truly authorita tive explanation of an algorithm , I generally find that I must look elsewhere. I thought I was alone in my reac- tion to Recipes. A reader pointed out that I was not, and referred me to the Web site: To spare you the suspense of looking it up, I'll quote the titl e: "Why not use Numerical Recipes?" and th e f irst lin e, "We have found Numerical RecifJes to be gen erally unre liable ." Pretty strong words. Author W. van 36 SEPTEMBER 2000 Embedded Systems Programming as any great indictment of th e Recipes books. Press et al. have never presented th e routines as th e most powe rful or effective of their kind . Their goal seems to be to cover as much gt-ound, in as many areas, as possible. It would be asking a lot to expect them to not only give you algorithms that work in so many dif- fe re nt areas and represent the cur- rent state of th e art in every one. My only problem is that the current state of the art, for this particu lai- area, is exactly what I was looking for. Please don 't get the idea that, though I haven 't been with you much lately, I haven 't been working the problem. I've been traveling th e Information Highway seeking more background on Brent's method. I'm afraid I didn't find much. Recipes gives as reference Brent's book, Algorithms for Minimization Without Derivatives.2 As we've discussed before, that book seems to be the result of Brent's dis- sertation work. But it's ou t of print, and my perpetual request to has not turned up a copy. In search of more explanation of Brent's method and how it works, I turn ed to Alan Miller's Web site www. ozemail. com. au/ - rnilleraj/. Now, if you ' re looking for some- one who really is an expert in every

Articles in this issue

Archives of this issue

view archives of EETimes - Embedded Systems September 2000 Vol13_10