ROOT  6.06/09
Reference Guide
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
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 35 of file HelperOps.h.

Public Types

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

Public Member Functions

 MatRepSym ()
 
T & operator() (unsigned int i, unsigned int j)
 
T const & operator() (unsigned int i, unsigned int j) const
 
T & operator[] (unsigned int i)
 
T const & operator[] (unsigned int i) const
 
apply (unsigned int i) const
 
T * Array ()
 
const T * Array () const
 
template<class R >
MatRepSym< T, D > & operator= (const R &)
 assignment : only symmetric to symmetric allowed More...
 
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 >
bool operator== (const R &rhs) const
 

Static Public Member Functions

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

Private Attributes

fArray [kSize]
 

#include <Math/HelperOps.h>

+ Collaboration diagram for ROOT::Math::MatRepSym< T, D >:

Member Typedef Documentation

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

Definition at line 220 of file MatrixRepresentationsStatic.h.

Constructor & Destructor Documentation

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

Definition at line 218 of file MatrixRepresentationsStatic.h.

Member Function Documentation

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

Definition at line 237 of file MatrixRepresentationsStatic.h.

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

Definition at line 243 of file MatrixRepresentationsStatic.h.

template<class T, unsigned int D>
static int ROOT::Math::MatRepSym< T, D >::off ( int  i)
inlinestatic
template<class T, unsigned int D>
static constexpr int ROOT::Math::MatRepSym< T, D >::off0 ( int  i)
inlinestatic
template<class T, unsigned int D>
static constexpr int ROOT::Math::MatRepSym< T, D >::off1 ( int  i)
inlinestatic
template<class T, unsigned int D>
static constexpr int ROOT::Math::MatRepSym< T, D >::off2 ( int  i,
int  j 
)
inlinestatic
template<class T, unsigned int D>
static constexpr unsigned int ROOT::Math::MatRepSym< T, D >::offset ( unsigned int  i,
unsigned int  j 
)
inlinestatic
template<class T, unsigned int D>
T& ROOT::Math::MatRepSym< T, D >::operator() ( unsigned int  i,
unsigned int  j 
)
inline

Definition at line 223 of file MatrixRepresentationsStatic.h.

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 226 of file MatrixRepresentationsStatic.h.

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 263 of file MatrixRepresentationsStatic.h.

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

Definition at line 268 of file MatrixRepresentationsStatic.h.

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 277 of file MatrixRepresentationsStatic.h.

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

Definition at line 282 of file MatrixRepresentationsStatic.h.

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 249 of file MatrixRepresentationsStatic.h.

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

Definition at line 254 of file MatrixRepresentationsStatic.h.

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

Definition at line 287 of file MatrixRepresentationsStatic.h.

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

Definition at line 233 of file MatrixRepresentationsStatic.h.

Member Data Documentation

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

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