12 #ifndef ROOT_TDecompChol
13 #define ROOT_TDecompChol
24 class TDecompChol :
public TDecompBase
30 virtual const TMatrixDBase &GetDecompMatrix()
const {
return fU; }
34 TDecompChol() : fU() {}
35 explicit TDecompChol(Int_t nrows);
36 TDecompChol(Int_t row_lwb,Int_t row_upb);
37 TDecompChol(
const TMatrixDSym &a,Double_t tol = 0.0);
38 TDecompChol(
const TMatrixD &a,Double_t tol = 0.0);
39 TDecompChol(
const TDecompChol &another);
40 virtual ~TDecompChol() {}
42 const TMatrixDSym GetMatrix ();
43 virtual Int_t GetNrows ()
const {
return fU.GetNrows(); }
44 virtual Int_t GetNcols ()
const {
return fU.GetNcols(); }
45 const TMatrixD &GetU ()
const {
return fU; }
47 virtual void SetMatrix (
const TMatrixDSym &a);
49 virtual Bool_t Decompose ();
50 virtual Bool_t Solve ( TVectorD &b);
51 virtual TVectorD Solve (
const TVectorD& b,Bool_t &ok) { TVectorD x = b; ok = Solve(x);
return x; }
52 virtual Bool_t Solve ( TMatrixDColumn &b);
53 virtual Bool_t TransSolve ( TVectorD &b) {
return Solve(b); }
54 virtual TVectorD TransSolve (
const TVectorD& b,Bool_t &ok) { TVectorD x = b; ok = Solve(x);
return x; }
55 virtual Bool_t TransSolve ( TMatrixDColumn &b) {
return Solve(b); }
56 virtual void Det (Double_t &d1,Double_t &d2);
58 Bool_t Invert (TMatrixDSym &inv);
59 TMatrixDSym Invert (Bool_t &status);
60 TMatrixDSym Invert () { Bool_t status;
return Invert(status); }
62 void Print(Option_t *opt =
"")
const;
64 TDecompChol &operator= (
const TDecompChol &source);
66 ClassDef(TDecompChol,2)
69 TVectorD NormalEqn(
const TMatrixD &A,
const TVectorD &b);
70 TVectorD NormalEqn(
const TMatrixD &A,
const TVectorD &b,
const TVectorD &std);
71 TMatrixD NormalEqn(
const TMatrixD &A,
const TMatrixD &b);
72 TMatrixD NormalEqn(
const TMatrixD &A,
const TMatrixD &B,
const TVectorD &std);