Logo ROOT  
Reference Guide
ROOT::Math::MatRepSym< T, D > Class Template Reference

template<class T, unsigned int D>
class ROOT::Math::MatRepSym< T, D >

MatRepSym Matrix storage representation for a symmetric matrix of dimension NxN This class is a template on the contained type and on the symmetric matrix size, N.

It has as data member an array of type T of size N*(N+1)/2, containing the lower diagonal block of the matrix. The order follows the lower diagonal block, still in a row-major convention. For example for a symmetric 3x3 matrix the order of the 6 elements \( \left[a_0,a_1.....a_5 \right]\) is:

\[ M = \left( \begin{array}{ccc} a_0 & a_1 & a_3 \\ a_1 & a_2 & a_4 \\ a_3 & a_4 & a_5 \end{array} \right) \]

Definition at line 212 of file MatrixRepresentationsStatic.h.

Public Types

enum  { kRows = D , kCols = D , kSize = D*(D+1)/2 }
 
typedef T value_type
 

Public Member Functions

 MatRepSym ()
 
apply (unsigned int i) const
 
T * Array ()
 
const T * Array () const
 
T & operator() (unsigned int i, unsigned int j)
 
T const & operator() (unsigned int i, unsigned int j) const
 
MatRepSym< T, D > & operator+= (const MatRepSym &rhs)
 
template<class R >
MatRepSym< T, D > & operator+= (const R &)
 self addition : only symmetric to symmetric allowed More...
 
MatRepSym< T, D > & operator-= (const MatRepSym &rhs)
 
template<class R >
MatRepSym< T, D > & operator-= (const R &)
 self subtraction : only symmetric to symmetric allowed More...
 
MatRepSym< T, D > & operator= (const MatRepSym &rhs)
 
template<class R >
MatRepSym< T, D > & operator= (const R &)
 assignment : only symmetric to symmetric allowed More...
 
template<class R >
bool operator== (const R &rhs) const
 
T & operator[] (unsigned int i)
 
T const & operator[] (unsigned int i) const
 

Static Public Member Functions

static int off (int i)
 
static constexpr int off0 (int i)
 
static constexpr int off1 (int i)
 
static constexpr int off2 (int i, int j)
 
static constexpr unsigned int offset (unsigned int i, unsigned int j)
 

Private Attributes

fArray [kSize]
 

#include <Math/MatrixRepresentationsStatic.h>

Member Typedef Documentation

◆ value_type

template<class T , unsigned int D>
typedef T ROOT::Math::MatRepSym< T, D >::value_type

Definition at line 218 of file MatrixRepresentationsStatic.h.

Member Enumeration Documentation

◆ anonymous enum

template<class T , unsigned int D>
anonymous enum
Enumerator
kRows 

return no. of matrix rows

kCols 

return no. of matrix columns

kSize 

return no of elements: rows*columns

Definition at line 293 of file MatrixRepresentationsStatic.h.

Constructor & Destructor Documentation

◆ MatRepSym()

template<class T , unsigned int D>
ROOT::Math::MatRepSym< T, D >::MatRepSym ( )
inline

Definition at line 216 of file MatrixRepresentationsStatic.h.

Member Function Documentation

◆ apply()

template<class T , unsigned int D>
T ROOT::Math::MatRepSym< T, D >::apply ( unsigned int  i) const
inline

Definition at line 235 of file MatrixRepresentationsStatic.h.

◆ Array() [1/2]

template<class T , unsigned int D>
T * ROOT::Math::MatRepSym< T, D >::Array ( )
inline

Definition at line 239 of file MatrixRepresentationsStatic.h.

◆ Array() [2/2]

template<class T , unsigned int D>
const T * ROOT::Math::MatRepSym< T, D >::Array ( ) const
inline

Definition at line 241 of file MatrixRepresentationsStatic.h.

◆ off()

template<class T , unsigned int D>
static int ROOT::Math::MatRepSym< T, D >::off ( int  i)
inlinestatic

Definition at line 306 of file MatrixRepresentationsStatic.h.

◆ off0()

template<class T , unsigned int D>
static constexpr int ROOT::Math::MatRepSym< T, D >::off0 ( int  i)
inlinestaticconstexpr

Definition at line 302 of file MatrixRepresentationsStatic.h.

◆ off1()

template<class T , unsigned int D>
static constexpr int ROOT::Math::MatRepSym< T, D >::off1 ( int  i)
inlinestaticconstexpr

Definition at line 304 of file MatrixRepresentationsStatic.h.

◆ off2()

template<class T , unsigned int D>
static constexpr int ROOT::Math::MatRepSym< T, D >::off2 ( int  i,
int  j 
)
inlinestaticconstexpr

Definition at line 303 of file MatrixRepresentationsStatic.h.

◆ offset()

template<class T , unsigned int D>
static constexpr unsigned int ROOT::Math::MatRepSym< T, D >::offset ( unsigned int  i,
unsigned int  j 
)
inlinestaticconstexpr

Definition at line 312 of file MatrixRepresentationsStatic.h.

◆ operator()() [1/2]

template<class T , unsigned int D>
T & ROOT::Math::MatRepSym< T, D >::operator() ( unsigned int  i,
unsigned int  j 
)
inline

Definition at line 221 of file MatrixRepresentationsStatic.h.

◆ operator()() [2/2]

template<class T , unsigned int D>
T const & ROOT::Math::MatRepSym< T, D >::operator() ( unsigned int  i,
unsigned int  j 
) const
inline

Definition at line 224 of file MatrixRepresentationsStatic.h.

◆ operator+=() [1/2]

template<class T , unsigned int D>
MatRepSym< T, D > & ROOT::Math::MatRepSym< T, D >::operator+= ( const MatRepSym< T, D > &  rhs)
inline

Definition at line 266 of file MatrixRepresentationsStatic.h.

◆ operator+=() [2/2]

template<class T , unsigned int D>
template<class R >
MatRepSym< T, D > & ROOT::Math::MatRepSym< T, D >::operator+= ( const R )
inline

self addition : only symmetric to symmetric allowed

Definition at line 261 of file MatrixRepresentationsStatic.h.

◆ operator-=() [1/2]

template<class T , unsigned int D>
MatRepSym< T, D > & ROOT::Math::MatRepSym< T, D >::operator-= ( const MatRepSym< T, D > &  rhs)
inline

Definition at line 280 of file MatrixRepresentationsStatic.h.

◆ operator-=() [2/2]

template<class T , unsigned int D>
template<class R >
MatRepSym< T, D > & ROOT::Math::MatRepSym< T, D >::operator-= ( const R )
inline

self subtraction : only symmetric to symmetric allowed

Definition at line 275 of file MatrixRepresentationsStatic.h.

◆ operator=() [1/2]

template<class T , unsigned int D>
MatRepSym< T, D > & ROOT::Math::MatRepSym< T, D >::operator= ( const MatRepSym< T, D > &  rhs)
inline

Definition at line 252 of file MatrixRepresentationsStatic.h.

◆ operator=() [2/2]

template<class T , unsigned int D>
template<class R >
MatRepSym< T, D > & ROOT::Math::MatRepSym< T, D >::operator= ( const R )
inline

assignment : only symmetric to symmetric allowed

Definition at line 247 of file MatrixRepresentationsStatic.h.

◆ operator==()

template<class T , unsigned int D>
template<class R >
bool ROOT::Math::MatRepSym< T, D >::operator== ( const R rhs) const
inline

Definition at line 285 of file MatrixRepresentationsStatic.h.

◆ operator[]() [1/2]

template<class T , unsigned int D>
T & ROOT::Math::MatRepSym< T, D >::operator[] ( unsigned int  i)
inline

Definition at line 227 of file MatrixRepresentationsStatic.h.

◆ operator[]() [2/2]

template<class T , unsigned int D>
T const & ROOT::Math::MatRepSym< T, D >::operator[] ( unsigned int  i) const
inline

Definition at line 231 of file MatrixRepresentationsStatic.h.

Member Data Documentation

◆ fArray

template<class T , unsigned int D>
T ROOT::Math::MatRepSym< T, D >::fArray[kSize]
private

Definition at line 321 of file MatrixRepresentationsStatic.h.


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