Simbody
Classes | Public Types | Public Member Functions | Static Public Member Functions

SimTK::Vec< M, ELT, STRIDE > Class Template Reference

Generic Vec. More...

#include <Vec.h>

Inherited by SimTK::UnitVec< Real, 1 >.

List of all members.

Classes

struct  EltResult
struct  Result
struct  Substitute

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, IsULessScalar = 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, ESqrt, 1 > TSqrt
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 ESqHermT TSqHermT
typedef SymMat< M, ESqTHerm > TSqTHerm
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 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 E &e)
 Vec (const ENeg &ne)
 Vec (int i)
 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)
 Vec (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4, const E &e5, const E &e6)
 Vec (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4, const E &e5, const E &e6, const E &e7)
 Vec (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)
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)
ScalarNormSq normSqr () const
CNT< ScalarNormSq >::TSqrt 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 ()
void setToZero ()
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
bool isNaN () const
 Return true if any element of this Vec contains a NaN anywhere.
bool isInf () const
 Return true if any element of this Vec contains a +Inf or -Inf somewhere but no element contains a NaN anywhere.
bool isFinite () const
 Return true if no element contains an Infinity or a NaN.
template<class E2 , int RS2>
bool isNumericallyEqual (const Vec< M, E2, RS2 > &v, double tol) const
 Test whether this vector is numerically equal to some other vector with the same shape, using a specified tolerance.
template<class E2 , int RS2>
bool isNumericallyEqual (const Vec< M, E2, RS2 > &v) const
 Test whether this vector is numerically equal to some other vector with the same shape, using a default tolerance which is the looser of the default tolerances of the two objects being compared.
bool isNumericallyEqual (const ELT &e, double tol=getDefaultTolerance()) const
 Test whether every element of this vector is numerically equal to the given element, using either a specified tolerance or the vector's default tolerance (which is always the same or looser than the default tolerance for one of its elements).

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 ()
static double getDefaultTolerance ()
 For approximate comparisions, the default tolerance to use for a vector is the same as its elements' default tolerance.

Detailed Description

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

Generic Vec.


Member Typedef Documentation

template<int M, class ELT, int STRIDE>
typedef Vec<M,E,STRIDE> SimTK::Vec< M, ELT, STRIDE >::T
template<int M, class ELT, int STRIDE>
typedef Vec<M,ENeg,STRIDE> SimTK::Vec< M, ELT, STRIDE >::TNeg
template<int M, class ELT, int STRIDE>
typedef Vec<M,EWithoutNegator,STRIDE> SimTK::Vec< M, ELT, STRIDE >::TWithoutNegator
template<int M, class ELT, int STRIDE>
typedef Vec<M,EReal,STRIDE*CNT<E>::RealStrideFactor> SimTK::Vec< M, ELT, STRIDE >::TReal
template<int M, class ELT, int STRIDE>
typedef Vec<M,EImag,STRIDE*CNT<E>::RealStrideFactor> SimTK::Vec< M, ELT, STRIDE >::TImag
template<int M, class ELT, int STRIDE>
typedef Vec<M,EComplex,STRIDE> SimTK::Vec< M, ELT, STRIDE >::TComplex
template<int M, class ELT, int STRIDE>
typedef Row<M,EHerm,STRIDE> SimTK::Vec< M, ELT, STRIDE >::THerm
template<int M, class ELT, int STRIDE>
typedef Row<M,E,STRIDE> SimTK::Vec< M, ELT, STRIDE >::TPosTrans
template<int M, class ELT, int STRIDE>
typedef E SimTK::Vec< M, ELT, STRIDE >::TElement
template<int M, class ELT, int STRIDE>
typedef E SimTK::Vec< M, ELT, STRIDE >::TRow
template<int M, class ELT, int STRIDE>
typedef Vec SimTK::Vec< M, ELT, STRIDE >::TCol
template<int M, class ELT, int STRIDE>
typedef Vec<M,ESqrt,1> SimTK::Vec< M, ELT, STRIDE >::TSqrt
template<int M, class ELT, int STRIDE>
typedef Vec<M,EAbs,1> SimTK::Vec< M, ELT, STRIDE >::TAbs
template<int M, class ELT, int STRIDE>
typedef Vec<M,EStandard,1> SimTK::Vec< M, ELT, STRIDE >::TStandard
template<int M, class ELT, int STRIDE>
typedef Row<M,EInvert,1> SimTK::Vec< M, ELT, STRIDE >::TInvert
template<int M, class ELT, int STRIDE>
typedef Vec<M,ENormalize,1> SimTK::Vec< M, ELT, STRIDE >::TNormalize
template<int M, class ELT, int STRIDE>
typedef ESqHermT SimTK::Vec< M, ELT, STRIDE >::TSqHermT
template<int M, class ELT, int STRIDE>
typedef SymMat<M,ESqTHerm> SimTK::Vec< M, ELT, STRIDE >::TSqTHerm
template<int M, class ELT, int STRIDE>
typedef EScalar SimTK::Vec< M, ELT, STRIDE >::Scalar
template<int M, class ELT, int STRIDE>
typedef EULessScalar SimTK::Vec< M, ELT, STRIDE >::ULessScalar
template<int M, class ELT, int STRIDE>
typedef ENumber SimTK::Vec< M, ELT, STRIDE >::Number
template<int M, class ELT, int STRIDE>
typedef EStdNumber SimTK::Vec< M, ELT, STRIDE >::StdNumber
template<int M, class ELT, int STRIDE>
typedef EPrecision SimTK::Vec< M, ELT, STRIDE >::Precision
template<int M, class ELT, int STRIDE>
typedef EScalarNormSq SimTK::Vec< M, ELT, STRIDE >::ScalarNormSq

Member Enumeration Documentation

template<int M, class ELT, int STRIDE>
anonymous enum
Enumerator:
NRows 
NCols 
NPackedElements 
NActualElements 
NActualScalars 
RowSpacing 
ColSpacing 
ImagOffset 
RealStrideFactor 
ArgDepth 
IsScalar 
IsULessScalar 
IsNumber 
IsStdNumber 
IsPrecision 
SignInterpretation 

Constructor & Destructor Documentation

template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( ) [inline]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const Vec< M, ELT, STRIDE > &  src) [inline]
template<int M, class ELT, int STRIDE>
template<int SS>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const Vec< M, E, SS > &  src) [inline]
template<int M, class ELT, int STRIDE>
template<int SS>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const Vec< M, ENeg, SS > &  src) [inline]
template<int M, class ELT, int STRIDE>
template<class EE , int SS>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const Vec< M, EE, SS > &  vv) [inline, explicit]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const E &  e) [inline, explicit]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const ENeg &  ne) [inline, explicit]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( int  i) [inline, explicit]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const E &  e0,
const E &  e1 
) [inline]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const E &  e0,
const E &  e1,
const E &  e2 
) [inline]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3 
) [inline]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3,
const E &  e4 
) [inline]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3,
const E &  e4,
const E &  e5 
) [inline]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3,
const E &  e4,
const E &  e5,
const E &  e6 
) [inline]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( const E &  e0,
const E &  e1,
const E &  e2,
const E &  e3,
const E &  e4,
const E &  e5,
const E &  e6,
const E &  e7 
) [inline]
template<int M, class ELT, int STRIDE>
SimTK::Vec< M, ELT, STRIDE >::Vec ( 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 
) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
SimTK::Vec< M, ELT, STRIDE >::Vec ( const EE *  p) [inline, explicit]

Member Function Documentation

template<int M, class ELT, int STRIDE>
int SimTK::Vec< M, ELT, STRIDE >::size ( ) const [inline]
template<int M, class ELT, int STRIDE>
int SimTK::Vec< M, ELT, STRIDE >::nrow ( ) const [inline]
template<int M, class ELT, int STRIDE>
int SimTK::Vec< M, ELT, STRIDE >::ncol ( ) const [inline]
template<int M, class ELT, int STRIDE>
ScalarNormSq SimTK::Vec< M, ELT, STRIDE >::scalarNormSqr ( ) const [inline]
template<int M, class ELT, int STRIDE>
TSqrt SimTK::Vec< M, ELT, STRIDE >::sqrt ( ) const [inline]
template<int M, class ELT, int STRIDE>
TAbs SimTK::Vec< M, ELT, STRIDE >::abs ( ) const [inline]
template<int M, class ELT, int STRIDE>
TStandard SimTK::Vec< M, ELT, STRIDE >::standardize ( ) const [inline]
template<int M, class ELT, int STRIDE>
EStandard SimTK::Vec< M, ELT, STRIDE >::sum ( ) const [inline]
template<int M, class ELT, int STRIDE>
Vec& SimTK::Vec< M, ELT, STRIDE >::operator= ( const Vec< M, ELT, STRIDE > &  src) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::operator= ( const EE *  p) [inline]
template<int M, class ELT, int STRIDE>
template<class EE , int SS>
Vec& SimTK::Vec< M, ELT, STRIDE >::operator= ( const Vec< M, EE, SS > &  vv) [inline]
template<int M, class ELT, int STRIDE>
template<class EE , int SS>
Vec& SimTK::Vec< M, ELT, STRIDE >::operator+= ( const Vec< M, EE, SS > &  r) [inline]
template<int M, class ELT, int STRIDE>
template<class EE , int SS>
Vec& SimTK::Vec< M, ELT, STRIDE >::operator+= ( const Vec< M, negator< EE >, SS > &  r) [inline]
template<int M, class ELT, int STRIDE>
template<class EE , int SS>
Vec& SimTK::Vec< M, ELT, STRIDE >::operator-= ( const Vec< M, EE, SS > &  r) [inline]
template<int M, class ELT, int STRIDE>
template<class EE , int SS>
Vec& SimTK::Vec< M, ELT, STRIDE >::operator-= ( const Vec< M, negator< EE >, SS > &  r) [inline]
template<int M, class ELT, int STRIDE>
template<class EE , int SS>
Vec<M,typename CNT<E>::template Result<EE>::Add> SimTK::Vec< M, ELT, STRIDE >::conformingAdd ( const Vec< M, EE, SS > &  r) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE , int SS>
Vec<M,typename CNT<E>::template Result<EE>::Sub> SimTK::Vec< M, ELT, STRIDE >::conformingSubtract ( const Vec< M, EE, SS > &  r) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE , int SS>
Mat<M,M,typename CNT<E>::template Result<EE>::Mul> SimTK::Vec< M, ELT, STRIDE >::conformingMultiply ( const Row< M, EE, SS > &  r) const [inline]
template<int M, class ELT, int STRIDE>
const E& SimTK::Vec< M, ELT, STRIDE >::operator[] ( int  i) const [inline]
template<int M, class ELT, int STRIDE>
E& SimTK::Vec< M, ELT, STRIDE >::operator[] ( int  i) [inline]
template<int M, class ELT, int STRIDE>
const E& SimTK::Vec< M, ELT, STRIDE >::operator() ( int  i) const [inline]
template<int M, class ELT, int STRIDE>
E& SimTK::Vec< M, ELT, STRIDE >::operator() ( int  i) [inline]
template<int M, class ELT, int STRIDE>
ScalarNormSq SimTK::Vec< M, ELT, STRIDE >::normSqr ( ) const [inline]
template<int M, class ELT, int STRIDE>
CNT<ScalarNormSq>::TSqrt SimTK::Vec< M, ELT, STRIDE >::norm ( ) const [inline]
template<int M, class ELT, int STRIDE>
TNormalize SimTK::Vec< M, ELT, STRIDE >::normalize ( ) const [inline]

Reimplemented in SimTK::Quaternion_< P >.

template<int M, class ELT, int STRIDE>
TInvert SimTK::Vec< M, ELT, STRIDE >::invert ( ) const [inline]
template<int M, class ELT, int STRIDE>
const Vec& SimTK::Vec< M, ELT, STRIDE >::operator+ ( ) const [inline]
template<int M, class ELT, int STRIDE>
const TNeg& SimTK::Vec< M, ELT, STRIDE >::operator- ( ) const [inline]
template<int M, class ELT, int STRIDE>
TNeg& SimTK::Vec< M, ELT, STRIDE >::operator- ( ) [inline]
template<int M, class ELT, int STRIDE>
const THerm& SimTK::Vec< M, ELT, STRIDE >::operator~ ( ) const [inline]
template<int M, class ELT, int STRIDE>
THerm& SimTK::Vec< M, ELT, STRIDE >::operator~ ( ) [inline]
template<int M, class ELT, int STRIDE>
const TNeg& SimTK::Vec< M, ELT, STRIDE >::negate ( ) const [inline]
template<int M, class ELT, int STRIDE>
TNeg& SimTK::Vec< M, ELT, STRIDE >::updNegate ( ) [inline]
template<int M, class ELT, int STRIDE>
const THerm& SimTK::Vec< M, ELT, STRIDE >::transpose ( ) const [inline]
template<int M, class ELT, int STRIDE>
THerm& SimTK::Vec< M, ELT, STRIDE >::updTranspose ( ) [inline]
template<int M, class ELT, int STRIDE>
const TPosTrans& SimTK::Vec< M, ELT, STRIDE >::positionalTranspose ( ) const [inline]
template<int M, class ELT, int STRIDE>
TPosTrans& SimTK::Vec< M, ELT, STRIDE >::updPositionalTranspose ( ) [inline]
template<int M, class ELT, int STRIDE>
const TReal& SimTK::Vec< M, ELT, STRIDE >::real ( ) const [inline]
template<int M, class ELT, int STRIDE>
TReal& SimTK::Vec< M, ELT, STRIDE >::real ( ) [inline]
template<int M, class ELT, int STRIDE>
const TImag& SimTK::Vec< M, ELT, STRIDE >::imag ( ) const [inline]
template<int M, class ELT, int STRIDE>
TImag& SimTK::Vec< M, ELT, STRIDE >::imag ( ) [inline]
template<int M, class ELT, int STRIDE>
const TWithoutNegator& SimTK::Vec< M, ELT, STRIDE >::castAwayNegatorIfAny ( ) const [inline]
template<int M, class ELT, int STRIDE>
TWithoutNegator& SimTK::Vec< M, ELT, STRIDE >::updCastAwayNegatorIfAny ( ) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec<M, typename CNT<E>::template Result<EE>::Mul> SimTK::Vec< M, ELT, STRIDE >::scalarMultiply ( const EE &  e) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec<M, typename CNT<EE>::template Result<E>::Mul> SimTK::Vec< M, ELT, STRIDE >::scalarMultiplyFromLeft ( const EE &  e) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec<M, typename CNT<E>::template Result<EE>::Dvd> SimTK::Vec< M, ELT, STRIDE >::scalarDivide ( const EE &  e) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec<M, typename CNT<EE>::template Result<E>::Dvd> SimTK::Vec< M, ELT, STRIDE >::scalarDivideFromLeft ( const EE &  e) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec<M, typename CNT<E>::template Result<EE>::Add> SimTK::Vec< M, ELT, STRIDE >::scalarAdd ( const EE &  e) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec<M, typename CNT<E>::template Result<EE>::Sub> SimTK::Vec< M, ELT, STRIDE >::scalarSubtract ( const EE &  e) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec<M, typename CNT<EE>::template Result<E>::Sub> SimTK::Vec< M, ELT, STRIDE >::scalarSubtractFromLeft ( const EE &  e) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::operator= ( const EE &  e) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::operator+= ( const EE &  e) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::operator-= ( const EE &  e) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::operator*= ( const EE &  e) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::operator/= ( const EE &  e) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarEq ( const EE &  ee) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarPlusEq ( const EE &  ee) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarMinusEq ( const EE &  ee) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarMinusEqFromLeft ( const EE &  ee) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarTimesEq ( const EE &  ee) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarTimesEqFromLeft ( const EE &  ee) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarDivideEq ( const EE &  ee) [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarDivideEqFromLeft ( const EE &  ee) [inline]
template<int M, class ELT, int STRIDE>
void SimTK::Vec< M, ELT, STRIDE >::setToNaN ( ) [inline]
template<int M, class ELT, int STRIDE>
void SimTK::Vec< M, ELT, STRIDE >::setToZero ( ) [inline]
template<int M, class ELT, int STRIDE>
template<int MM>
const Vec<MM,ELT,STRIDE>& SimTK::Vec< M, ELT, STRIDE >::getSubVec ( int  i) const [inline]
template<int M, class ELT, int STRIDE>
template<int MM>
Vec<MM,ELT,STRIDE>& SimTK::Vec< M, ELT, STRIDE >::updSubVec ( int  i) [inline]
template<int M, class ELT, int STRIDE>
Vec<M-1,ELT,1> SimTK::Vec< M, ELT, STRIDE >::drop1 ( int  p) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec<M+1,ELT,1> SimTK::Vec< M, ELT, STRIDE >::append1 ( const EE &  v) const [inline]
template<int M, class ELT, int STRIDE>
template<class EE >
Vec<M+1,ELT,1> SimTK::Vec< M, ELT, STRIDE >::insert1 ( int  p,
const EE &  v 
) const [inline]
template<int M, class ELT, int STRIDE>
static const Vec& SimTK::Vec< M, ELT, STRIDE >::getAs ( const ELT *  p) [inline, static]
template<int M, class ELT, int STRIDE>
static Vec& SimTK::Vec< M, ELT, STRIDE >::updAs ( ELT *  p) [inline, static]
template<int M, class ELT, int STRIDE>
template<int MM>
static const Vec& SimTK::Vec< M, ELT, STRIDE >::getSubVec ( const Vec< MM, ELT, STRIDE > &  v,
int  i 
) [inline, static]
template<int M, class ELT, int STRIDE>
template<int MM>
static Vec& SimTK::Vec< M, ELT, STRIDE >::updSubVec ( Vec< MM, ELT, STRIDE > &  v,
int  i 
) [inline, static]
template<int M, class ELT, int STRIDE>
static Vec<M,ELT,1> SimTK::Vec< M, ELT, STRIDE >::getNaN ( ) [inline, static]
template<int M, class ELT, int STRIDE>
bool SimTK::Vec< M, ELT, STRIDE >::isNaN ( ) const [inline]

Return true if any element of this Vec contains a NaN anywhere.

template<int M, class ELT, int STRIDE>
bool SimTK::Vec< M, ELT, STRIDE >::isInf ( ) const [inline]

Return true if any element of this Vec contains a +Inf or -Inf somewhere but no element contains a NaN anywhere.

template<int M, class ELT, int STRIDE>
bool SimTK::Vec< M, ELT, STRIDE >::isFinite ( ) const [inline]

Return true if no element contains an Infinity or a NaN.

template<int M, class ELT, int STRIDE>
static double SimTK::Vec< M, ELT, STRIDE >::getDefaultTolerance ( ) [inline, static]

For approximate comparisions, the default tolerance to use for a vector is the same as its elements' default tolerance.

template<int M, class ELT, int STRIDE>
template<class E2 , int RS2>
bool SimTK::Vec< M, ELT, STRIDE >::isNumericallyEqual ( const Vec< M, E2, RS2 > &  v,
double  tol 
) const [inline]

Test whether this vector is numerically equal to some other vector with the same shape, using a specified tolerance.

template<int M, class ELT, int STRIDE>
template<class E2 , int RS2>
bool SimTK::Vec< M, ELT, STRIDE >::isNumericallyEqual ( const Vec< M, E2, RS2 > &  v) const [inline]

Test whether this vector is numerically equal to some other vector with the same shape, using a default tolerance which is the looser of the default tolerances of the two objects being compared.

template<int M, class ELT, int STRIDE>
bool SimTK::Vec< M, ELT, STRIDE >::isNumericallyEqual ( const ELT &  e,
double  tol = getDefaultTolerance() 
) const [inline]

Test whether every element of this vector is numerically equal to the given element, using either a specified tolerance or the vector's default tolerance (which is always the same or looser than the default tolerance for one of its elements).


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines