Logo ROOT  
Reference Guide
TMatrixTSym Class Reference

TMatrixTSym

Template class of a symmetric matrix in the linear algebra package.

See The ROOT Matrix Linear Algebra classes. for the documentation of the linear algebra package.

Note that in this implementation both matrix element m[i][j] and m[j][i] are updated and stored in memory . However, when making the object persistent only the upper right triangle is stored .

Definition at line 22 of file TMatrixDSymfwd.h.

Public Types

enum  { kWorkMax = 100 }
 
enum  EMatrixCreatorsOp1 {
  kZero, kUnit, kTransposed, kInverted,
  kAtA
}
 
enum  EMatrixCreatorsOp2 { kPlus, kMinus }
 

Public Member Functions

 TMatrixTSym ()
 
 TMatrixTSym (const TMatrixTSym< Element > &a, EMatrixCreatorsOp2 op, const TMatrixTSym< Element > &b)
 
template<class Element >
 TMatrixTSym (const TMatrixTSym< Element > &a, EMatrixCreatorsOp2 op, const TMatrixTSym< Element > &b)
 
 TMatrixTSym (const TMatrixTSym< Element > &another)
 
template<class Element >
 TMatrixTSym (const TMatrixTSym< Element > &another)
 
template<class Element2 >
 TMatrixTSym (const TMatrixTSym< Element2 > &another)
 
 TMatrixTSym (const TMatrixTSymLazy< Element > &lazy_constructor)
 
template<class Element >
 TMatrixTSym (const TMatrixTSymLazy< Element > &lazy_constructor)
 
 TMatrixTSym (EMatrixCreatorsOp1 op, const TMatrixT< Element > &prototype)
 
template<class Element >
 TMatrixTSym (EMatrixCreatorsOp1 op, const TMatrixT< Element > &prototype)
 
 TMatrixTSym (EMatrixCreatorsOp1 op, const TMatrixTSym< Element > &prototype)
 
template<class Element >
 TMatrixTSym (EMatrixCreatorsOp1 op, const TMatrixTSym< Element > &prototype)
 Create a matrix applying a specific operation to the prototype. More...
 
template<class Element >
 TMatrixTSym (Int_t no_rows)
 
template<class Element >
 TMatrixTSym (Int_t no_rows, const Element *elements, Option_t *option)
 option= More...
 
 TMatrixTSym (Int_t nrows)
 
 TMatrixTSym (Int_t nrows, const Element *data, Option_t *option="")
 
template<class Element >
 TMatrixTSym (Int_t row_lwb, Int_t row_upb)
 
 TMatrixTSym (Int_t row_lwb, Int_t row_upb)
 
 TMatrixTSym (Int_t row_lwb, Int_t row_upb, const Element *data, Option_t *option="")
 
template<class Element >
 TMatrixTSym (Int_t row_lwb, Int_t row_upb, const Element *elements, Option_t *option)
 array elements are copied More...
 
virtual ~TMatrixTSym ()
 
TMatrixTBase< Element > & Apply (const TElementActionT< Element > &action)
 
TMatrixTBase< Element > & Apply (const TElementPosActionT< Element > &action)
 Apply action to each element of the matrix. More...
 
TClassClass ()
 
virtual void Clear (Option_t *="")
 
virtual Double_t Determinant () const
 
virtual void Determinant (Double_t &d1, Double_t &d2) const
 
const TMatrixT< Element > EigenVectors (TVectorT< Element > &eigenValues) const
 Return a matrix containing the eigen-vectors ordered by descending eigen-values. More...
 
virtual Int_tGetColIndexArray ()
 
virtual const Int_tGetColIndexArray () const
 
virtual Element * GetMatrixArray ()
 
virtual const Element * GetMatrixArray () const
 
virtual Int_tGetRowIndexArray ()
 
virtual const Int_tGetRowIndexArray () const
 
TMatrixTSym< Element > GetSub (Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Option_t *option="S") const
 
virtual TMatrixTBase< Element > & GetSub (Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, TMatrixTBase< Element > &target, Option_t *option="S") const
 
TMatrixTSym< Element > & GetSub (Int_t row_lwb, Int_t row_upb, TMatrixTSym< Element > &target, Option_t *option="S") const
 
TMatrixTSym< Element > & Invert (Double_t *det=0)
 Invert the matrix and calculate its determinant Notice that the LU decomposition is used instead of Bunch-Kaufman Bunch-Kaufman guarantees a symmetric inverted matrix but is slower than LU . More...
 
TMatrixTSym< Element > & InvertFast (Double_t *det=0)
 Invert the matrix and calculate its determinant. More...
 
virtual Bool_t IsSymmetric () const
 
void Minus (const TMatrixTSym< Element > &a, const TMatrixTSym< Element > &b)
 Symmetric matrix summation. Create a matrix C such that C = A + B. More...
 
void Mult (const TMatrixTSym< Element > &a)
 
Element & operator() (Int_t rown, Int_t coln)
 
Element operator() (Int_t rown, Int_t coln) const
 
TMatrixTSym< Element > & operator*= (Element val)
 Multiply every element of the matrix with val. More...
 
TMatrixTSymoperator+= (const TMatrixTSym &source)
 
TMatrixTSym< Element > & operator+= (Element val)
 Add val to every element of the matrix. More...
 
TMatrixTSymoperator-= (const TMatrixTSym &source)
 
TMatrixTSym< Element > & operator-= (Element val)
 Subtract val from every element of the matrix. More...
 
TMatrixTSym< Element > & operator= (const TMatrixTSym< Element > &source)
 
template<class Element >
TMatrixTSym< Element > & operator= (const TMatrixTSym< Element > &source)
 
template<class Element2 >
TMatrixTSym< Element > & operator= (const TMatrixTSym< Element2 > &source)
 
template<class Element >
TMatrixTSym< Element > & operator= (const TMatrixTSymLazy< Element > &lazy_constructor)
 
TMatrixTSym< Element > & operator= (const TMatrixTSymLazy< Element > &source)
 
TMatrixTSym< Element > & operator= (Element val)
 
template<class Element >
TMatrixTSym< Element > & operator= (Element val)
 Assign val to every element of the matrix. More...
 
TMatrixTRow< Element > operator[] (Int_t rown)
 
const TMatrixTRow_const< Element > operator[] (Int_t rown) const
 
void Plus (const TMatrixTSym< Element > &a, const TMatrixTSym< Element > &b)
 Symmetric matrix summation. Create a matrix C such that C = A + B. More...
 
virtual TMatrixTBase< Element > & Randomize (Element alpha, Element beta, Double_t &seed)
 randomize matrix element values but keep matrix symmetric More...
 
virtual TMatrixTSym< Element > & RandomizePD (Element alpha, Element beta, Double_t &seed)
 randomize matrix element values but keep matrix symmetric positive definite More...
 
TMatrixTSym< Element > & Rank1Update (const TVectorT< Element > &v, Element alpha=1.0)
 Perform a rank 1 operation on the matrix: A += alpha * v * v^T. More...
 
TMatrixTBase< Element > & ResizeTo (const TMatrixTSym< Element > &m)
 
virtual TMatrixTBase< Element > & ResizeTo (Int_t nrows, Int_t ncols, Int_t=-1)
 
virtual TMatrixTBase< Element > & ResizeTo (Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Int_t=-1)
 
virtual TMatrixTBase< Element > & SetColIndexArray (Int_t *)
 
virtual TMatrixTBase< Element > & SetMatrixArray (const Element *data, Option_t *option="")
 
virtual TMatrixTBase< Element > & SetRowIndexArray (Int_t *)
 
TMatrixTSym< Element > & SetSub (Int_t row_lwb, const TMatrixTBase< Element > &source)
 Insert matrix source starting at [row_lwb][row_lwb], thereby overwriting the part [row_lwb..row_lwb+nrows_source][row_lwb..row_lwb+nrows_source];. More...
 
virtual TMatrixTBase< Element > & SetSub (Int_t row_lwb, Int_t col_lwb, const TMatrixTBase< Element > &source)
 Insert matrix source starting at [row_lwb][col_lwb] in a symmetric fashion, thereby overwriting the part [row_lwb..row_lwb+nrows_source][row_lwb..row_lwb+nrows_source];. More...
 
virtual TMatrixTBase< Element > & Shift (Int_t row_shift, Int_t col_shift)
 
TMatrixTSym< Element > & Similarity (const TMatrixT< Element > &n)
 
TMatrixTSym< Element > & Similarity (const TMatrixTSym< Element > &n)
 
Element Similarity (const TVectorT< Element > &v) const
 Calculate scalar v * (*this) * v^T. More...
 
TMatrixTSym< Element > & SimilarityT (const TMatrixT< Element > &n)
 Calculate B^T * (*this) * B , final matrix will be (ncolsb x ncolsb) It is more efficient than applying the actual multiplication because this routine realizes that the final matrix is symmetric . More...
 
TMatrixTSym< Element > & T ()
 
void TMult (const TMatrixT< Element > &a)
 Create a matrix C such that C = A' * A. More...
 
void TMult (const TMatrixTSym< Element > &a)
 Matrix multiplication, with A symmetric Create a matrix C such that C = A' * A = A * A = A * A'. More...
 
TMatrixTSym< Element > & Transpose (const TMatrixTSym< Element > &source)
 Transpose a matrix. More...
 
const TMatrixTSym< Element > & Use (const TMatrixTSym< Element > &a) const
 
const TMatrixTSym< Element > & Use (Int_t nrows, const Element *data) const
 
TMatrixTSym< Element > & Use (Int_t nrows, Element *data)
 
const TMatrixTSym< Element > & Use (Int_t row_lwb, Int_t row_upb, const Element *data) const
 
TMatrixTSym< Element > & Use (Int_t row_lwb, Int_t row_upb, Element *data)
 
TMatrixTSym< Element > & Use (TMatrixTSym< Element > &a)
 

Protected Member Functions

void 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. More...
 
void Delete_m (Int_t size, Element *&)
 delete data pointer m, if it was assigned on the heap More...
 
Int_t Memcpy_m (Element *newp, const Element *oldp, Int_t copySize, Int_t newSize, Int_t oldSize)
 copy copySize doubles from *oldp to *newp . More...
 
Element * New_m (Int_t size)
 return data pointer . More...
 

Protected Attributes

Element fDataStack [TMatrixTBase< Element >::kSizeMax]
 
Element * fElements
 data container More...
 

#include <TMatrixDSymfwd.h>

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kWorkMax 

Definition at line 50 of file TMatrixTSym.h.

◆ EMatrixCreatorsOp1

Enumerator
kZero 
kUnit 
kTransposed 
kInverted 
kAtA 

Definition at line 51 of file TMatrixTSym.h.

◆ EMatrixCreatorsOp2

Enumerator
kPlus 
kMinus 

Definition at line 52 of file TMatrixTSym.h.

Constructor & Destructor Documentation

◆ TMatrixTSym() [1/20]

TMatrixTSym::TMatrixTSym ( )
inline

Definition at line 54 of file TMatrixTSym.h.

◆ TMatrixTSym() [2/20]

TMatrixTSym::TMatrixTSym ( Int_t  nrows)
explicit

◆ TMatrixTSym() [3/20]

TMatrixTSym::TMatrixTSym ( Int_t  row_lwb,
Int_t  row_upb 
)

◆ TMatrixTSym() [4/20]

TMatrixTSym::TMatrixTSym ( Int_t  nrows,
const Element *  data,
Option_t option = "" 
)

◆ TMatrixTSym() [5/20]

TMatrixTSym::TMatrixTSym ( Int_t  row_lwb,
Int_t  row_upb,
const Element *  data,
Option_t option = "" 
)

◆ TMatrixTSym() [6/20]

TMatrixTSym::TMatrixTSym ( const TMatrixTSym< Element > &  another)

◆ TMatrixTSym() [7/20]

template<class Element2 >
TMatrixTSym::TMatrixTSym ( const TMatrixTSym< Element2 > &  another)
inline

Definition at line 60 of file TMatrixTSym.h.

◆ TMatrixTSym() [8/20]

TMatrixTSym::TMatrixTSym ( EMatrixCreatorsOp1  op,
const TMatrixTSym< Element > &  prototype 
)

◆ TMatrixTSym() [9/20]

TMatrixTSym::TMatrixTSym ( EMatrixCreatorsOp1  op,
const TMatrixT< Element > &  prototype 
)

◆ TMatrixTSym() [10/20]

TMatrixTSym::TMatrixTSym ( const TMatrixTSym< Element > &  a,
EMatrixCreatorsOp2  op,
const TMatrixTSym< Element > &  b 
)

◆ TMatrixTSym() [11/20]

TMatrixTSym::TMatrixTSym ( const TMatrixTSymLazy< Element > &  lazy_constructor)

◆ ~TMatrixTSym()

virtual TMatrixTSym::~TMatrixTSym ( )
inlinevirtual

Definition at line 72 of file TMatrixTSym.h.

◆ TMatrixTSym() [12/20]

template<class Element >
TMatrixTSym::TMatrixTSym ( Int_t  no_rows)

Definition at line 41 of file TMatrixTSym.cxx.

◆ TMatrixTSym() [13/20]

template<class Element >
TMatrixTSym::TMatrixTSym ( Int_t  row_lwb,
Int_t  row_upb 
)

Definition at line 49 of file TMatrixTSym.cxx.

◆ TMatrixTSym() [14/20]

template<class Element >
TMatrixTSym::TMatrixTSym ( Int_t  no_rows,
const Element *  elements,
Option_t option 
)

option=

  • "F": array elements contains the matrix stored column-wise like in Fortran, so a[i,j] = elements[i+no_rows*j],
  • else it is supposed that array elements are stored row-wise a[i,j] = elements[i*no_cols+j]

array elements are copied

Definition at line 65 of file TMatrixTSym.cxx.

◆ TMatrixTSym() [15/20]

template<class Element >
TMatrixTSym::TMatrixTSym ( Int_t  row_lwb,
Int_t  row_upb,
const Element *  elements,
Option_t option 
)

array elements are copied

Definition at line 78 of file TMatrixTSym.cxx.

◆ TMatrixTSym() [16/20]

template<class Element >
TMatrixTSym::TMatrixTSym ( const TMatrixTSym< Element > &  another)

Definition at line 91 of file TMatrixTSym.cxx.

◆ TMatrixTSym() [17/20]

template<class Element >
TMatrixTSym::TMatrixTSym ( EMatrixCreatorsOp1  op,
const TMatrixTSym< Element > &  prototype 
)

Create a matrix applying a specific operation to the prototype.

Example: TMatrixTSym<Element> a(10,12); ...; TMatrixTSym<Element> b(TMatrixT::kTransposed, a); Supported operations are: kZero, kUnit, kTransposed, kInverted and kAtA.

Definition at line 104 of file TMatrixTSym.cxx.

◆ TMatrixTSym() [18/20]

template<class Element >
TMatrixTSym::TMatrixTSym ( EMatrixCreatorsOp1  op,
const TMatrixT< Element > &  prototype 
)

Definition at line 153 of file TMatrixTSym.cxx.

◆ TMatrixTSym() [19/20]

template<class Element >
TMatrixTSym::TMatrixTSym ( const TMatrixTSym< Element > &  a,
EMatrixCreatorsOp2  op,
const TMatrixTSym< Element > &  b 
)

Definition at line 172 of file TMatrixTSym.cxx.

◆ TMatrixTSym() [20/20]

template<class Element >
TMatrixTSym::TMatrixTSym ( const TMatrixTSymLazy< Element > &  lazy_constructor)

Definition at line 200 of file TMatrixTSym.cxx.

Member Function Documentation

◆ Allocate()

void TMatrixTSym::Allocate ( Int_t  no_rows,
Int_t  no_cols,
Int_t  row_lwb = 0,
Int_t  col_lwb = 0,
Int_t  init = 0,
Int_t  = -1 
)
protected

Allocate new matrix.

Arguments are number of rows, columns, row lowerbound (0 default) and column lowerbound (0 default).

Definition at line 274 of file TMatrixTSym.cxx.

◆ Apply() [1/2]

TMatrixTBase< Element > & TMatrixTSym::Apply ( const TElementActionT< Element > &  action)

Definition at line 1553 of file TMatrixTSym.cxx.

◆ Apply() [2/2]

TMatrixTBase< Element > & TMatrixTSym::Apply ( const TElementPosActionT< Element > &  action)

Apply action to each element of the matrix.

To action the location of the current element is passed.

Definition at line 1580 of file TMatrixTSym.cxx.

◆ Class()

TClass * TMatrixTSym< double >::Class ( )

◆ Clear()

virtual void TMatrixTSym::Clear ( Option_t = "")
inlinevirtual

Definition at line 92 of file TMatrixTSym.h.

◆ Delete_m()

void TMatrixTSym::Delete_m ( Int_t  size,
Element *&  m 
)
protected

delete data pointer m, if it was assigned on the heap

Definition at line 215 of file TMatrixTSym.cxx.

◆ Determinant() [1/2]

Double_t TMatrixTSym::Determinant ( ) const
virtual

Definition at line 935 of file TMatrixTSym.cxx.

◆ Determinant() [2/2]

void TMatrixTSym::Determinant ( Double_t d1,
Double_t d2 
) const
virtual

Definition at line 947 of file TMatrixTSym.cxx.

◆ EigenVectors()

const TMatrixT< Element > TMatrixTSym::EigenVectors ( TVectorT< Element > &  eigenValues) const

Return a matrix containing the eigen-vectors ordered by descending eigen-values.

For full functionality use TMatrixDSymEigen .

Definition at line 1681 of file TMatrixTSym.cxx.

◆ GetColIndexArray() [1/2]

virtual Int_t* TMatrixTSym::GetColIndexArray ( )
inlinevirtual

Definition at line 87 of file TMatrixTSym.h.

◆ GetColIndexArray() [2/2]

virtual const Int_t* TMatrixTSym::GetColIndexArray ( ) const
inlinevirtual

Definition at line 86 of file TMatrixTSym.h.

◆ GetMatrixArray() [1/2]

Element * TMatrixTSym::GetMatrixArray ( )
inlinevirtual

Definition at line 190 of file TMatrixTSym.h.

◆ GetMatrixArray() [2/2]

const Element * TMatrixTSym::GetMatrixArray ( ) const
inlinevirtual

Definition at line 189 of file TMatrixTSym.h.

◆ GetRowIndexArray() [1/2]

virtual Int_t* TMatrixTSym::GetRowIndexArray ( )
inlinevirtual

Definition at line 85 of file TMatrixTSym.h.

◆ GetRowIndexArray() [2/2]

virtual const Int_t* TMatrixTSym::GetRowIndexArray ( ) const
inlinevirtual

Definition at line 84 of file TMatrixTSym.h.

◆ GetSub() [1/3]

TMatrixTSym<Element> TMatrixTSym::GetSub ( Int_t  row_lwb,
Int_t  row_upb,
Int_t  col_lwb,
Int_t  col_upb,
Option_t option = "S" 
) const

◆ GetSub() [2/3]

virtual TMatrixTBase<Element>& TMatrixTSym::GetSub ( Int_t  row_lwb,
Int_t  row_upb,
Int_t  col_lwb,
Int_t  col_upb,
TMatrixTBase< Element > &  target,
Option_t option = "S" 
) const
virtual

◆ GetSub() [3/3]

TMatrixTSym<Element>& TMatrixTSym::GetSub ( Int_t  row_lwb,
Int_t  row_upb,
TMatrixTSym< Element > &  target,
Option_t option = "S" 
) const

◆ Invert()

TMatrixTSym< Element > & TMatrixTSym::Invert ( Double_t det = 0)

Invert the matrix and calculate its determinant Notice that the LU decomposition is used instead of Bunch-Kaufman Bunch-Kaufman guarantees a symmetric inverted matrix but is slower than LU .

The user can access Bunch-Kaufman through the TDecompBK class .

Definition at line 961 of file TMatrixTSym.cxx.

◆ InvertFast()

TMatrixTSym< Element > & TMatrixTSym::InvertFast ( Double_t det = 0)

Invert the matrix and calculate its determinant.

Definition at line 979 of file TMatrixTSym.cxx.

◆ IsSymmetric()

virtual Bool_t TMatrixTSym::IsSymmetric ( ) const
inlinevirtual

Definition at line 95 of file TMatrixTSym.h.

◆ Memcpy_m()

Int_t TMatrixTSym::Memcpy_m ( Element *  newp,
const Element *  oldp,
Int_t  copySize,
Int_t  newSize,
Int_t  oldSize 
)
protected

copy copySize doubles from *oldp to *newp .

However take care of the situation where both pointers are assigned to the same stack space

Definition at line 247 of file TMatrixTSym.cxx.

◆ Minus()

void TMatrixTSym::Minus ( const TMatrixTSym< Element > &  a,
const TMatrixTSym< Element > &  b 
)

Symmetric matrix summation. Create a matrix C such that C = A + B.

Definition at line 346 of file TMatrixTSym.cxx.

◆ Mult()

void TMatrixTSym::Mult ( const TMatrixTSym< Element > &  a)
inline

Definition at line 77 of file TMatrixTSym.h.

◆ New_m()

Element * TMatrixTSym::New_m ( Int_t  size)
protected

return data pointer .

if requested size <= kSizeMax, assign pointer to the stack space

Definition at line 229 of file TMatrixTSym.cxx.

◆ operator()() [1/2]

Element & TMatrixTSym::operator() ( Int_t  rown,
Int_t  coln 
)
inline

Definition at line 224 of file TMatrixTSym.h.

◆ operator()() [2/2]

Element TMatrixTSym::operator() ( Int_t  rown,
Int_t  coln 
) const
inline

Definition at line 208 of file TMatrixTSym.h.

◆ operator*=()

TMatrixTSym< Element > & TMatrixTSym::operator*= ( Element  val)

Multiply every element of the matrix with val.

Definition at line 1498 of file TMatrixTSym.cxx.

◆ operator+=() [1/2]

TMatrixTSym& TMatrixTSym::operator+= ( const TMatrixTSym source)

◆ operator+=() [2/2]

TMatrixTSym< Element > & TMatrixTSym::operator+= ( Element  val)

Add val to every element of the matrix.

Definition at line 1466 of file TMatrixTSym.cxx.

◆ operator-=() [1/2]

TMatrixTSym& TMatrixTSym::operator-= ( const TMatrixTSym source)

◆ operator-=() [2/2]

TMatrixTSym< Element > & TMatrixTSym::operator-= ( Element  val)

Subtract val from every element of the matrix.

Definition at line 1482 of file TMatrixTSym.cxx.

◆ operator=() [1/7]

TMatrixTSym<Element>& TMatrixTSym::operator= ( const TMatrixTSym< Element > &  source)

◆ operator=() [2/7]

template<class Element >
TMatrixTSym<Element>& TMatrixTSym::operator= ( const TMatrixTSym< Element > &  source)

Definition at line 1414 of file TMatrixTSym.cxx.

◆ operator=() [3/7]

template<class Element2 >
TMatrixTSym<Element>& TMatrixTSym::operator= ( const TMatrixTSym< Element2 > &  source)
inline

Definition at line 144 of file TMatrixTSym.h.

◆ operator=() [4/7]

template<class Element >
TMatrixTSym<Element>& TMatrixTSym::operator= ( const TMatrixTSymLazy< Element > &  lazy_constructor)

Definition at line 1431 of file TMatrixTSym.cxx.

◆ operator=() [5/7]

TMatrixTSym<Element>& TMatrixTSym::operator= ( const TMatrixTSymLazy< Element > &  source)

◆ operator=() [6/7]

TMatrixTSym<Element>& TMatrixTSym::operator= ( Element  val)

◆ operator=() [7/7]

template<class Element >
TMatrixTSym<Element>& TMatrixTSym::operator= ( Element  val)

Assign val to every element of the matrix.

Definition at line 1450 of file TMatrixTSym.cxx.

◆ operator[]() [1/2]

TMatrixTRow<Element> TMatrixTSym::operator[] ( Int_t  rown)
inline

Definition at line 140 of file TMatrixTSym.h.

◆ operator[]() [2/2]

const TMatrixTRow_const<Element> TMatrixTSym::operator[] ( Int_t  rown) const
inline

Definition at line 139 of file TMatrixTSym.h.

◆ Plus()

void TMatrixTSym::Plus ( const TMatrixTSym< Element > &  a,
const TMatrixTSym< Element > &  b 
)

Symmetric matrix summation. Create a matrix C such that C = A + B.

Definition at line 312 of file TMatrixTSym.cxx.

◆ Randomize()

TMatrixTBase< Element > & TMatrixTSym::Randomize ( Element  alpha,
Element  beta,
Double_t seed 
)
virtual

randomize matrix element values but keep matrix symmetric

Definition at line 1608 of file TMatrixTSym.cxx.

◆ RandomizePD()

TMatrixTSym< Element > & TMatrixTSym::RandomizePD ( Element  alpha,
Element  beta,
Double_t seed 
)
virtual

randomize matrix element values but keep matrix symmetric positive definite

Definition at line 1639 of file TMatrixTSym.cxx.

◆ Rank1Update()

TMatrixTSym< Element > & TMatrixTSym::Rank1Update ( const TVectorT< Element > &  v,
Element  alpha = 1.0 
)

Perform a rank 1 operation on the matrix: A += alpha * v * v^T.

Definition at line 1063 of file TMatrixTSym.cxx.

◆ ResizeTo() [1/3]

TMatrixTBase<Element>& TMatrixTSym::ResizeTo ( const TMatrixTSym< Element > &  m)
inline

Definition at line 118 of file TMatrixTSym.h.

◆ ResizeTo() [2/3]

virtual TMatrixTBase<Element>& TMatrixTSym::ResizeTo ( Int_t  nrows,
Int_t  ncols,
Int_t  = -1 
)
virtual

◆ ResizeTo() [3/3]

virtual TMatrixTBase<Element>& TMatrixTSym::ResizeTo ( Int_t  row_lwb,
Int_t  row_upb,
Int_t  col_lwb,
Int_t  col_upb,
Int_t  = -1 
)
virtual

◆ SetColIndexArray()

virtual TMatrixTBase<Element>& TMatrixTSym::SetColIndexArray ( Int_t )
inlinevirtual

Definition at line 90 of file TMatrixTSym.h.

◆ SetMatrixArray()

TMatrixTBase< Element > & TMatrixTSym::SetMatrixArray ( const Element *  data,
Option_t option = "" 
)
virtual

Definition at line 743 of file TMatrixTSym.cxx.

◆ SetRowIndexArray()

virtual TMatrixTBase<Element>& TMatrixTSym::SetRowIndexArray ( Int_t )
inlinevirtual

Definition at line 89 of file TMatrixTSym.h.

◆ SetSub() [1/2]

TMatrixTSym< Element > & TMatrixTSym::SetSub ( Int_t  row_lwb,
const TMatrixTBase< Element > &  source 
)

Insert matrix source starting at [row_lwb][row_lwb], thereby overwriting the part [row_lwb..row_lwb+nrows_source][row_lwb..row_lwb+nrows_source];.

Definition at line 636 of file TMatrixTSym.cxx.

◆ SetSub() [2/2]

TMatrixTBase< Element > & TMatrixTSym::SetSub ( Int_t  row_lwb,
Int_t  col_lwb,
const TMatrixTBase< Element > &  source 
)
virtual

Insert matrix source starting at [row_lwb][col_lwb] in a symmetric fashion, thereby overwriting the part [row_lwb..row_lwb+nrows_source][row_lwb..row_lwb+nrows_source];.

Definition at line 686 of file TMatrixTSym.cxx.

◆ Shift()

TMatrixTBase< Element > & TMatrixTSym::Shift ( Int_t  row_shift,
Int_t  col_shift 
)
virtual

Definition at line 756 of file TMatrixTSym.cxx.

◆ Similarity() [1/3]

TMatrixTSym<Element>& TMatrixTSym::Similarity ( const TMatrixT< Element > &  n)

◆ Similarity() [2/3]

TMatrixTSym<Element>& TMatrixTSym::Similarity ( const TMatrixTSym< Element > &  n)

◆ Similarity() [3/3]

Element TMatrixTSym::Similarity ( const TVectorT< Element > &  v) const

Calculate scalar v * (*this) * v^T.

Definition at line 1292 of file TMatrixTSym.cxx.

◆ SimilarityT()

TMatrixTSym< Element > & TMatrixTSym::SimilarityT ( const TMatrixT< Element > &  n)

Calculate B^T * (*this) * B , final matrix will be (ncolsb x ncolsb) It is more efficient than applying the actual multiplication because this routine realizes that the final matrix is symmetric .

Definition at line 1327 of file TMatrixTSym.cxx.

◆ T()

TMatrixTSym<Element>& TMatrixTSym::T ( )
inline

Definition at line 127 of file TMatrixTSym.h.

◆ TMult() [1/2]

void TMatrixTSym::TMult ( const TMatrixT< Element > &  a)

Create a matrix C such that C = A' * A.

In other words, c[i,j] = SUM{ a[k,i] * a[k,j] }.

Definition at line 381 of file TMatrixTSym.cxx.

◆ TMult() [2/2]

void TMatrixTSym::TMult ( const TMatrixTSym< Element > &  a)

Matrix multiplication, with A symmetric Create a matrix C such that C = A' * A = A * A = A * A'.

Definition at line 429 of file TMatrixTSym.cxx.

◆ Transpose()

TMatrixTSym< Element > & TMatrixTSym::Transpose ( const TMatrixTSym< Element > &  source)

Transpose a matrix.

Definition at line 1041 of file TMatrixTSym.cxx.

◆ Use() [1/6]

const TMatrixTSym< Element > & TMatrixTSym::Use ( const TMatrixTSym< Element > &  a) const
inline

Definition at line 197 of file TMatrixTSym.h.

◆ Use() [2/6]

const TMatrixTSym< Element > & TMatrixTSym::Use ( Int_t  nrows,
const Element *  data 
) const
inline

Definition at line 193 of file TMatrixTSym.h.

◆ Use() [3/6]

TMatrixTSym< Element > & TMatrixTSym::Use ( Int_t  nrows,
Element *  data 
)
inline

Definition at line 192 of file TMatrixTSym.h.

◆ Use() [4/6]

const TMatrixTSym<Element>& TMatrixTSym::Use ( Int_t  row_lwb,
Int_t  row_upb,
const Element *  data 
) const
inline

Definition at line 98 of file TMatrixTSym.h.

◆ Use() [5/6]

TMatrixTSym< Element > & TMatrixTSym::Use ( Int_t  row_lwb,
Int_t  row_upb,
Element *  data 
)

Definition at line 475 of file TMatrixTSym.cxx.

◆ Use() [6/6]

TMatrixTSym< Element > & TMatrixTSym::Use ( TMatrixTSym< Element > &  a)
inline

Definition at line 195 of file TMatrixTSym.h.

Member Data Documentation

◆ fDataStack

Element TMatrixTSym::fDataStack[TMatrixTBase< Element >::kSizeMax]
protected

Definition at line 38 of file TMatrixTSym.h.

◆ fElements

Element* TMatrixTSym::fElements
protected

data container

Definition at line 39 of file TMatrixTSym.h.


The documentation for this class was generated from the following files: