Issue link: http://dc.ee.ubm-us.com/i/71837

PROGRAMMER'S TOOLBOX e That was then, this is now. Nowadays, companies all over the world write packages for solving math problems in Fortran, C, and other languages. On the Internet, applied mathematicians in academia pass around algorithms for solving all manner of complex problems. Brent's method, Fortran version if (dabs(d).lt.tol1) then if(d.le.O.odo) then u+x-tol1 else u=x+tol1 endif else u=x+d endif fu=f(u) i ter=i ter+1 c c c update a, b, v, w, and x if (fx.le.fu) then if (u.ge.x) then b=u else a=u endif endif if (fu.gt.fx) then if ((fu.gt.fw).and.(w.ne.x)) then if ((fu.le.fv).or.(v.eq.x).or.(v.eq.w)) then v--u fv=fu endif else v=w fv=fw w=u fw=fu endif else if (u .ge. x) then a=x else b=x endif v=w fv=fw w=x fw=fx Listing 1 continued on p. 36 "Giant Brain" would have researched the math algorithms needed to solve virtually any pro bl em, and ke pt canned ve rsio ns handy to give to their engineers. If such a group existed at IBM, it's n ews to me. I think it's a case whe re the cobbler 's childre n have no shoes. Far from getting the best software IBM had to offer, we IBM program- me rs got to be the beta teste rs for th e rest of the company. We didn't even get the same quality that customers did . As usual, I ended up writing my own algorithms. My next job was with Northrop Corporation, which had a small IBM mini (the 1130, my only favorite IBM compute r). Ironically enough, that compute r came with a docume nt called the IBM Scientific Subroutine Package (SSP). IBM did have a col- lection of tools; it's just that I had to leave IBM to find it. Though written in the worst kind of spaghetti-code Fortran II, the algorithms were pret- ty good, and to thi s day, I still use many of them. That was th e n , this is now. Nowadays, companies all over the world write packages for so lving math problems in Fortran, C, and other languages. On the Interne t, applied mathematicians in academ ia pass around algorithms for solving all manne r of complex pro bl ems. Authors like Press et al. write books like Numerical Recipes, 1 which must contain the best algorithms of each kind. Surely I can be forgive n for assuming that I'd be able to pick up one such algorithm and present it to you in the form of a ro bust and gen- e ra l-purpose minimum-finde r. I thought that in Bre nt's method I'd found one. Alas, it was not to be. Not only did I not like the method, I couldn 't find the one thing I absolu tely insist on in this column: a cogent explanation of how it works. Who could have guessed th is turn of events? Nevertheless, like it or not, I seem to be at that branch point in this 32 SEPTEMBER 2000 Embedded Systems Programming

- September001
- September002
- September003
- September004
- September005
- September006
- September007
- September008
- September009
- September010
- September011
- September012
- September013
- September014
- September015
- September016
- September017
- September018
- September019
- September020
- September021
- September022
- September023
- September024
- September025
- September026
- September027
- September028
- September029
- September030
- September031
- September032
- September033
- September034
- September035
- September036
- September037
- September038
- September039
- September040
- September041
- September042
- September043
- September044
- September045
- September046
- September047
- September048
- September049
- September050
- September051
- September052
- September053
- September054
- September055
- September056
- September057
- September058
- September059
- September060
- September061
- September062
- September063
- September064
- September065
- September066
- September067
- September068
- September069
- September070
- September071
- September072
- September073
- September074
- September075
- September076
- September077
- September078
- September079
- September080
- September081
- September082
- September083
- September084
- September085
- September086
- September087
- September088
- September089
- September090
- September091
- September092
- September093
- September094
- September095
- September096
- September097
- September098
- September099
- September100
- September101
- September102
- September103
- September104
- September105
- September106
- September107
- September108
- September109
- September110
- September111
- September112
- September113
- September114
- September115
- September116
- September117
- September118
- September119
- September120
- September121
- September122
- September123
- September124
- September125
- September126
- September127
- September128
- September129
- September130
- September131
- September132
- September133
- September134
- September135
- September136
- September137
- September138
- September139
- September140
- September141
- September142
- September143
- September144
- September145
- September146
- September147
- September148
- September149
- September150
- September151
- September152
- September153
- September154
- September155
- September156
- September157
- September158
- September159
- September160
- September161
- September162
- September163
- September164
- September165
- September166
- September167
- September168
- September169
- September171
- September172
- September173
- September174
- September175
- September176
- September177
- September178
- September179
- September180
- September181
- September182
- September183
- September184
- September185
- September186
- September187
- September188
- September189
- September190
- September191
- September192
- September193
- September194
- September195
- September196
- September197
- September198
- September199
- September200
- September201
- September202
- September203
- September204
- September205
- September206
- September207
- September208
- September209
- September210
- September211
- September212
- September213
- September214
- September215
- September216
- September217
- September218
- September219
- September220
- September221
- September222
- September223
- September224
- September225
- September226
- September227
- September228
- September229
- September230
- September231