12#ifndef ROOT_TDecompSVD
13#define ROOT_TDecompSVD
#define ClassDef(name, id)
Decomposition Base class.
Single Value Decomposition class.
virtual Double_t Condition()
Matrix condition number.
virtual Bool_t Solve(TVectorD &b)
Solve Ax=b assuming the SVD form of A is stored .
static void Diag_3(TMatrixD &v, TMatrixD &u, TVectorD &sDiag, TVectorD &oDiag, Int_t k, Int_t l)
Step 3 in the matrix diagonalization.
static void Diag_2(TVectorD &sDiag, TVectorD &oDiag, Int_t k, Int_t l)
Step 2 in the matrix diagonalization.
TDecompSVD & operator=(const TDecompSVD &source)
Assignment operator.
virtual void Det(Double_t &d1, Double_t &d2)
Matrix determinant det = d1*TMath::Power(2.,d2)
virtual const TMatrixDBase & GetDecompMatrix() const
virtual Int_t GetNcols() const
virtual Int_t GetNrows() const
void Print(Option_t *opt="") const
Print class members.
static Bool_t Bidiagonalize(TMatrixD &v, TMatrixD &u, TVectorD &sDiag, TVectorD &oDiag)
Bidiagonalize the (m x n) - matrix a (stored in v) through a series of Householder transformations ap...
static void Diag_1(TMatrixD &v, TVectorD &sDiag, TVectorD &oDiag, Int_t k)
Step 1 in the matrix diagonalization.
const TVectorD & GetSig()
static Bool_t Diagonalize(TMatrixD &v, TMatrixD &u, TVectorD &sDiag, TVectorD &oDiag)
Diagonalizes in an iterative fashion the bidiagonal matrix C as described through sDiag and oDiag,...
virtual TVectorD TransSolve(const TVectorD &b, Bool_t &ok)
virtual TVectorD Solve(const TVectorD &b, Bool_t &ok)
virtual Bool_t TransSolve(TVectorD &b)
Solve A^T x=b assuming the SVD form of A is stored . Solution returned in b.
const TMatrixD GetMatrix()
Reconstruct the original matrix using the decomposition parts.
virtual Bool_t Decompose()
SVD decomposition of matrix If the decomposition succeeds, bit kDecomposed is set ,...
virtual void SetMatrix(const TMatrixD &a)
Set matrix to be decomposed.
static void SortSingular(TMatrixD &v, TMatrixD &u, TVectorD &sDiag)
Perform a permutation transformation on the diagonal matrix S', so that matrix S'' = U''^T .
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
void inv(rsa_NUMBER *, rsa_NUMBER *, rsa_NUMBER *)