SymMat Class Template Reference

#include <SymMat.h>

List of all members.


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).

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, 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, 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 ENumber Number
typedef EStdNumber StdNumber
typedef EPrecision Precision
typedef EScalarSq ScalarSq

Public Member Functions

int size () const
int nrow () const
int ncol () const
ScalarSq scalarNormSqr () const
TAbs abs () const
TStandard standardize () const
StdNumber 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)
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)
ScalarSq normSqr () const
ScalarSq 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

Classes

struct  EltResult
struct  Result
struct  Substitute

Member Typedef Documentation

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,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 ENumber Number

typedef EStdNumber StdNumber

typedef EPrecision Precision

typedef EScalarSq ScalarSq


Member Enumeration Documentation

anonymous enum

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


Constructor & Destructor Documentation

SymMat (  )  [inline]

References SymMat::setToNaN().

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 EE *  p  )  [inline, explicit]


Member Function Documentation

int size (  )  const [inline]

int nrow (  )  const [inline]

int ncol (  )  const [inline]

ScalarSq scalarNormSqr (  )  const [inline]

TAbs abs (  )  const [inline]

References SymMat::getAsVec().

Referenced by SimTK::abs().

TStandard standardize (  )  const [inline]

References SymMat::getAsVec().

StdNumber trace (  )  const [inline]

References SymMat::getDiag(), and Vec::sum().

SymMat& operator= ( const SymMat< M, ELT, RS > &  src  )  [inline]

SymMat& operator= ( const EE *  p  )  [inline]

SymMat& operator= ( const SymMat< M, EE, RSS > &  mm  )  [inline]

SymMat& operator+= ( const SymMat< M, EE, RSS > &  mm  )  [inline]

SymMat& operator+= ( const SymMat< M, negator< EE >, RSS > &  mm  )  [inline]

References SymMat::updAsVec().

SymMat& operator-= ( const SymMat< M, EE, RSS > &  mm  )  [inline]

SymMat& operator-= ( const SymMat< M, negator< EE >, RSS > &  mm  )  [inline]

References SymMat::updAsVec().

SymMat& operator*= ( const SymMat< M, EE, RSS > &  mm  )  [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]

const E& operator() ( int  i,
int  j 
) const [inline]

E& operator() ( int  i,
int  j 
) [inline]

ScalarSq normSqr (  )  const [inline]

ScalarSq norm (  )  const [inline]

References SymMat::scalarNormSqr().

Referenced by SymMat::normalize().

TNormalize normalize (  )  const [inline]

TInvert invert (  )  const [inline]

const SymMat& operator+ (  )  const [inline]

const TNeg& operator- (  )  const [inline]

References SymMat::negate().

TNeg& operator- (  )  [inline]

References SymMat::updNegate().

const THerm& operator~ (  )  const [inline]

References SymMat::transpose().

THerm& operator~ (  )  [inline]

const TNeg& negate (  )  const [inline]

Referenced by SymMat::operator-().

TNeg& updNegate (  )  [inline]

Referenced by SymMat::operator-().

const THerm& transpose (  )  const [inline]

Referenced by SymMat::operator~().

THerm& updTranspose (  )  [inline]

Referenced by SymMat::operator~().

const TPosTrans& positionalTranspose (  )  const [inline]

TPosTrans& updPositionalTranspose (  )  [inline]

const TReal& real (  )  const [inline]

TReal& real (  )  [inline]

const TImag& imag (  )  const [inline]

References SymMat::ImagOffset.

TImag& imag (  )  [inline]

References SymMat::ImagOffset.

const TWithoutNegator& castAwayNegatorIfAny (  )  const [inline]

Referenced by SymMat::normalize().

TWithoutNegator& updCastAwayNegatorIfAny (  )  [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]

SymMat<M, typename CNT<E>::template Result<EE>::Dvd> scalarDivide ( const EE &  e  )  const [inline]

SymMat<M, typename CNT<EE>::template Result<E>::Dvd> scalarDivideFromLeft ( const EE &  e  )  const [inline]

SymMat<M, typename CNT<E>::template Result<EE>::Add> scalarAdd ( const EE &  e  )  const [inline]

References SymMat::updDiag().

SymMat<M, typename CNT<E>::template Result<EE>::Sub> scalarSubtract ( const EE &  e  )  const [inline]

References SymMat::diag().

SymMat<M, typename CNT<EE>::template Result<E>::Sub> scalarSubtractFromLeft ( const EE &  e  )  const [inline]

References SymMat::diag().

SymMat& operator= ( const EE &  e  )  [inline]

References SymMat::scalarEq().

SymMat& operator+= ( const EE &  e  )  [inline]

SymMat& operator-= ( const EE &  e  )  [inline]

SymMat& operator*= ( const EE &  e  )  [inline]

SymMat& operator/= ( const EE &  e  )  [inline]

SymMat& scalarEq ( const EE &  ee  )  [inline]

References SymMat::updDiag(), and SymMat::updLower().

Referenced by SymMat::operator=().

SymMat& scalarPlusEq ( const EE &  ee  )  [inline]

References SymMat::updDiag().

Referenced by SymMat::operator+=().

SymMat& scalarMinusEq ( const EE &  ee  )  [inline]

References SymMat::updDiag().

Referenced by SymMat::operator-=().

SymMat& scalarMinusEqFromLeft ( const EE &  ee  )  [inline]

SymMat& scalarTimesEq ( const EE &  ee  )  [inline]

References SymMat::updAsVec().

Referenced by SymMat::operator*=().

SymMat& scalarTimesEqFromLeft ( const EE &  ee  )  [inline]

References SymMat::updAsVec().

SymMat& scalarDivideEq ( const EE &  ee  )  [inline]

References SymMat::updAsVec().

Referenced by SymMat::operator/=().

SymMat& scalarDivideEqFromLeft ( const EE &  ee  )  [inline]

References SymMat::updAsVec().

void setToNaN (  )  [inline]

References SymMat::updAsVec().

Referenced by SymMat::SymMat().

static const SymMat& getAs ( const ELT *  p  )  [inline, static]

static SymMat& updAs ( ELT *  p  )  [inline, static]

static TPacked getNaN (  )  [inline, static]

const TDiag& getDiag (  )  const [inline]

TDiag& updDiag (  )  [inline]

const TDiag& diag (  )  const [inline]

TDiag& diag (  )  [inline]

References SymMat::updDiag().

const TLower& getLower (  )  const [inline]

TLower& updLower (  )  [inline]

const TUpper& getUpper (  )  const [inline]

References SymMat::getLower().

Referenced by SymMat::getEltUpper().

TUpper& updUpper (  )  [inline]

References SymMat::updLower().

Referenced by SymMat::updEltUpper().

const TAsVec& getAsVec (  )  const [inline]

TAsVec& updAsVec (  )  [inline]

const E& getEltLower ( int  i,
int  j 
) const [inline]

E& updEltLower ( int  i,
int  j 
) [inline]

const EHerm& getEltUpper ( int  i,
int  j 
) const [inline]

References SymMat::getUpper().

EHerm& updEltUpper ( int  i,
int  j 
) [inline]

References SymMat::updUpper().

TRow sum (  )  const [inline]


Friends And Related Function Documentation

friend class SymMat [friend]


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

Generated on Fri Sep 26 07:44:30 2008 for SimTKcore by  doxygen 1.5.6