Hi Pierre-Luc,
Yes, since version 4.0 InvertPosDef has been removed from the
TMatrixD/F
classes . It could only invert symmetric posdef members and for the
others
an error message was produced; so not really a good design .
In version 4.0x a whole new linear algebra package was introduced, which is nearly completely backward compatible .......
We now have seperate classes for general/dense (TMatrixD), symmetric
(TMatrixDSym)
or sparse (TMatrixDSparse) matrices . You can invoke for TMatrixD and
TMatrixDSym
Invert() of InvertFast() which uses TDecompLU and TDecompBK internally
,
thereby exploiting the structure of the underlying matrix .
In case of a positive-definite symmetric matrix, you can go one step
further and use
TDecompChol (Cholesky decomposition) which is actually the algorithm of
InvertPosDef .
To get an idea of all the new possibilties have a look at the tutorial invertMatrix.C
In summary, if you want to keep using a Cholesky decomposition (and you
should)
cahnge your matrix from TMatrixD to TMatrixDSym and use the TDecompChol
class to invert it .
(In case you wonder, we could have defined a TMatrixDSymPosDef class
with its
own Invert() function but that was thought to be one class too
much....)
Eddy
> Hi,
>
> TMatrixD::InvertPosDef() is no longer existing in ROOT. What is
> replacing
> it? I need to inverse a covariance matrix, InvertPosDef() was perfect
> to inverse it properly...
>
> Thanks!
>
> Piere-Luc Drouin
> Carleton University
>
>
Received on Wed Jan 19 2005 - 17:26:20 MET
This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:04 MET