Dear Root-ers, Maybe some interesting addition to ROOT. I have written a collection of matrix inversion routines, ranging from pseudo-inverse, inverse through LU decomposition to inversion of a pos-def matrix. The pseudo-inverse is calculated through a single-value decomposition. These routines can also be used to minimize linearized problems with/without constrains. However, the implementation/interface is maybe not optimal. Following considerations flowed in: - The TMatrix class is extremely nice but very well "protected". It is hard to get data in and out. Unless you have a TMatrix object it is hard to perform an inversion. That is why I did not install these routines into Tmatrix - I thought that the easiest way was to exchange data through array's and chose for TArrayD. - Like in TMath, I use TInverse as a kind of namespace. - are these routines general enough to warrant installation into ROOT or maybe people should use other (public domain) libraries. On the other hand, these are nicely integrated into ROOT ... - Single value decomposition will be a useful concept for optimizing less well defined problems (e.g. due to lack of data). Also boundary conditions can be added quite elegantly. I have added a small program solve.C to create a little stand-alone test program comparing a linear fit with the traditional normal equations with single- value decomposition. The Makefile will need a bit of work it is just a straight copy from the way things are done at Renaissance. Anyhow, please have a look at it and sent me your comments. Best Regards Eddy Attached file is a compressed tar-file of: Makefile TInverse.C TInverse.h TInverse_LinkDef.h solve.C
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:38 MET