SymMat< M, ELT, RS > Class Template Reference

RS is total spacing between rows in memory (default 1). More...

#include <SymMat.h>

List of all members.

Classes

struct  EltResult
struct  Result
struct  Substitute

Public Types

enum  {
  NRows = M, NCols = M, NPackedElements = (M*(M+1))/2, NActualElements = RS * NPackedElements,
  NActualScalars = CNT<E>::NActualScalars * NActualElements, RowSpacing = RS, ColSpacing = NActualElements, ImagOffset = NTraits<ENumber>::ImagOffset,
  RealStrideFactor = 1, ArgDepth, IsScalar = 0, IsULessScalar = 0,
  IsNumber = 0, IsStdNumber = 0, IsPrecision = 0, SignInterpretation = CNT<E>::SignInterpretation
}
typedef SymMat< M, E, RS > T
typedef SymMat< M, ENeg, RS > TNeg
typedef SymMat< M,
EWithoutNegator, RS > 
TWithoutNegator
typedef SymMat< M, EReal, RS
*CNT< E >::RealStrideFactor > 
TReal
typedef SymMat< M, EImag, RS
*CNT< E >::RealStrideFactor > 
TImag
typedef SymMat< M, EComplex, RS > TComplex
typedef T THerm
typedef SymMat< M, EHerm, RS > TPosTrans
typedef E TElement
typedef Vec< M, E, RS > TDiag
typedef Vec<(M *(M-1))/2, E, RS TLower )
typedef Vec<(M *(M-1))/2, EHerm, RS TUpper )
typedef Vec<(M *(M+1))/2, E, RS TAsVec )
typedef Row< M, E, 1 > TRow
typedef Vec< M, E, 1 > TCol
typedef SymMat< M, ESqrt, 1 > TSqrt
typedef SymMat< M, EAbs, 1 > TAbs
typedef SymMat< M, EStandard, 1 > TStandard
typedef SymMat< M, EInvert, 1 > TInvert
typedef SymMat< M, ENormalize, 1 > TNormalize
typedef SymMat< M, ESqHermT, 1 > TSqHermT
typedef SymMat< M, ESqTHerm, 1 > TSqTHerm
typedef SymMat< M, E, 1 > TPacked
typedef EScalar Scalar
typedef EULessScalar ULessScalar
typedef ENumber Number
typedef EStdNumber StdNumber
typedef EPrecision Precision
typedef EScalarNormSq ScalarNormSq

Public Member Functions

int size () const
int nrow () const
int ncol () const
ScalarNormSq scalarNormSqr () const
TSqrt sqrt () const
TAbs abs () const
TStandard standardize () const
EStandard trace () const
 SymMat ()
 SymMat (const SymMat &src)
SymMatoperator= (const SymMat &src)
template<class EE , int CSS, int RSS>
 SymMat (const Mat< M, M, EE, CSS, RSS > &m)
template<int RSS>
 SymMat (const SymMat< M, E, RSS > &src)
template<int RSS>
 SymMat (const SymMat< M, ENeg, RSS > &src)
template<class EE , int RSS>
 SymMat (const SymMat< M, EE, RSS > &src)
 SymMat (const E &e)
 SymMat (const E &e0, const E &e1, const E &e2)
 A bevy of constructors from individual exact-match elements IN ROW ORDER, giving the LOWER TRIANGLE, like this:.
 SymMat (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4, const E &e5)
 SymMat (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4, const E &e5, const E &e6, const E &e7, const E &e8, const E &e9)
 SymMat (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4, const E &e5, const E &e6, const E &e7, const E &e8, const E &e9, const E &e10, const E &e11, const E &e12, const E &e13, const E &e14)
 SymMat (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4, const E &e5, const E &e6, const E &e7, const E &e8, const E &e9, const E &e10, const E &e11, const E &e12, const E &e13, const E &e14, const E &e15, const E &e16, const E &e17, const E &e18, const E &e19, const E &e20)
template<class EE >
 SymMat (const EE *p)
template<class EE >
SymMatoperator= (const EE *p)
template<class EE , int RSS>
SymMatoperator= (const SymMat< M, EE, RSS > &mm)
template<class EE , int RSS>
SymMatoperator+= (const SymMat< M, EE, RSS > &mm)
template<class EE , int RSS>
SymMatoperator+= (const SymMat< M, negator< EE >, RSS > &mm)
template<class EE , int RSS>
SymMatoperator-= (const SymMat< M, EE, RSS > &mm)
template<class EE , int RSS>
SymMatoperator-= (const SymMat< M, negator< EE >, RSS > &mm)
template<class EE , int RSS>
SymMatoperator*= (const SymMat< M, EE, RSS > &mm)
template<class E2 , int RS2>
Result< SymMat< M, E2, RS2 > >::Add conformingAdd (const SymMat< M, E2, RS2 > &r) const
template<class E2 , int RS2>
Result< SymMat< M, E2, RS2 > >::Sub conformingSubtract (const SymMat< M, E2, RS2 > &r) const
const E & operator() (int i, int j) const
E & operator() (int i, int j)
ScalarNormSq normSqr () const
CNT< ScalarNormSq >::TSqrt norm () const
TNormalize normalize () const
TInvert invert () const
const SymMatoperator+ () const
const TNegoperator- () const
TNegoperator- ()
const THermoperator~ () const
THermoperator~ ()
const TNegnegate () const
TNegupdNegate ()
const THermtranspose () const
THermupdTranspose ()
const TPosTranspositionalTranspose () const
TPosTransupdPositionalTranspose ()
const TRealreal () const
TRealreal ()
const TImagimag () const
TImagimag ()
const TWithoutNegatorcastAwayNegatorIfAny () const
TWithoutNegatorupdCastAwayNegatorIfAny ()
template<class EE >
SymMat< M, typename CNT< E >
::template Result< EE >::Mul > 
scalarMultiply (const EE &e) const
template<class EE >
SymMat< M, typename CNT< EE >
::template Result< E >::Mul > 
scalarMultiplyFromLeft (const EE &e) const
template<class EE >
SymMat< M, typename CNT< E >
::template Result< EE >::Dvd > 
scalarDivide (const EE &e) const
template<class EE >
SymMat< M, typename CNT< EE >
::template Result< E >::Dvd > 
scalarDivideFromLeft (const EE &e) const
template<class EE >
SymMat< M, typename CNT< E >
::template Result< EE >::Add > 
scalarAdd (const EE &e) const
template<class EE >
SymMat< M, typename CNT< E >
::template Result< EE >::Sub > 
scalarSubtract (const EE &e) const
template<class EE >
SymMat< M, typename CNT< EE >
::template Result< E >::Sub > 
scalarSubtractFromLeft (const EE &e) const
template<class EE >
SymMatoperator= (const EE &e)
template<class EE >
SymMatoperator+= (const EE &e)
template<class EE >
SymMatoperator-= (const EE &e)
template<class EE >
SymMatoperator*= (const EE &e)
template<class EE >
SymMatoperator/= (const EE &e)
template<class EE >
SymMatscalarEq (const EE &ee)
template<class EE >
SymMatscalarPlusEq (const EE &ee)
template<class EE >
SymMatscalarMinusEq (const EE &ee)
template<class EE >
SymMatscalarMinusEqFromLeft (const EE &ee)
template<class EE >
SymMatscalarTimesEq (const EE &ee)
template<class EE >
SymMatscalarTimesEqFromLeft (const EE &ee)
template<class EE >
SymMatscalarDivideEq (const EE &ee)
template<class EE >
SymMatscalarDivideEqFromLeft (const EE &ee)
void setToNaN ()
const TDiaggetDiag () const
TDiagupdDiag ()
const TDiagdiag () const
TDiagdiag ()
const TLowergetLower () const
TLowerupdLower ()
const TUppergetUpper () const
TUpperupdUpper ()
const TAsVecgetAsVec () const
TAsVecupdAsVec ()
const E & getEltLower (int i, int j) const
E & updEltLower (int i, int j)
const EHerm & getEltUpper (int i, int j) const
EHerm & updEltUpper (int i, int j)
TRow sum () const

Static Public Member Functions

static const SymMatgetAs (const ELT *p)
static SymMatupdAs (ELT *p)
static TPacked getNaN ()

Friends

class SymMat

Detailed Description

template<int M, class ELT, int RS>
class SimTK::SymMat< M, ELT, RS >

RS is total spacing between rows in memory (default 1).


Member Typedef Documentation

typedef ENumber Number
typedef EPrecision Precision
typedef EScalar Scalar
typedef EScalarNormSq ScalarNormSq
typedef EStdNumber StdNumber
typedef SymMat<M,E,RS> T
typedef SymMat<M,EAbs,1> TAbs
typedef Vec<(M*(M+1))/2,E,RS TAsVec)
typedef Vec<M,E,1> TCol
typedef SymMat<M,EComplex,RS> TComplex
typedef Vec<M,E,RS> TDiag
typedef E TElement
typedef T THerm
typedef SymMat<M,EImag,RS*CNT<E>::RealStrideFactor> TImag
typedef SymMat<M,EInvert,1> TInvert
typedef Vec<(M*(M-1))/2,E,RS TLower)
typedef SymMat<M,ENeg,RS> TNeg
typedef SymMat<M,ENormalize,1> TNormalize
typedef SymMat<M,E,1> TPacked
typedef SymMat<M,EHerm,RS> TPosTrans
typedef SymMat<M,EReal,RS*CNT<E>::RealStrideFactor> TReal
typedef Row<M,E,1> TRow
typedef SymMat<M,ESqHermT,1> TSqHermT
typedef SymMat<M,ESqrt,1> TSqrt
typedef SymMat<M,ESqTHerm,1> TSqTHerm
typedef SymMat<M,EStandard,1> TStandard
typedef Vec<(M*(M-1))/2,EHerm,RS TUpper)
typedef SymMat<M,EWithoutNegator,RS> TWithoutNegator
typedef EULessScalar ULessScalar

Member Enumeration Documentation

anonymous enum
Enumerator:
NRows 
NCols 
NPackedElements 
NActualElements 
NActualScalars 
RowSpacing 
ColSpacing 
ImagOffset 
RealStrideFactor 
ArgDepth 
IsScalar 
IsULessScalar 
IsNumber 
IsStdNumber 
IsPrecision 
SignInterpretation 

Constructor & Destructor Documentation

SymMat (  )  [inline]
SymMat ( const SymMat< M, ELT, RS > &  src  )  [inline]
SymMat ( const Mat< M, M, EE, CSS, RSS > &  m  )  [inline, explicit]
SymMat ( const SymMat< M, E, RSS > &  src  )  [inline]
SymMat ( const SymMat< M, ENeg, RSS > &  src  )  [inline]
SymMat ( const SymMat< M, EE, RSS > &  src  )  [inline, explicit]
SymMat ( const E &  e  )  [inline, explicit]
SymMat ( const E &  e0,
const E &  e1,
const E &  e2 
) [inline]

A bevy of constructors from individual exact-match elements IN ROW ORDER, giving the LOWER TRIANGLE, like this:.

            a
            b c
            d e f
            g h i j
        

Note that this will be mapped to our diagonal/lower layout, which in the above example would be:

            [a c f j][b d g e h i]
        

References SymMat< M, ELT, RS >::real(), SymMat< M, ELT, RS >::updDiag(), and SymMat< M, ELT, RS >::updLower().

SymMat ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3,
const E &  e4,
const E &  e5 
) [inline]
SymMat ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3,
const E &  e4,
const E &  e5,
const E &  e6,
const E &  e7,
const E &  e8,
const E &  e9 
) [inline]
SymMat ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3,
const E &  e4,
const E &  e5,
const E &  e6,
const E &  e7,
const E &  e8,
const E &  e9,
const E &  e10,
const E &  e11,
const E &  e12,
const E &  e13,
const E &  e14 
) [inline]
SymMat ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3,
const E &  e4,
const E &  e5,
const E &  e6,
const E &  e7,
const E &  e8,
const E &  e9,
const E &  e10,
const E &  e11,
const E &  e12,
const E &  e13,
const E &  e14,
const E &  e15,
const E &  e16,
const E &  e17,
const E &  e18,
const E &  e19,
const E &  e20 
) [inline]
SymMat ( const EE *  p  )  [inline, explicit]

Member Function Documentation

TAbs abs (  )  const [inline]

References SymMat< M, ELT, RS >::getAsVec().

Referenced by SimTK::abs().

const TWithoutNegator& castAwayNegatorIfAny (  )  const [inline]
Result<SymMat<M,E2,RS2> >::Add conformingAdd ( const SymMat< M, E2, RS2 > &  r  )  const [inline]
Result<SymMat<M,E2,RS2> >::Sub conformingSubtract ( const SymMat< M, E2, RS2 > &  r  )  const [inline]
TDiag& diag (  )  [inline]
const TDiag& diag (  )  const [inline]
static const SymMat& getAs ( const ELT *  p  )  [inline, static]
const TAsVec& getAsVec (  )  const [inline]
const TDiag& getDiag (  )  const [inline]
const E& getEltLower ( int  i,
int  j 
) const [inline]
const EHerm& getEltUpper ( int  i,
int  j 
) const [inline]
const TLower& getLower (  )  const [inline]
static TPacked getNaN (  )  [inline, static]
const TUpper& getUpper (  )  const [inline]
TImag& imag (  )  [inline]
const TImag& imag (  )  const [inline]
TInvert invert (  )  const [inline]
int ncol (  )  const [inline]
const TNeg& negate (  )  const [inline]
CNT<ScalarNormSq>::TSqrt norm (  )  const [inline]
TNormalize normalize (  )  const [inline]
ScalarNormSq normSqr (  )  const [inline]
int nrow (  )  const [inline]
E& operator() ( int  i,
int  j 
) [inline]
const E& operator() ( int  i,
int  j 
) const [inline]
SymMat& operator*= ( const EE &  e  )  [inline]
SymMat& operator*= ( const SymMat< M, EE, RSS > &  mm  )  [inline]
const SymMat& operator+ (  )  const [inline]
SymMat& operator+= ( const EE &  e  )  [inline]
SymMat& operator+= ( const SymMat< M, negator< EE >, RSS > &  mm  )  [inline]
SymMat& operator+= ( const SymMat< M, EE, RSS > &  mm  )  [inline]
TNeg& operator- (  )  [inline]
const TNeg& operator- (  )  const [inline]
SymMat& operator-= ( const EE &  e  )  [inline]
SymMat& operator-= ( const SymMat< M, negator< EE >, RSS > &  mm  )  [inline]
SymMat& operator-= ( const SymMat< M, EE, RSS > &  mm  )  [inline]
SymMat& operator/= ( const EE &  e  )  [inline]
SymMat& operator= ( const EE &  e  )  [inline]
SymMat& operator= ( const SymMat< M, EE, RSS > &  mm  )  [inline]
SymMat& operator= ( const EE *  p  )  [inline]
SymMat& operator= ( const SymMat< M, ELT, RS > &  src  )  [inline]
THerm& operator~ (  )  [inline]
const THerm& operator~ (  )  const [inline]
const TPosTrans& positionalTranspose (  )  const [inline]
TReal& real (  )  [inline]
const TReal& real (  )  const [inline]
SymMat<M, typename CNT<E>::template Result<EE>::Add> scalarAdd ( const EE &  e  )  const [inline]
SymMat<M, typename CNT<E>::template Result<EE>::Dvd> scalarDivide ( const EE &  e  )  const [inline]
SymMat& scalarDivideEq ( const EE &  ee  )  [inline]
SymMat& scalarDivideEqFromLeft ( const EE &  ee  )  [inline]
SymMat<M, typename CNT<EE>::template Result<E>::Dvd> scalarDivideFromLeft ( const EE &  e  )  const [inline]
SymMat& scalarEq ( const EE &  ee  )  [inline]
SymMat& scalarMinusEq ( const EE &  ee  )  [inline]
SymMat& scalarMinusEqFromLeft ( const EE &  ee  )  [inline]
SymMat<M, typename CNT<E>::template Result<EE>::Mul> scalarMultiply ( const EE &  e  )  const [inline]
SymMat<M, typename CNT<EE>::template Result<E>::Mul> scalarMultiplyFromLeft ( const EE &  e  )  const [inline]
ScalarNormSq scalarNormSqr (  )  const [inline]
SymMat& scalarPlusEq ( const EE &  ee  )  [inline]
SymMat<M, typename CNT<E>::template Result<EE>::Sub> scalarSubtract ( const EE &  e  )  const [inline]
SymMat<M, typename CNT<EE>::template Result<E>::Sub> scalarSubtractFromLeft ( const EE &  e  )  const [inline]
SymMat& scalarTimesEq ( const EE &  ee  )  [inline]
SymMat& scalarTimesEqFromLeft ( const EE &  ee  )  [inline]
void setToNaN (  )  [inline]
int size (  )  const [inline]
TSqrt sqrt (  )  const [inline]
TStandard standardize (  )  const [inline]
TRow sum (  )  const [inline]
EStandard trace (  )  const [inline]
const THerm& transpose (  )  const [inline]
static SymMat& updAs ( ELT *  p  )  [inline, static]
TAsVec& updAsVec (  )  [inline]
TWithoutNegator& updCastAwayNegatorIfAny (  )  [inline]
TDiag& updDiag (  )  [inline]
E& updEltLower ( int  i,
int  j 
) [inline]
EHerm& updEltUpper ( int  i,
int  j 
) [inline]
TLower& updLower (  )  [inline]
TNeg& updNegate (  )  [inline]
TPosTrans& updPositionalTranspose (  )  [inline]
THerm& updTranspose (  )  [inline]
TUpper& updUpper (  )  [inline]

Friends And Related Function Documentation

friend class SymMat [friend]

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

Generated on Wed Dec 30 11:05:29 2009 for SimTKcore by  doxygen 1.6.1