ROOT » MATH » MATRIX » TMatrixT<double>

class TMatrixT<double>: public TMatrixTBase<double>


TMatrixT

Template class of a general matrix in the linear algebra package


This class is also known as (typedefs to this class)

TMatrixD, TMatrixD

Function Members (Methods)

public:
virtual~TMatrixT<double>()
virtual TMatrixTBase<double>&TMatrixTBase<double>::Abs()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual TMatrixTBase<double>&TMatrixTBase<double>::Apply(const TElementActionT<double>& action)
virtual TMatrixTBase<double>&TMatrixTBase<double>::Apply(const TElementPosActionT<double>& action)
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual doubleTMatrixTBase<double>::ColNorm() const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Double_tDeterminant() const
virtual voidDeterminant(Double_t& d1, Double_t& d2) const
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTMatrixTBase<double>::Draw(Option_t* option = "")MENU
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual doubleTMatrixTBase<double>::E2Norm() const
const TMatrixT<double>EigenVectors(TVectorT<double>& eigenValues) const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTMatrixTBase<double>::ExtractRow(Int_t row, Int_t col, double* v, Int_t n = -1) const
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual const Int_t*GetColIndexArray() const
virtual Int_t*GetColIndexArray()
Int_tTMatrixTBase<double>::GetColLwb() const
Int_tTMatrixTBase<double>::GetColUpb() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual voidTMatrixTBase<double>::GetMatrix2Array(double* data, Option_t* option = "") const
virtual const double*GetMatrixArray() const
virtual double*GetMatrixArray()
virtual const char*TObject::GetName() const
Int_tTMatrixTBase<double>::GetNcols() const
Int_tTMatrixTBase<double>::GetNoElements() const
Int_tTMatrixTBase<double>::GetNrows() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const Int_t*GetRowIndexArray() const
virtual Int_t*GetRowIndexArray()
Int_tTMatrixTBase<double>::GetRowLwb() const
Int_tTMatrixTBase<double>::GetRowUpb() const
TMatrixT<double>GetSub(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Option_t* option = "S") const
virtual TMatrixTBase<double>&GetSub(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, TMatrixTBase<double>& target, Option_t* option = "S") const
virtual const char*TObject::GetTitle() const
doubleTMatrixTBase<double>::GetTol() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual TMatrixTBase<double>&TMatrixTBase<double>::InsertRow(Int_t row, Int_t col, const double* v, Int_t n = -1)
virtual voidTObject::Inspect() constMENU
voidTMatrixTBase<double>::Invalidate()
TMatrixT<double>&Invert(Double_t* det = 0)
voidTObject::InvertBit(UInt_t f)
TMatrixT<double>&InvertFast(Double_t* det = 0)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
Bool_tTMatrixTBase<double>::IsOwner() const
virtual Bool_tTObject::IsSortable() const
virtual Bool_tTMatrixTBase<double>::IsSymmetric() const
Bool_tTMatrixTBase<double>::IsValid() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTMatrixTBase<double>::MakeValid()
virtual doubleTMatrixTBase<double>::Max() const
voidTObject::MayNotUse(const char* method) const
virtual doubleTMatrixTBase<double>::Min() const
voidMinus(const TMatrixT<double>& a, const TMatrixT<double>& b)
voidMinus(const TMatrixT<double>& a, const TMatrixTSym<double>& b)
voidMinus(const TMatrixTSym<double>& a, const TMatrixT<double>& b)
voidMult(const TMatrixT<double>& a, const TMatrixT<double>& b)
voidMult(const TMatrixT<double>& a, const TMatrixTSym<double>& b)
voidMult(const TMatrixTSym<double>& a, const TMatrixT<double>& b)
voidMult(const TMatrixTSym<double>& a, const TMatrixTSym<double>& b)
voidMultT(const TMatrixT<double>& a, const TMatrixT<double>& b)
voidMultT(const TMatrixT<double>& a, const TMatrixTSym<double>& b)
voidMultT(const TMatrixTSym<double>& a, const TMatrixT<double>& b)
voidMultT(const TMatrixTSym<double>& a, const TMatrixTSym<double>& b)
virtual Int_tTMatrixTBase<double>::NonZeros() const
doubleTMatrixTBase<double>::Norm1() const
TMatrixT<double>&NormByColumn(const TVectorT<double>& v, Option_t* option = "D")
virtual TMatrixTBase<double>&TMatrixTBase<double>::NormByDiag(const TVectorT<double>& v, Option_t* option = "D")
TMatrixT<double>&NormByRow(const TVectorT<double>& v, Option_t* option = "D")
doubleTMatrixTBase<double>::NormInf() const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
Bool_tTMatrixTBase<double>::operator!=(double val) const
virtual doubleoperator()(Int_t rown, Int_t coln) const
virtual double&operator()(Int_t rown, Int_t coln)
TMatrixT<double>&operator*=(double val)
TMatrixT<double>&operator*=(const TMatrixT<double>& source)
TMatrixT<double>&operator*=(const TMatrixTSym<double>& source)
TMatrixT<double>&operator*=(const TMatrixTDiag_const<double>& diag)
TMatrixT<double>&operator*=(const TMatrixTRow_const<double>& row)
TMatrixT<double>&operator*=(const TMatrixTColumn_const<double>& col)
TMatrixT<double>&operator+=(double val)
TMatrixT<double>&operator+=(const TMatrixT<double>& source)
TMatrixT<double>&operator+=(const TMatrixTSym<double>& source)
TMatrixT<double>&operator-=(double val)
TMatrixT<double>&operator-=(const TMatrixT<double>& source)
TMatrixT<double>&operator-=(const TMatrixTSym<double>& source)
TMatrixT<double>&operator/=(const TMatrixTDiag_const<double>& diag)
TMatrixT<double>&operator/=(const TMatrixTRow_const<double>& row)
TMatrixT<double>&operator/=(const TMatrixTColumn_const<double>& col)
Bool_tTMatrixTBase<double>::operator<(double val) const
Bool_tTMatrixTBase<double>::operator<=(double val) const
TMatrixT<double>&operator=(const TMatrixT<double>& source)
TMatrixT<double>&operator=(const TMatrixTSym<double>& source)
TMatrixT<double>&operator=(const TMatrixTSparse<double>& source)
TMatrixT<double>&operator=(const TMatrixTLazy<double>& source)
TMatrixT<double>&operator=(double val)
TMatrixT<double>&operator=<double>(const TMatrixT<double>& source)
Bool_tTMatrixTBase<double>::operator==(double val) const
Bool_tTMatrixTBase<double>::operator>(double val) const
Bool_tTMatrixTBase<double>::operator>=(double val) const
const TMatrixTRow_const<double>operator[](Int_t rown) const
TMatrixTRow<double>operator[](Int_t rown)
virtual voidTObject::Paint(Option_t* option = "")
voidPlus(const TMatrixT<double>& a, const TMatrixT<double>& b)
voidPlus(const TMatrixT<double>& a, const TMatrixTSym<double>& b)
voidPlus(const TMatrixTSym<double>& a, const TMatrixT<double>& b)
virtual voidTObject::Pop()
virtual voidTMatrixTBase<double>::Print(Option_t* name = "") constMENU
virtual TMatrixTBase<double>&TMatrixTBase<double>::Randomize(double alpha, double beta, Double_t& seed)
TMatrixT<double>&Rank1Update(const TVectorT<double>& v, double alpha = 1.)
TMatrixT<double>&Rank1Update(const TVectorT<double>& v1, const TVectorT<double>& v2, double alpha = 1.)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
TMatrixTBase<double>&ResizeTo(const TMatrixT<double>& m)
virtual TMatrixTBase<double>&ResizeTo(Int_t nrows, Int_t ncols, Int_t = -1)
virtual TMatrixTBase<double>&ResizeTo(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Int_t = -1)
virtual doubleTMatrixTBase<double>::RowNorm() const
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual TMatrixTBase<double>&SetColIndexArray(Int_t*)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual TMatrixTBase<double>&TMatrixTBase<double>::SetMatrixArray(const double* data, Option_t* option = "")
static voidTObject::SetObjectStat(Bool_t stat)
virtual TMatrixTBase<double>&SetRowIndexArray(Int_t*)
virtual TMatrixTBase<double>&SetSub(Int_t row_lwb, Int_t col_lwb, const TMatrixTBase<double>& source)
doubleTMatrixTBase<double>::SetTol(double tol)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual TMatrixTBase<double>&TMatrixTBase<double>::Shift(Int_t row_shift, Int_t col_shift)
virtual voidShowMembers(TMemberInspector& insp) const
doubleSimilarity(const TVectorT<double>& v) const
virtual TMatrixTBase<double>&TMatrixTBase<double>::Sqr()
virtual TMatrixTBase<double>&TMatrixTBase<double>::Sqrt()
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual doubleTMatrixTBase<double>::Sum() const
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
TMatrixT<double>&T()
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
TMatrixT<double>()
TMatrixT<double>(const TMatrixT<double>& another)
TMatrixT<double>(const TMatrixTSym<double>& another)
TMatrixT<double>(const TMatrixTSparse<double>& another)
TMatrixT<double>(const TMatrixT<double>& another)
TMatrixT<double>(const TMatrixTLazy<double>& lazy_constructor)
TMatrixT<double>(Int_t nrows, Int_t ncols)
TMatrixT<double>(TMatrixT<double>::EMatrixCreatorsOp1 op, const TMatrixT<double>& prototype)
TMatrixT<double>(const TMatrixT<double>& a, TMatrixT<double>::EMatrixCreatorsOp2 op, const TMatrixT<double>& b)
TMatrixT<double>(const TMatrixT<double>& a, TMatrixT<double>::EMatrixCreatorsOp2 op, const TMatrixTSym<double>& b)
TMatrixT<double>(const TMatrixTSym<double>& a, TMatrixT<double>::EMatrixCreatorsOp2 op, const TMatrixT<double>& b)
TMatrixT<double>(const TMatrixTSym<double>& a, TMatrixT<double>::EMatrixCreatorsOp2 op, const TMatrixTSym<double>& b)
TMatrixT<double>(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb)
TMatrixT<double>(Int_t nrows, Int_t ncols, const double* data, Option_t* option = "")
TMatrixT<double>(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, const double* data, Option_t* option = "")
voidTMult(const TMatrixT<double>& a, const TMatrixT<double>& b)
voidTMult(const TMatrixT<double>& a, const TMatrixTSym<double>& b)
voidTMult(const TMatrixTSym<double>& a, const TMatrixT<double>& b)
voidTMult(const TMatrixTSym<double>& a, const TMatrixTSym<double>& b)
TMatrixT<double>&Transpose(const TMatrixT<double>& source)
virtual TMatrixTBase<double>&TMatrixTBase<double>::UnitMatrix()
TMatrixT<double>&Use(TMatrixT<double>& a)
const TMatrixT<double>&Use(const TMatrixT<double>& a) const
TMatrixT<double>&Use(Int_t nrows, Int_t ncols, double* data)
const TMatrixT<double>&Use(Int_t nrows, Int_t ncols, const double* data) const
TMatrixT<double>&Use(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, double* data)
const TMatrixT<double>&Use(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, const double* data) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual TMatrixTBase<double>&TMatrixTBase<double>::Zero()
protected:
voidAllocate(Int_t nrows, Int_t ncols, Int_t row_lwb = 0, Int_t col_lwb = 0, Int_t init = 0, Int_t = -1)
voidDelete_m(Int_t size, double*&)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
static voidTMatrixTBase<double>::DoubleLexSort(Int_t n, Int_t* first, Int_t* second, double* data)
static voidTMatrixTBase<double>::IndexedLexSort(Int_t n, Int_t* first, Int_t swapFirst, Int_t* second, Int_t swapSecond, Int_t* index)
voidTObject::MakeZombie()
Int_tMemcpy_m(double* newp, const double* oldp, Int_t copySize, Int_t newSize, Int_t oldSize)
static double&NaNValue()
double*New_m(Int_t size)

Data Members

public:
static TMatrixT<double>::EMatrixCreatorsOp1kAtA
static TObject::<anonymous>TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TMatrixT<double>::EMatrixCreatorsOp2kInvMult
static TObject::EStatusBitsTObject::kInvalidObject
static TMatrixT<double>::EMatrixCreatorsOp1kInverted
static TObject::<anonymous>TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TMatrixT<double>::EMatrixCreatorsOp2kMinus
static TMatrixT<double>::EMatrixCreatorsOp2kMult
static TMatrixT<double>::EMatrixCreatorsOp2kMultTranspose
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::<anonymous>TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::<anonymous>TObject::kOverwrite
static TMatrixT<double>::EMatrixCreatorsOp2kPlus
static TObject::<anonymous>TObject::kSingleKey
static TMatrixT<double>::EMatrixCreatorsOp2kTransposeMult
static TMatrixT<double>::EMatrixCreatorsOp1kTransposed
static TMatrixT<double>::EMatrixCreatorsOp1kUnit
static TMatrixT<double>::<anonymous>kWorkMax
static TObject::<anonymous>TObject::kWriteDelete
static TMatrixT<double>::EMatrixCreatorsOp1kZero
static TObject::<anonymous>TObject::kZombie
protected:
Int_tTMatrixTBase<double>::fColLwblower bound of the col index
doublefDataStack[25]! data container
double*fElements[fNelems] elements themselves
Bool_tTMatrixTBase<double>::fIsOwner!default kTRUE, when Use array kFALSE
Int_tTMatrixTBase<double>::fNcolsnumber of columns
Int_tTMatrixTBase<double>::fNelemsnumber of elements in matrix
Int_tTMatrixTBase<double>::fNrowIndexlength of row index array (= fNrows+1) wich is only used for sparse matrices
Int_tTMatrixTBase<double>::fNrowsnumber of rows
Int_tTMatrixTBase<double>::fRowLwblower bound of the row index
doubleTMatrixTBase<double>::fTolsqrt(epsilon); epsilon is smallest number number so that 1+epsilon > 1
static TMatrixTBase<double>::<anonymous>TMatrixTBase<double>::kSizeMax
static TMatrixTBase<double>::EMatrixStatusBitsTMatrixTBase<double>::kStatus
static TMatrixTBase<double>::<anonymous>TMatrixTBase<double>::kWorkMax

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void TMatrixT<Element> Delete_m(Int_t size, double*& )
 Delete data pointer m, if it was assigned on the heap
Element* TMatrixT<Element> New_m(Int_t size)
 Return data pointer . if requested size <= kSizeMax, assign pointer
 to the stack space
Int_t TMatrixT<Element> Memcpy_m(double* newp, const double* oldp, Int_t copySize, Int_t newSize, Int_t oldSize)
 Copy copySize doubles from *oldp to *newp . However take care of the
 situation where both pointers are assigned to the same stack space
void TMatrixT<Element> Allocate(Int_t nrows, Int_t ncols, Int_t row_lwb = 0, Int_t col_lwb = 0, Int_t init = 0, Int_t = -1)
 Allocate new matrix. Arguments are number of rows, columns, row
 lowerbound (0 default) and column lowerbound (0 default).
void TMatrixT<Element> Plus(const TMatrixT<Element> &a,const TMatrixT<Element> &b)
 General matrix summation. Create a matrix C such that C = A + B.
void TMatrixT<Element> Plus(const TMatrixT<Element> &a,const TMatrixTSym<Element> &b)
 General matrix summation. Create a matrix C such that C = A + B.
void TMatrixT<Element> Minus(const TMatrixT<Element> &a,const TMatrixT<Element> &b)
 General matrix summation. Create a matrix C such that C = A - B.
void TMatrixT<Element> Minus(const TMatrixT<Element> &a,const TMatrixTSym<Element> &b)
 General matrix summation. Create a matrix C such that C = A - B.
void TMatrixT<Element> Mult(const TMatrixT<Element> &a,const TMatrixT<Element> &b)
 General matrix multiplication. Create a matrix C such that C = A * B.
void TMatrixT<Element> Mult(const TMatrixTSym<Element> &a,const TMatrixT<Element> &b)
 Matrix multiplication, with A symmetric and B general.
 Create a matrix C such that C = A * B.
void TMatrixT<Element> Mult(const TMatrixT<Element> &a,const TMatrixTSym<Element> &b)
 Matrix multiplication, with A general and B symmetric.
 Create a matrix C such that C = A * B.
void TMatrixT<Element> Mult(const TMatrixTSym<Element> &a,const TMatrixTSym<Element> &b)
 Matrix multiplication, with A symmetric and B symmetric.
 (Actually copied for the moment routine for B general)
 Create a matrix C such that C = A * B.
void TMatrixT<Element> TMult(const TMatrixT<Element> &a,const TMatrixT<Element> &b)
 Create a matrix C such that C = A' * B. In other words,
 c[i,j] = SUM{ a[k,i] * b[k,j] }.
void TMatrixT<Element> TMult(const TMatrixT<Element> &a,const TMatrixTSym<Element> &b)
 Create a matrix C such that C = A' * B. In other words,
 c[i,j] = SUM{ a[k,i] * b[k,j] }.
void TMatrixT<Element> MultT(const TMatrixT<Element> &a,const TMatrixT<Element> &b)
 General matrix multiplication. Create a matrix C such that C = A * B^T.
void TMatrixT<Element> MultT(const TMatrixTSym<Element> &a,const TMatrixT<Element> &b)
 Matrix multiplication, with A symmetric and B general.
 Create a matrix C such that C = A * B^T.
TMatrixT<Element> &TMatrixT<Element> Use(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, double* data)
 Use the array data to fill the matrix ([row_lwb..row_upb] x [col_lwb..col_upb])
TMatrixTBase<Element> &TMatrixT<Element> GetSub(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, TMatrixTBase<double>& target, Option_t* option = "S") const
 Get submatrix [row_lwb..row_upb] x [col_lwb..col_upb]; The indexing range of the
 returned matrix depends on the argument option:

 option == "S" : return [0..row_upb-row_lwb][0..col_upb-col_lwb] (default)
 else          : return [row_lwb..row_upb][col_lwb..col_upb]
TMatrixTBase<Element> &TMatrixT<Element> SetSub(Int_t row_lwb, Int_t col_lwb, const TMatrixTBase<double>& source)
 Insert matrix source starting at [row_lwb][col_lwb], thereby overwriting the part
 [row_lwb..row_lwb+nrows_source][col_lwb..col_lwb+ncols_source];
TMatrixTBase<Element> &TMatrixT<Element> ResizeTo(Int_t nrows, Int_t ncols, Int_t = -1)
 Set size of the matrix to nrows x ncols
 New dynamic elements are created, the overlapping part of the old ones are
 copied to the new structures, then the old elements are deleted.
TMatrixTBase<Element> &TMatrixT<Element> ResizeTo(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Int_t = -1)
 Set size of the matrix to [row_lwb:row_upb] x [col_lwb:col_upb]
 New dynamic elemenst are created, the overlapping part of the old ones are
 copied to the new structures, then the old elements are deleted.
Double_t TMatrixT<Element> Determinant() const
 Return the matrix determinant
void TMatrixT<Element> Determinant(Double_t& d1, Double_t& d2) const
 Return the matrix determinant as d1,d2 where det = d1*TMath::Power(2.0,d2)
TMatrixT<Double_t> &TMatrixT<Double_t> Invert(Double_t* det = 0)
 Invert the matrix and calculate its determinant
TMatrixT<Element> &TMatrixT<Element> InvertFast(Double_t* det = 0)
 Invert the matrix and calculate its determinant, however upto (6x6)
 a fast Cramer inversion is used .
TMatrixT<Element> &TMatrixT<Element> Transpose(const TMatrixT<double>& source)
 Transpose matrix source.
TMatrixT<Element> &TMatrixT<Element> Rank1Update(const TVectorT<double>& v, double alpha = 1.)
 Perform a rank 1 operation on matrix A:
     A += alpha * v * v^T
TMatrixT<Element> &TMatrixT<Element> Rank1Update(const TVectorT<double>& v1, const TVectorT<double>& v2, double alpha = 1.)
 Perform a rank 1 operation on matrix A:
     A += alpha * v1 * v2^T
Element TMatrixT<Element> Similarity(const TVectorT<double>& v) const
 Calculate scalar v * (*this) * v^T
TMatrixT<Element> &TMatrixT<Element> NormByColumn(const TVectorT<double>& v, Option_t* option = "D")
 Multiply/divide matrix columns by a vector:
 option:
 "D"   :  b(i,j) = a(i,j)/v(i)   i = 0,fNrows-1 (default)
 else  :  b(i,j) = a(i,j)*v(i)
TMatrixT<Element> &TMatrixT<Element> NormByRow(const TVectorT<double>& v, Option_t* option = "D")
 Multiply/divide matrix rows with a vector:
 option:
 "D"   :  b(i,j) = a(i,j)/v(j)   i = 0,fNcols-1 (default)
 else  :  b(i,j) = a(i,j)*v(j)
TMatrixT<Element> &TMatrixT<Element> operator=(const TMatrixT<Element> &source)
 Assignment operator
TMatrixT<Element> &TMatrixT<Element> operator=(const TMatrixTSym<Element> &source)
 Assignment operator
TMatrixT<Element> &TMatrixT<Element> operator=(const TMatrixTSparse<Element> &source)
 Assignment operator
TMatrixT<Element> &TMatrixT<Element> operator=(const TMatrixTLazy<Element> &lazy_constructor)
 Assignment operator
TMatrixT<Element> &TMatrixT<Element> operator=(Element val)
 Assign val to every element of the matrix.
TMatrixT<Element> &TMatrixT<Element> operator+=(Element val)
 Add val to every element of the matrix.
TMatrixT<Element> &TMatrixT<Element> operator-=(Element val)
 Subtract val from every element of the matrix.
TMatrixT<Element> &TMatrixT<Element> operator*=(Element val)
 Multiply every element of the matrix with val.
TMatrixT<Element> &TMatrixT<Element> operator+=(const TMatrixT<Element> &source)
 Add the source matrix.
TMatrixT<Element> &TMatrixT<Element> operator+=(const TMatrixTSym<Element> &source)
 Add the source matrix.
TMatrixT<Element> &TMatrixT<Element> operator-=(const TMatrixT<Element> &source)
 Subtract the source matrix.
TMatrixT<Element> &TMatrixT<Element> operator-=(const TMatrixTSym<Element> &source)
 Subtract the source matrix.
TMatrixT<Element> &TMatrixT<Element> operator*=(const TMatrixT<Element> &source)
 Compute target = target * source inplace. Strictly speaking, it can't be
 done inplace, though only the row of the target matrix needs to be saved.
 "Inplace" multiplication is only allowed when the 'source' matrix is square.
TMatrixT<Element> &TMatrixT<Element> operator*=(const TMatrixTSym<Element> &source)
 Compute target = target * source inplace. Strictly speaking, it can't be
 done inplace, though only the row of the target matrix needs to be saved.
TMatrixT<Element> &TMatrixT<Element> operator*=(const TMatrixTDiag_const<Element> &diag)
 Multiply a matrix row by the diagonal of another matrix
 matrix(i,j) *= diag(j), j=0,fNcols-1
TMatrixT<Element> &TMatrixT<Element> operator/=(const TMatrixTDiag_const<Element> &diag)
 Divide a matrix row by the diagonal of another matrix
 matrix(i,j) /= diag(j)
TMatrixT<Element> &TMatrixT<Element> operator*=(const TMatrixTColumn_const<Element> &col)
 Multiply a matrix by the column of another matrix
 matrix(i,j) *= another(i,k) for fixed k
TMatrixT<Element> &TMatrixT<Element> operator/=(const TMatrixTColumn_const<Element> &col)
 Divide a matrix by the column of another matrix
 matrix(i,j) /= another(i,k) for fixed k
TMatrixT<Element> &TMatrixT<Element> operator*=(const TMatrixTRow_const<Element> &row)
 Multiply a matrix by the row of another matrix
 matrix(i,j) *= another(k,j) for fixed k
TMatrixT<Element> &TMatrixT<Element> operator/=(const TMatrixTRow_const<Element> &row)
 Divide a matrix by the row of another matrix
 matrix(i,j) /= another(k,j) for fixed k
const TMatrixT<Element> TMatrixT<Element> EigenVectors(TVectorT<double>& eigenValues) const
 Return a matrix containing the eigen-vectors ordered by descending values
 of Re^2+Im^2 of the complex eigen-values .
 If the matrix is asymmetric, only the real part of the eigen-values is
 returned . For full functionality use TMatrixDEigen .
void TMatrixT<Element> Streamer(TBuffer& )
 Stream an object of class TMatrixT.
Element & TMatrixT<Element> NaNValue()
template <class Element> inline const Element *TMatrixT<Element> GetMatrixArray() const
{ return fElements; }
template <class Element> inline Element *TMatrixT<Element> GetMatrixArray()
{ return fElements; }
template <class Element> inline TMatrixT<Element> &TMatrixT<Element> Use(Int_t nrows, Int_t ncols, double* data)
{ return Use(0,nrows-1,0,ncols-1,data); }
template <class Element> inline const TMatrixT<Element> &TMatrixT<Element> Use(Int_t nrows, Int_t ncols, const double* data) const
{ return Use(0,nrows-1,0,ncols-1,data); }
template <class Element> inline TMatrixT<Element> &TMatrixT<Element> Use(TMatrixT<double>& a)
template <class Element> inline const TMatrixT<Element> &TMatrixT<Element> Use(const TMatrixT<double>& a) const
template <class Element> inline TMatrixT<Element> TMatrixT<Element> GetSub(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Option_t* option = "S") const
template <class Element> inline Element TMatrixT<Element> operator()(Int_t rown, Int_t coln) const
template <class Element> inline Element &TMatrixT<Element> operator()(Int_t rown, Int_t coln)
void Plus(const TMatrixT <Element> &a,const TMatrixT <Element> &b)
 Elementary constructors
void Minus(const TMatrixT <Element> &a,const TMatrixT <Element> &b)
void TMult(const TMatrixT <Element> &a,const TMatrixT <Element> &b)
void TMult(const TMatrixT <Element> &a,const TMatrixTSym<Element> &b)
void MultT(const TMatrixT <Element> &a,const TMatrixT <Element> &b)
void MultT(const TMatrixT <Element> &a,const TMatrixTSym<Element> &b)
{ Mult(a,b); }
const Int_t * GetRowIndexArray() const
{ return 0; }
Int_t * GetRowIndexArray()
{ return 0; }
const Int_t * GetColIndexArray() const
{ return 0; }
Int_t * GetColIndexArray()
{ return 0; }
TMatrixTBase<Element> & SetRowIndexArray(Int_t* )
{ MayNotUse("SetRowIndexArray(Int_t *)"); return *this; }
TMatrixTBase<Element> & SetColIndexArray(Int_t* )
{ MayNotUse("SetColIndexArray(Int_t *)"); return *this; }
void Clear(Option_t* = "")
TMatrixT <Element> & Use(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, double* data)
TMatrixTBase<Element> & ResizeTo(Int_t nrows, Int_t ncols, Int_t = -1)
const TMatrixTRow_const<Element> operator[](Int_t rown) const
 or as a[i][j]
{ return TMatrixTRow_const<Element>(*this,rown); }
TMatrixTRow <Element> operator[](Int_t rown)
{ return TMatrixTRow <Element>(*this,rown); }