12 #ifndef ROOT_TMatrixTLazy
13 #define ROOT_TMatrixTLazy
29 template<
class Element>
class TVectorT;
30 template<
class Element>
class TMatrixTBase;
31 template<
class Element>
class TMatrixT;
32 template<
class Element>
class TMatrixTSym;
43 template<
class Element>
class TMatrixTLazy :
public TObject {
45 friend class TMatrixTBase<Element>;
46 friend class TMatrixT <Element>;
47 friend class TVectorT <Element>;
55 TMatrixTLazy(
const TMatrixTLazy<Element> &) : TObject(), fRowUpb(0),fRowLwb(0),fColUpb(0),fColLwb(0) { }
56 void operator=(
const TMatrixTLazy<Element> &) { }
59 virtual void FillIn(TMatrixT<Element> &m)
const = 0;
62 TMatrixTLazy() { fRowUpb = fRowLwb = fColUpb = fColLwb = 0; }
63 TMatrixTLazy(Int_t nrows, Int_t ncols)
64 : fRowUpb(nrows-1),fRowLwb(0),fColUpb(ncols-1),fColLwb(0) { }
65 TMatrixTLazy(Int_t row_lwb,Int_t row_upb,Int_t col_lwb,Int_t col_upb)
66 : fRowUpb(row_upb),fRowLwb(row_lwb),fColUpb(col_upb),fColLwb(col_lwb) { }
67 virtual ~TMatrixTLazy() {}
69 inline Int_t GetRowLwb()
const {
return fRowLwb; }
70 inline Int_t GetRowUpb()
const {
return fRowUpb; }
71 inline Int_t GetColLwb()
const {
return fColLwb; }
72 inline Int_t GetColUpb()
const {
return fColUpb; }
74 ClassDef(TMatrixTLazy,3)
86 template<
class Element>
class TMatrixTSymLazy :
public TObject {
88 friend class TMatrixTBase<Element>;
89 friend class TMatrixTSym <Element>;
90 friend class TVectorT <Element>;
96 TMatrixTSymLazy(
const TMatrixTSymLazy<Element> &) : TObject(), fRowUpb(0),fRowLwb(0) { }
97 void operator=(
const TMatrixTSymLazy<Element> &) { }
100 virtual void FillIn(TMatrixTSym<Element> &m)
const = 0;
103 TMatrixTSymLazy() { fRowUpb = fRowLwb = 0; }
104 TMatrixTSymLazy(Int_t nrows)
105 : fRowUpb(nrows-1),fRowLwb(0) { }
106 TMatrixTSymLazy(Int_t row_lwb,Int_t row_upb)
107 : fRowUpb(row_upb),fRowLwb(row_lwb) { }
108 virtual ~TMatrixTSymLazy() {}
110 inline Int_t GetRowLwb()
const {
return fRowLwb; }
111 inline Int_t GetRowUpb()
const {
return fRowUpb; }
113 ClassDef(TMatrixTSymLazy,2)
122 template<
class Element>
class THaarMatrixT:
public TMatrixTLazy<Element> {
125 void FillIn(TMatrixT<Element> &m)
const;
129 THaarMatrixT(Int_t n,Int_t no_cols = 0);
130 virtual ~THaarMatrixT() {}
132 ClassDef(THaarMatrixT,2)
141 template<
class Element>
class THilbertMatrixT :
public TMatrixTLazy<Element> {
144 void FillIn(TMatrixT<Element> &m)
const;
148 THilbertMatrixT(Int_t no_rows,Int_t no_cols);
149 THilbertMatrixT(Int_t row_lwb,Int_t row_upb,Int_t col_lwb,Int_t col_upb);
150 virtual ~THilbertMatrixT() {}
152 ClassDef(THilbertMatrixT,2)
161 template<
class Element>
class THilbertMatrixTSym :
public TMatrixTSymLazy<Element> {
164 void FillIn(TMatrixTSym<Element> &m)
const;
167 THilbertMatrixTSym() {}
168 THilbertMatrixTSym(Int_t no_rows);
169 THilbertMatrixTSym(Int_t row_lwb,Int_t row_upb);
170 virtual ~THilbertMatrixTSym() {}
172 ClassDef(THilbertMatrixTSym,2)