Re: [ROOT] matrix inversion class; comments please

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Tue Dec 12 2000 - 11:19:21 MET


Hi Eddy et al, 

On Mon, 11 Dec 2000 10:31:50 -0500 (EST)
Eddy Offermann <eddy@rentec.com> wrote
concerning ": [ROOT] matrix inversion class; comments please":

OK. Here you go. 

When implementing TPrincipal this summer, I really REALLY missed some
classes in ROOT, that basically dealt with matrix inversion, so I
welcome you effort. 

However, what I missed the most, was to have classes like 

    TUpperTriangleMatrixD 
    TLowerTriangleMatrixD
    TSymmetricMatrixD  
    TTriDiagnonalMatrixD

Since these kinds of (real) matrixes are easily inverted, using
standard algorithms, these could have specialised inversion
methods/CTORs/etc. 

And one can easily find eigenvalues and -vectors of tridiagonal
matrix, so this could also be a specilised method (See
TPrincipal). And ofcourse, a symmetric matrix can be turned into a
tridiagonal one, using standard algorithms. 

In otherwords, I think making these classes would be more then useful,
and one could have a utility class - like TInverse - but being a
friend of T<foo>MatrixD classes, so that it may access the data
directly. 

Please note, that it's not posssible to have the above propossed
classes inherit from TMatrixD, due to variuos return values, etc. One
could have a matrix base class TBaseMatrixD, or what ever. ClHEP has a
very extensive set of matrix classes, which are fairly well
organised. 

Anyway, that's my two centimes worth. 

Yours, 

Christian  -----------------------------------------------------------
Holm Christensen                             Phone:  (+45) 35 35 96 91 
  Sankt Hansgade 23, 1. th.                  Office: (+45) 353  25 305 
  DK-2200 Copenhagen N                       Web:    www.nbi.dk/~cholm    
  Denmark                                    Email:       cholm@nbi.dk



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:39 MET