12#ifndef ROOT_TDecompSVD 
   13#define ROOT_TDecompSVD 
#define ClassDefOverride(name, id)
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Decomposition Base class.
 
Single Value Decomposition class.
 
void Det(Double_t &d1, Double_t &d2) override
Matrix determinant det = d1*TMath::Power(2.,d2)
 
const TMatrixDBase & GetDecompMatrix() const override
 
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.
 
Bool_t Solve(TVectorD &b) override
Solve Ax=b assuming the SVD form of A is stored .
 
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,...
 
Double_t Condition() override
Matrix condition number.
 
Bool_t Decompose() override
SVD decomposition of matrix If the decomposition succeeds, bit kDecomposed is set ,...
 
Int_t GetNrows() const override
 
const TMatrixD GetMatrix()
Reconstruct the original matrix using the decomposition parts.
 
Bool_t TransSolve(TVectorD &b) override
Solve A^T x=b assuming the SVD form of A is stored . Solution returned in b.
 
TVectorD Solve(const TVectorD &b, Bool_t &ok) override
 
virtual void SetMatrix(const TMatrixD &a)
Set matrix to be decomposed.
 
Int_t GetNcols() const override
 
static void SortSingular(TMatrixD &v, TMatrixD &u, TVectorD &sDiag)
Perform a permutation transformation on the diagonal matrix S', so that matrix S'' = U''^T .
 
void Print(Option_t *opt="") const override
Print class members.
 
TVectorD TransSolve(const TVectorD &b, Bool_t &ok) override
 
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
 
void inv(rsa_NUMBER *, rsa_NUMBER *, rsa_NUMBER *)