12#ifndef ROOT_TDecompBase
13#define ROOT_TDecompBase
#define ClassDef(name, id)
Bool_t DefHouseHolder(const TVectorD &vc, Int_t lp, Int_t l, Double_t &up, Double_t &b, Double_t tol=0.0)
Define a Householder-transformation through the parameters up and b .
void ApplyGivens(Double_t &z1, Double_t &z2, Double_t c, Double_t s)
Apply a Givens transformation as defined by c and s to the vector components v1 and v2 .
void ApplyHouseHolder(const TVectorD &vc, Double_t up, Double_t b, Int_t lp, Int_t l, TMatrixDRow &cr)
Apply Householder-transformation.
void DefGivens(Double_t v1, Double_t v2, Double_t &c, Double_t &s)
Defines a Givens-rotation by calculating 2 rotation parameters c and s.
void DefAplGivens(Double_t &v1, Double_t &v2, Double_t &c, Double_t &s)
Define and apply a Givens-rotation by calculating 2 rotation parameters c and s.
Decomposition Base class.
static void DiagProd(const TVectorD &diag, Double_t tol, Double_t &d1, Double_t &d2)
virtual Bool_t Decompose()=0
virtual Bool_t Solve(TMatrixDColumn &b)=0
virtual Bool_t MultiSolve(TMatrixD &B)
Solve set of equations with RHS in columns of B.
void Print(Option_t *opt="") const
Print class members.
virtual Int_t GetNrows() const =0
virtual const TMatrixDBase & GetDecompMatrix() const =0
virtual Bool_t Solve(TVectorD &b)=0
virtual TVectorD TransSolve(const TVectorD &b, Bool_t &ok)=0
TDecompBase & operator=(const TDecompBase &source)
Assignment operator.
virtual Int_t GetNcols() const =0
Double_t SetTol(Double_t tol)
Double_t GetCondition() const
virtual Bool_t TransSolve(TMatrixDColumn &b)=0
Int_t Hager(Double_t &est, Int_t iter=5)
virtual Double_t Condition()
Matrix condition number.
TDecompBase()
Default constructor.
virtual Bool_t TransSolve(TVectorD &b)=0
virtual TVectorD Solve(const TVectorD &b, Bool_t &ok)=0
virtual void Det(Double_t &d1, Double_t &d2)
Matrix determinant det = d1*TMath::Power(2.,d2)
Mother of all ROOT objects.
static constexpr double s