12 #ifndef ROOT_TDecompLU 13 #define ROOT_TDecompLU 21 #ifndef ROOT_TDecompBase
void Print(Option_t *opt="") const
Print internals of this object.
virtual Bool_t Decompose()
Matrix A is decomposed in components U and L so that P * A = U * L If the decomposition succeeds...
TDecompLU()
Default constructor.
Bool_t TestBit(UInt_t f) const
virtual TVectorD Solve(const TVectorD &b, Bool_t &ok)
Decomposition Base class.
double inv(double x)
For comparisons.
static Bool_t InvertLU(TMatrixD &a, Double_t tol, Double_t *det=0)
Calculate matrix inversion through in place forward/backward substitution.
virtual void Det(Double_t &d1, Double_t &d2)
Calculate determinant det = d1*TMath::Power(2.,d2)
static Bool_t DecomposeLUCrout(TMatrixD &lu, Int_t *index, Double_t &sign, Double_t tol, Int_t &nrZeros)
Crout/Doolittle algorithm of LU decomposing a square matrix, with implicit partial pivoting...
virtual Int_t GetNcols() const
#define ClassDef(name, id)
TDecompLU & operator=(const TDecompLU &source)
assignment operator
virtual const TMatrixDBase & GetDecompMatrix() const
virtual TVectorD TransSolve(const TVectorD &b, Bool_t &ok)
const TMatrixD GetMatrix()
Reconstruct the original matrix using the decomposition parts.
virtual Int_t GetNrows() const
virtual void SetMatrix(const TMatrixD &a)
Set matrix to be decomposed.
virtual Bool_t Solve(TVectorD &b)
Solve Ax=b assuming the LU form of A is stored in fLU, but assume b has not been transformed.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
virtual Bool_t TransSolve(TVectorD &b)
Solve A^T x=b assuming the LU form of A^T is stored in fLU, but assume b has not been transformed...
static Bool_t DecomposeLUGauss(TMatrixD &lu, Int_t *index, Double_t &sign, Double_t tol, Int_t &nrZeros)
LU decomposition using Gaussian Elimination with partial pivoting (See Golub & Van Loan...