#ifndef ROOT_TMatrixTLazy
#define ROOT_TMatrixTLazy
#ifndef ROOT_TMatrixTBase
#include "TMatrixTBase.h"
#endif
template<class Element> class TVectorT;
template<class Element> class TMatrixTBase;
template<class Element> class TMatrixT;
template<class Element> class TMatrixTSym;
template<class Element> class TMatrixTLazy : public TObject {
friend class TMatrixTBase<Element>;
friend class TMatrixT    <Element>;
friend class TVectorT    <Element>;
protected:
   Int_t fRowUpb;
   Int_t fRowLwb;
   Int_t fColUpb;
   Int_t fColLwb;
   TMatrixTLazy(const TMatrixTLazy<Element> &) : TObject() { }
   void operator=(const TMatrixTLazy<Element> &) { }
private:
   virtual void FillIn(TMatrixT<Element> &m) const = 0;
public:
   TMatrixTLazy() { fRowUpb = fRowLwb = fColUpb = fColLwb = 0; }
   TMatrixTLazy(Int_t nrows, Int_t ncols)
       : fRowUpb(nrows-1),fRowLwb(0),fColUpb(ncols-1),fColLwb(0) { }
   TMatrixTLazy(Int_t row_lwb,Int_t row_upb,Int_t col_lwb,Int_t col_upb)
       : fRowUpb(row_upb),fRowLwb(row_lwb),fColUpb(col_upb),fColLwb(col_lwb) { }
   virtual ~TMatrixTLazy() {}
   inline Int_t GetRowLwb() const { return fRowLwb; }
   inline Int_t GetRowUpb() const { return fRowUpb; }
   inline Int_t GetColLwb() const { return fColLwb; }
   inline Int_t GetColUpb() const { return fColUpb; }
   ClassDef(TMatrixTLazy,3)  
};
template<class Element> class TMatrixTSymLazy : public TObject {
friend class TMatrixTBase<Element>;
friend class TMatrixTSym <Element>;
friend class TVectorT    <Element>;
protected:
   Int_t fRowUpb;
   Int_t fRowLwb;
   TMatrixTSymLazy(const TMatrixTSymLazy<Element> &) : TObject() { }
   void operator=(const TMatrixTSymLazy<Element> &) { }
private:
   virtual void FillIn(TMatrixTSym<Element> &m) const = 0;
public:
   TMatrixTSymLazy() { fRowUpb = fRowLwb = 0; }
   TMatrixTSymLazy(Int_t nrows)
       : fRowUpb(nrows-1),fRowLwb(0) { }
   TMatrixTSymLazy(Int_t row_lwb,Int_t row_upb)
       : fRowUpb(row_upb),fRowLwb(row_lwb) { }
   virtual ~TMatrixTSymLazy() {}
   inline Int_t GetRowLwb() const { return fRowLwb; }
   inline Int_t GetRowUpb() const { return fRowUpb; }
   ClassDef(TMatrixTSymLazy,2)  
};
template<class Element> class THaarMatrixT: public TMatrixTLazy<Element> {
private:
   void FillIn(TMatrixT<Element> &m) const;
public:
   THaarMatrixT() {}
   THaarMatrixT(Int_t n,Int_t no_cols = 0);
   virtual ~THaarMatrixT() {}
   ClassDef(THaarMatrixT,2)  
};
template<class Element> class THilbertMatrixT : public TMatrixTLazy<Element> {
private:
   void FillIn(TMatrixT<Element> &m) const;
public:
   THilbertMatrixT() {}
   THilbertMatrixT(Int_t no_rows,Int_t no_cols);
   THilbertMatrixT(Int_t row_lwb,Int_t row_upb,Int_t col_lwb,Int_t col_upb);
   virtual ~THilbertMatrixT() {}
   ClassDef(THilbertMatrixT,2)  
};
template<class Element> class THilbertMatrixTSym : public TMatrixTSymLazy<Element> {
private:
   void FillIn(TMatrixTSym<Element> &m) const;
public:
   THilbertMatrixTSym() {}
   THilbertMatrixTSym(Int_t no_rows);
   THilbertMatrixTSym(Int_t row_lwb,Int_t row_upb);
   virtual ~THilbertMatrixTSym() {}
  
   ClassDef(THilbertMatrixTSym,2)  
};
#endif
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.