Vec Class Template Reference

#include <Vec.h>

List of all members.


Detailed Description

template<int M, class ELT, int STRIDE>
class SimTK::Vec< M, ELT, STRIDE >

Generic Vec.

Public Types

enum  {
  NRows = M, NCols = 1, NPackedElements = M, NActualElements = M * STRIDE,
  NActualScalars = CNT<E>::NActualScalars * NActualElements, RowSpacing = STRIDE, ColSpacing = NActualElements, ImagOffset = NTraits<ENumber>::ImagOffset,
  RealStrideFactor = 1, ArgDepth, IsScalar = 0, IsNumber = 0,
  IsStdNumber = 0, IsPrecision = 0, SignInterpretation = CNT<E>::SignInterpretation
}
typedef Vec< M, E, STRIDE > T
typedef Vec< M, ENeg, STRIDE > TNeg
typedef Vec< M,
EWithoutNegator, STRIDE > 
TWithoutNegator
typedef Vec< M, EReal, STRIDE
*CNT< E >::RealStrideFactor > 
TReal
typedef Vec< M, EImag, STRIDE
*CNT< E >::RealStrideFactor > 
TImag
typedef Vec< M, EComplex, STRIDE > TComplex
typedef Row< M, EHerm, STRIDE > THerm
typedef Row< M, E, STRIDE > TPosTrans
typedef E TElement
typedef E TRow
typedef Vec TCol
typedef Vec< M, EAbs, 1 > TAbs
typedef Vec< M, EStandard, 1 > TStandard
typedef Row< M, EInvert, 1 > TInvert
typedef Vec< M, ENormalize, 1 > TNormalize
typedef EScalarSq TSqHermT
typedef SymMat< M, ESqTHerm > TSqTHerm
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
EStandard sum () const
 Vec ()
 Vec (const Vec &src)
Vecoperator= (const Vec &src)
template<int SS>
 Vec (const Vec< M, E, SS > &src)
template<int SS>
 Vec (const Vec< M, ENeg, SS > &src)
template<class EE, int SS>
 Vec (const Vec< M, EE, SS > &vv)
 Vec (const ELT &e)
 Vec (const E &e0, const E &e1)
 Vec (const E &e0, const E &e1, const E &e2)
 Vec (const E &e0, const E &e1, const E &e2, const E &e3)
 Vec (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4)
 Vec (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4, const E &e5)
template<class EE>
 Vec (const EE *p)
template<class EE>
Vecoperator= (const EE *p)
template<class EE, int SS>
Vecoperator= (const Vec< M, EE, SS > &vv)
template<class EE, int SS>
Vecoperator+= (const Vec< M, EE, SS > &r)
template<class EE, int SS>
Vecoperator+= (const Vec< M, negator< EE >, SS > &r)
template<class EE, int SS>
Vecoperator-= (const Vec< M, EE, SS > &r)
template<class EE, int SS>
Vecoperator-= (const Vec< M, negator< EE >, SS > &r)
template<class EE, int SS>
Vec< M, typename CNT< E >
::template Result< EE >::Add > 
conformingAdd (const Vec< M, EE, SS > &r) const
template<class EE, int SS>
Vec< M, typename CNT< E >
::template Result< EE >::Sub > 
conformingSubtract (const Vec< M, EE, SS > &r) const
template<class EE, int SS>
Mat< M, M, typename CNT< E >
::template Result< EE >::Mul > 
conformingMultiply (const Row< M, EE, SS > &r) const
const E & operator[] (int i) const
E & operator[] (int i)
const E & operator() (int i) const
E & operator() (int i)
ScalarSq normSqr () const
ScalarSq norm () const
TNormalize normalize () const
TInvert invert () const
const Vecoperator+ () 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>
Vec< M, typename CNT< E >
::template Result< EE >::Mul > 
scalarMultiply (const EE &e) const
template<class EE>
Vec< M, typename CNT< EE >
::template Result< E >::Mul > 
scalarMultiplyFromLeft (const EE &e) const
template<class EE>
Vec< M, typename CNT< E >
::template Result< EE >::Dvd > 
scalarDivide (const EE &e) const
template<class EE>
Vec< M, typename CNT< EE >
::template Result< E >::Dvd > 
scalarDivideFromLeft (const EE &e) const
template<class EE>
Vec< M, typename CNT< E >
::template Result< EE >::Add > 
scalarAdd (const EE &e) const
template<class EE>
Vec< M, typename CNT< E >
::template Result< EE >::Sub > 
scalarSubtract (const EE &e) const
template<class EE>
Vec< M, typename CNT< EE >
::template Result< E >::Sub > 
scalarSubtractFromLeft (const EE &e) const
template<class EE>
Vecoperator= (const EE &e)
template<class EE>
Vecoperator+= (const EE &e)
template<class EE>
Vecoperator-= (const EE &e)
template<class EE>
Vecoperator*= (const EE &e)
template<class EE>
Vecoperator/= (const EE &e)
template<class EE>
VecscalarEq (const EE &ee)
template<class EE>
VecscalarPlusEq (const EE &ee)
template<class EE>
VecscalarMinusEq (const EE &ee)
template<class EE>
VecscalarMinusEqFromLeft (const EE &ee)
template<class EE>
VecscalarTimesEq (const EE &ee)
template<class EE>
VecscalarTimesEqFromLeft (const EE &ee)
template<class EE>
VecscalarDivideEq (const EE &ee)
template<class EE>
VecscalarDivideEqFromLeft (const EE &ee)
void setToNaN ()
template<int MM>
const Vec< MM, ELT, STRIDE > & getSubVec (int i) const
template<int MM>
Vec< MM, ELT, STRIDE > & updSubVec (int i)
Vec< M-1, ELT, 1 > drop1 (int p) const
template<class EE>
Vec< M+1, ELT, 1 > append1 (const EE &v) const
template<class EE>
Vec< M+1, ELT, 1 > insert1 (int p, const EE &v) const

Static Public Member Functions

static const VecgetAs (const ELT *p)
static VecupdAs (ELT *p)
template<int MM>
static const VecgetSubVec (const Vec< MM, ELT, STRIDE > &v, int i)
template<int MM>
static VecupdSubVec (Vec< MM, ELT, STRIDE > &v, int i)
static Vec< M, ELT, 1 > getNaN ()

Classes

struct  EltResult
struct  Result
struct  Substitute

Member Typedef Documentation

typedef Vec<M,E,STRIDE> T

typedef Vec<M,ENeg,STRIDE> TNeg

typedef Vec<M,EWithoutNegator,STRIDE> TWithoutNegator

typedef Vec<M,EReal,STRIDE*CNT<E>::RealStrideFactor> TReal

typedef Vec<M,EImag,STRIDE*CNT<E>::RealStrideFactor> TImag

typedef Vec<M,EComplex,STRIDE> TComplex

typedef Row<M,EHerm,STRIDE> THerm

typedef Row<M,E,STRIDE> TPosTrans

typedef E TElement

typedef E TRow

typedef Vec TCol

typedef Vec<M,EAbs,1> TAbs

typedef Vec<M,EStandard,1> TStandard

typedef Row<M,EInvert,1> TInvert

typedef Vec<M,ENormalize,1> TNormalize

typedef EScalarSq TSqHermT

typedef SymMat<M,ESqTHerm> TSqTHerm

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

Vec (  )  [inline]

Vec ( const Vec< M, ELT, STRIDE > &  src  )  [inline]

Vec ( const Vec< M, E, SS > &  src  )  [inline]

Vec ( const Vec< M, ENeg, SS > &  src  )  [inline]

Vec ( const Vec< M, EE, SS > &  vv  )  [inline, explicit]

Vec ( const ELT &  e  )  [inline, explicit]

Vec ( const E &  e0,
const E &  e1 
) [inline]

Vec ( const E &  e0,
const E &  e1,
const E &  e2 
) [inline]

Vec ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3 
) [inline]

Vec ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3,
const E &  e4 
) [inline]

Vec ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3,
const E &  e4,
const E &  e5 
) [inline]

Vec ( 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]

Reimplemented in UnitVec, and UnitVec< 1 >.

Referenced by SimTK::abs(), and UnitVec< 1 >::abs().

TStandard standardize (  )  const [inline]

EStandard sum (  )  const [inline]

Vec& operator= ( const Vec< M, ELT, STRIDE > &  src  )  [inline]

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

Vec& operator= ( const Vec< M, EE, SS > &  vv  )  [inline]

Vec& operator+= ( const Vec< M, EE, SS > &  r  )  [inline]

Vec& operator+= ( const Vec< M, negator< EE >, SS > &  r  )  [inline]

Vec& operator-= ( const Vec< M, EE, SS > &  r  )  [inline]

Vec& operator-= ( const Vec< M, negator< EE >, SS > &  r  )  [inline]

Vec<M,typename CNT<E>::template Result<EE>::Add> conformingAdd ( const Vec< M, EE, SS > &  r  )  const [inline]

Vec<M,typename CNT<E>::template Result<EE>::Sub> conformingSubtract ( const Vec< M, EE, SS > &  r  )  const [inline]

Mat<M,M,typename CNT<E>::template Result<EE>::Mul> conformingMultiply ( const Row< M, EE, SS > &  r  )  const [inline]

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

Reimplemented in UnitVec, and UnitVec< 1 >.

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

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

Reimplemented in UnitVec, and UnitVec< 1 >.

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

ScalarSq normSqr (  )  const [inline]

ScalarSq norm (  )  const [inline]

TNormalize normalize (  )  const [inline]

TInvert invert (  )  const [inline]

const Vec& operator+ (  )  const [inline]

const TNeg& operator- (  )  const [inline]

Reimplemented in UnitVec, and UnitVec< 1 >.

TNeg& operator- (  )  [inline]

const THerm& operator~ (  )  const [inline]

Reimplemented in UnitVec, and UnitVec< 1 >.

THerm& operator~ (  )  [inline]

Reimplemented in UnitVec, and UnitVec< 1 >.

const TNeg& negate (  )  const [inline]

Reimplemented in UnitVec, and UnitVec< 1 >.

Referenced by Vec< 3, Real, S >::operator-().

TNeg& updNegate (  )  [inline]

const THerm& transpose (  )  const [inline]

THerm& updTranspose (  )  [inline]

const TPosTrans& positionalTranspose (  )  const [inline]

TPosTrans& updPositionalTranspose (  )  [inline]

const TReal& real (  )  const [inline]

Referenced by SymMat::SymMat().

TReal& real (  )  [inline]

const TImag& imag (  )  const [inline]

TImag& imag (  )  [inline]

const TWithoutNegator& castAwayNegatorIfAny (  )  const [inline]

TWithoutNegator& updCastAwayNegatorIfAny (  )  [inline]

Vec<M, typename CNT<E>::template Result<EE>::Mul> scalarMultiply ( const EE &  e  )  const [inline]

Vec<M, typename CNT<EE>::template Result<E>::Mul> scalarMultiplyFromLeft ( const EE &  e  )  const [inline]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

void setToNaN (  )  [inline]

const Vec<MM,ELT,STRIDE>& getSubVec ( int  i  )  const [inline]

Vec<MM,ELT,STRIDE>& updSubVec ( int  i  )  [inline]

Vec<M-1,ELT,1> drop1 ( int  p  )  const [inline]

Vec<M+1,ELT,1> append1 ( const EE &  v  )  const [inline]

Vec<M+1,ELT,1> insert1 ( int  p,
const EE &  v 
) const [inline]

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

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

static const Vec& getSubVec ( const Vec< MM, ELT, STRIDE > &  v,
int  i 
) [inline, static]

static Vec& updSubVec ( Vec< MM, ELT, STRIDE > &  v,
int  i 
) [inline, static]

static Vec<M,ELT,1> getNaN (  )  [inline, static]


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

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