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

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
 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
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
}

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

typedef EPrecision Precision

typedef EScalar Scalar

typedef EScalarSq ScalarSq

typedef EStdNumber StdNumber

typedef Vec<M,E,STRIDE> T

typedef Vec<M,EAbs,1> TAbs

typedef Vec TCol

typedef Vec<M,EComplex,STRIDE> TComplex

typedef E TElement

typedef Row<M,EHerm,STRIDE> THerm

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

typedef Row<M,EInvert,1> TInvert

typedef Vec<M,ENeg,STRIDE> TNeg

typedef Vec<M,ENormalize,1> TNormalize

typedef Row<M,E,STRIDE> TPosTrans

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

typedef E TRow

typedef EScalarSq TSqHermT

typedef SymMat<M,ESqTHerm> TSqTHerm

typedef Vec<M,EStandard,1> TStandard

typedef Vec<M,EWithoutNegator,STRIDE> TWithoutNegator


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

TAbs abs (  )  const [inline]

Reimplemented in UnitVec.

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

const TWithoutNegator& castAwayNegatorIfAny (  )  const [inline]

Vec<M,typename CNT<E>::template Result<EE>::Add> conformingAdd ( 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]

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

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

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

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

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

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

TImag& imag (  )  [inline]

const TImag& imag (  )  const [inline]

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

TInvert invert (  )  const [inline]

int ncol (  )  const [inline]

const TNeg& negate (  )  const [inline]

Reimplemented in UnitVec.

ScalarSq norm (  )  const [inline]

TNormalize normalize (  )  const [inline]

ScalarSq normSqr (  )  const [inline]

int nrow (  )  const [inline]

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

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

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

Reimplemented in UnitVec.

const Vec& operator+ (  )  const [inline]

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

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

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

TNeg& operator- (  )  [inline]

const TNeg& operator- (  )  const [inline]

Reimplemented in UnitVec.

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

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

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

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

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

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

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

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

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

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

Reimplemented in UnitVec.

THerm& operator~ (  )  [inline]

Reimplemented in UnitVec.

const THerm& operator~ (  )  const [inline]

Reimplemented in UnitVec.

const TPosTrans& positionalTranspose (  )  const [inline]

TReal& real (  )  [inline]

const TReal& real (  )  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>::Dvd> scalarDivide ( const EE &  e  )  const [inline]

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

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

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

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

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

Vec& scalarMinusEqFromLeft ( const EE &  ee  )  [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]

ScalarSq scalarNormSqr (  )  const [inline]

Vec& scalarPlusEq ( const EE &  ee  )  [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& scalarTimesEq ( const EE &  ee  )  [inline]

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

void setToNaN (  )  [inline]

int size (  )  const [inline]

TStandard standardize (  )  const [inline]

EStandard sum (  )  const [inline]

const THerm& transpose (  )  const [inline]

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

TWithoutNegator& updCastAwayNegatorIfAny (  )  [inline]

TNeg& updNegate (  )  [inline]

TPosTrans& updPositionalTranspose (  )  [inline]

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

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

THerm& updTranspose (  )  [inline]


The documentation for this class was generated from the following file:
Generated on Thu Feb 28 01:34:37 2008 for SimTKcommon by  doxygen 1.4.7