12 #ifndef ROOT_TDecompBase 13 #define ROOT_TDecompBase 43 void ResetStatus() {
for (Int_t i = 14; i < 22; i++) ResetBit(BIT(i)); }
44 Int_t
Hager (Double_t& est,Int_t iter=5);
45 static void DiagProd (
const TVectorD &diag,Double_t tol,Double_t &d1,Double_t &d2);
75 inline Double_t
SetTol (Double_t tol);
78 virtual void Det (Double_t &d1,Double_t &d2);
89 void Print(Option_t *opt=
"")
const;
98 const Double_t oldTol =
fTol;
108 void DefGivens ( Double_t v1,Double_t v2,Double_t &c,Double_t &s);
109 void DefAplGivens ( Double_t &v1,Double_t &v2,Double_t &c,Double_t &s);
110 void ApplyGivens ( Double_t &z1,Double_t &z2,Double_t c,Double_t s);
virtual Bool_t MultiSolve(TMatrixD &B)
Solve set of equations with RHS in columns of B.
virtual Bool_t TransSolve(TVectorD &b)=0
Int_t Hager(Double_t &est, Int_t iter=5)
virtual Bool_t Decompose()=0
Decomposition Base class.
TDecompBase()
Default constructor.
virtual const TMatrixDBase & GetDecompMatrix() const =0
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 .
Double_t SetTol(Double_t tol)
TDecompBase & operator=(const TDecompBase &source)
Assignment operator.
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 ...
static void DiagProd(const TVectorD &diag, Double_t tol, Double_t &d1, Double_t &d2)
void ApplyHouseHolder(const TVectorD &vc, Double_t up, Double_t b, Int_t lp, Int_t l, TMatrixDRow &cr)
Apply Householder-transformation.
virtual Int_t GetNcols() const =0
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.
virtual Bool_t Solve(TVectorD &b)=0
void Print(Option_t *opt="") const
Print class members.
virtual Int_t GetNrows() const =0
virtual void Det(Double_t &d1, Double_t &d2)
Matrix determinant det = d1*TMath::Power(2.,d2)
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.
virtual Double_t Condition()
Matrix condition number.
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
Double_t GetCondition() const