Simbody
|
#include <Vec.h>
Inherited by SimTK::UnitVec< Real, 1 >.
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) | |
Vec & | operator= (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 > | |
Vec & | operator= (const EE *p) |
template<class EE , int SS> | |
Vec & | operator= (const Vec< M, EE, SS > &vv) |
template<class EE , int SS> | |
Vec & | operator+= (const Vec< M, EE, SS > &r) |
template<class EE , int SS> | |
Vec & | operator+= (const Vec< M, negator< EE >, SS > &r) |
template<class EE , int SS> | |
Vec & | operator-= (const Vec< M, EE, SS > &r) |
template<class EE , int SS> | |
Vec & | operator-= (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 Vec & | operator+ () const |
const TNeg & | operator- () const |
TNeg & | operator- () |
const THerm & | operator~ () const |
THerm & | operator~ () |
const TNeg & | negate () const |
TNeg & | updNegate () |
const THerm & | transpose () const |
THerm & | updTranspose () |
const TPosTrans & | positionalTranspose () const |
TPosTrans & | updPositionalTranspose () |
const TReal & | real () const |
TReal & | real () |
const TImag & | imag () const |
TImag & | imag () |
const TWithoutNegator & | castAwayNegatorIfAny () const |
TWithoutNegator & | updCastAwayNegatorIfAny () |
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 > | |
Vec & | operator= (const EE &e) |
template<class EE > | |
Vec & | operator+= (const EE &e) |
template<class EE > | |
Vec & | operator-= (const EE &e) |
template<class EE > | |
Vec & | operator*= (const EE &e) |
template<class EE > | |
Vec & | operator/= (const EE &e) |
template<class EE > | |
Vec & | scalarEq (const EE &ee) |
template<class EE > | |
Vec & | scalarPlusEq (const EE &ee) |
template<class EE > | |
Vec & | scalarMinusEq (const EE &ee) |
template<class EE > | |
Vec & | scalarMinusEqFromLeft (const EE &ee) |
template<class EE > | |
Vec & | scalarTimesEq (const EE &ee) |
template<class EE > | |
Vec & | scalarTimesEqFromLeft (const EE &ee) |
template<class EE > | |
Vec & | scalarDivideEq (const EE &ee) |
template<class EE > | |
Vec & | scalarDivideEqFromLeft (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 Vec & | getAs (const ELT *p) |
static Vec & | updAs (ELT *p) |
template<int MM> | |
static const Vec & | getSubVec (const Vec< MM, ELT, STRIDE > &v, int i) |
template<int MM> | |
static Vec & | updSubVec (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. |
Generic Vec.
typedef Vec<M,E,STRIDE> SimTK::Vec< M, ELT, STRIDE >::T |
typedef Vec<M,ENeg,STRIDE> SimTK::Vec< M, ELT, STRIDE >::TNeg |
typedef Vec<M,EWithoutNegator,STRIDE> SimTK::Vec< M, ELT, STRIDE >::TWithoutNegator |
typedef Vec<M,EReal,STRIDE*CNT<E>::RealStrideFactor> SimTK::Vec< M, ELT, STRIDE >::TReal |
typedef Vec<M,EImag,STRIDE*CNT<E>::RealStrideFactor> SimTK::Vec< M, ELT, STRIDE >::TImag |
typedef Vec<M,EComplex,STRIDE> SimTK::Vec< M, ELT, STRIDE >::TComplex |
typedef Row<M,EHerm,STRIDE> SimTK::Vec< M, ELT, STRIDE >::THerm |
typedef Row<M,E,STRIDE> SimTK::Vec< M, ELT, STRIDE >::TPosTrans |
typedef E SimTK::Vec< M, ELT, STRIDE >::TElement |
typedef E SimTK::Vec< M, ELT, STRIDE >::TRow |
typedef Vec SimTK::Vec< M, ELT, STRIDE >::TCol |
typedef Vec<M,ESqrt,1> SimTK::Vec< M, ELT, STRIDE >::TSqrt |
typedef Vec<M,EAbs,1> SimTK::Vec< M, ELT, STRIDE >::TAbs |
typedef Vec<M,EStandard,1> SimTK::Vec< M, ELT, STRIDE >::TStandard |
typedef Row<M,EInvert,1> SimTK::Vec< M, ELT, STRIDE >::TInvert |
typedef Vec<M,ENormalize,1> SimTK::Vec< M, ELT, STRIDE >::TNormalize |
typedef ESqHermT SimTK::Vec< M, ELT, STRIDE >::TSqHermT |
typedef SymMat<M,ESqTHerm> SimTK::Vec< M, ELT, STRIDE >::TSqTHerm |
typedef EScalar SimTK::Vec< M, ELT, STRIDE >::Scalar |
typedef EULessScalar SimTK::Vec< M, ELT, STRIDE >::ULessScalar |
typedef ENumber SimTK::Vec< M, ELT, STRIDE >::Number |
typedef EStdNumber SimTK::Vec< M, ELT, STRIDE >::StdNumber |
typedef EPrecision SimTK::Vec< M, ELT, STRIDE >::Precision |
typedef EScalarNormSq SimTK::Vec< M, ELT, STRIDE >::ScalarNormSq |
anonymous enum |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | ) | [inline] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const Vec< M, ELT, STRIDE > & | src | ) | [inline] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const Vec< M, E, SS > & | src | ) | [inline] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const Vec< M, ENeg, SS > & | src | ) | [inline] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const Vec< M, EE, SS > & | vv | ) | [inline, explicit] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const E & | e | ) | [inline, explicit] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const ENeg & | ne | ) | [inline, explicit] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | int | i | ) | [inline, explicit] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const E & | e0, |
const E & | e1 | ||
) | [inline] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const E & | e0, |
const E & | e1, | ||
const E & | e2 | ||
) | [inline] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const E & | e0, |
const E & | e1, | ||
const E & | e2, | ||
const E & | e3 | ||
) | [inline] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const E & | e0, |
const E & | e1, | ||
const E & | e2, | ||
const E & | e3, | ||
const E & | e4 | ||
) | [inline] |
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] |
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] |
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] |
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] |
SimTK::Vec< M, ELT, STRIDE >::Vec | ( | const EE * | p | ) | [inline, explicit] |
int SimTK::Vec< M, ELT, STRIDE >::size | ( | ) | const [inline] |
int SimTK::Vec< M, ELT, STRIDE >::nrow | ( | ) | const [inline] |
int SimTK::Vec< M, ELT, STRIDE >::ncol | ( | ) | const [inline] |
ScalarNormSq SimTK::Vec< M, ELT, STRIDE >::scalarNormSqr | ( | ) | const [inline] |
TSqrt SimTK::Vec< M, ELT, STRIDE >::sqrt | ( | ) | const [inline] |
TAbs SimTK::Vec< M, ELT, STRIDE >::abs | ( | ) | const [inline] |
Reimplemented in SimTK::UnitVec< P, S >, and SimTK::UnitVec< Real, 1 >.
TStandard SimTK::Vec< M, ELT, STRIDE >::standardize | ( | ) | const [inline] |
EStandard SimTK::Vec< M, ELT, STRIDE >::sum | ( | ) | const [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator= | ( | const Vec< M, ELT, STRIDE > & | src | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator= | ( | const EE * | p | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator= | ( | const Vec< M, EE, SS > & | vv | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator+= | ( | const Vec< M, EE, SS > & | r | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator+= | ( | const Vec< M, negator< EE >, SS > & | r | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator-= | ( | const Vec< M, EE, SS > & | r | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator-= | ( | const Vec< M, negator< EE >, SS > & | r | ) | [inline] |
Vec<M,typename CNT<E>::template Result<EE>::Add> SimTK::Vec< M, ELT, STRIDE >::conformingAdd | ( | const Vec< M, EE, SS > & | r | ) | const [inline] |
Vec<M,typename CNT<E>::template Result<EE>::Sub> SimTK::Vec< M, ELT, STRIDE >::conformingSubtract | ( | const Vec< M, EE, SS > & | r | ) | const [inline] |
Mat<M,M,typename CNT<E>::template Result<EE>::Mul> SimTK::Vec< M, ELT, STRIDE >::conformingMultiply | ( | const Row< M, EE, SS > & | r | ) | const [inline] |
const E& SimTK::Vec< M, ELT, STRIDE >::operator[] | ( | int | i | ) | const [inline] |
Reimplemented in SimTK::UnitVec< P, S >, and SimTK::UnitVec< Real, 1 >.
E& SimTK::Vec< M, ELT, STRIDE >::operator[] | ( | int | i | ) | [inline] |
const E& SimTK::Vec< M, ELT, STRIDE >::operator() | ( | int | i | ) | const [inline] |
Reimplemented in SimTK::UnitVec< P, S >, and SimTK::UnitVec< Real, 1 >.
E& SimTK::Vec< M, ELT, STRIDE >::operator() | ( | int | i | ) | [inline] |
ScalarNormSq SimTK::Vec< M, ELT, STRIDE >::normSqr | ( | ) | const [inline] |
CNT<ScalarNormSq>::TSqrt SimTK::Vec< M, ELT, STRIDE >::norm | ( | ) | const [inline] |
TNormalize SimTK::Vec< M, ELT, STRIDE >::normalize | ( | ) | const [inline] |
Reimplemented in SimTK::Quaternion_< P >.
TInvert SimTK::Vec< M, ELT, STRIDE >::invert | ( | ) | const [inline] |
const Vec& SimTK::Vec< M, ELT, STRIDE >::operator+ | ( | ) | const [inline] |
const TNeg& SimTK::Vec< M, ELT, STRIDE >::operator- | ( | ) | const [inline] |
Reimplemented in SimTK::UnitVec< P, S >, and SimTK::UnitVec< Real, 1 >.
TNeg& SimTK::Vec< M, ELT, STRIDE >::operator- | ( | ) | [inline] |
const THerm& SimTK::Vec< M, ELT, STRIDE >::operator~ | ( | ) | const [inline] |
Reimplemented in SimTK::UnitVec< P, S >, and SimTK::UnitVec< Real, 1 >.
THerm& SimTK::Vec< M, ELT, STRIDE >::operator~ | ( | ) | [inline] |
Reimplemented in SimTK::UnitVec< P, S >, and SimTK::UnitVec< Real, 1 >.
const TNeg& SimTK::Vec< M, ELT, STRIDE >::negate | ( | ) | const [inline] |
Reimplemented in SimTK::UnitVec< P, S >, and SimTK::UnitVec< Real, 1 >.
TNeg& SimTK::Vec< M, ELT, STRIDE >::updNegate | ( | ) | [inline] |
const THerm& SimTK::Vec< M, ELT, STRIDE >::transpose | ( | ) | const [inline] |
THerm& SimTK::Vec< M, ELT, STRIDE >::updTranspose | ( | ) | [inline] |
const TPosTrans& SimTK::Vec< M, ELT, STRIDE >::positionalTranspose | ( | ) | const [inline] |
TPosTrans& SimTK::Vec< M, ELT, STRIDE >::updPositionalTranspose | ( | ) | [inline] |
const TReal& SimTK::Vec< M, ELT, STRIDE >::real | ( | ) | const [inline] |
TReal& SimTK::Vec< M, ELT, STRIDE >::real | ( | ) | [inline] |
const TImag& SimTK::Vec< M, ELT, STRIDE >::imag | ( | ) | const [inline] |
TImag& SimTK::Vec< M, ELT, STRIDE >::imag | ( | ) | [inline] |
const TWithoutNegator& SimTK::Vec< M, ELT, STRIDE >::castAwayNegatorIfAny | ( | ) | const [inline] |
TWithoutNegator& SimTK::Vec< M, ELT, STRIDE >::updCastAwayNegatorIfAny | ( | ) | [inline] |
Vec<M, typename CNT<E>::template Result<EE>::Mul> SimTK::Vec< M, ELT, STRIDE >::scalarMultiply | ( | const EE & | e | ) | const [inline] |
Vec<M, typename CNT<EE>::template Result<E>::Mul> SimTK::Vec< M, ELT, STRIDE >::scalarMultiplyFromLeft | ( | const EE & | e | ) | const [inline] |
Vec<M, typename CNT<E>::template Result<EE>::Dvd> SimTK::Vec< M, ELT, STRIDE >::scalarDivide | ( | const EE & | e | ) | const [inline] |
Vec<M, typename CNT<EE>::template Result<E>::Dvd> SimTK::Vec< M, ELT, STRIDE >::scalarDivideFromLeft | ( | const EE & | e | ) | const [inline] |
Vec<M, typename CNT<E>::template Result<EE>::Add> SimTK::Vec< M, ELT, STRIDE >::scalarAdd | ( | const EE & | e | ) | const [inline] |
Vec<M, typename CNT<E>::template Result<EE>::Sub> SimTK::Vec< M, ELT, STRIDE >::scalarSubtract | ( | const EE & | e | ) | const [inline] |
Vec<M, typename CNT<EE>::template Result<E>::Sub> SimTK::Vec< M, ELT, STRIDE >::scalarSubtractFromLeft | ( | const EE & | e | ) | const [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator= | ( | const EE & | e | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator+= | ( | const EE & | e | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator-= | ( | const EE & | e | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator*= | ( | const EE & | e | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::operator/= | ( | const EE & | e | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarEq | ( | const EE & | ee | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarPlusEq | ( | const EE & | ee | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarMinusEq | ( | const EE & | ee | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarMinusEqFromLeft | ( | const EE & | ee | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarTimesEq | ( | const EE & | ee | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarTimesEqFromLeft | ( | const EE & | ee | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarDivideEq | ( | const EE & | ee | ) | [inline] |
Vec& SimTK::Vec< M, ELT, STRIDE >::scalarDivideEqFromLeft | ( | const EE & | ee | ) | [inline] |
void SimTK::Vec< M, ELT, STRIDE >::setToNaN | ( | ) | [inline] |
void SimTK::Vec< M, ELT, STRIDE >::setToZero | ( | ) | [inline] |
const Vec<MM,ELT,STRIDE>& SimTK::Vec< M, ELT, STRIDE >::getSubVec | ( | int | i | ) | const [inline] |
Vec<MM,ELT,STRIDE>& SimTK::Vec< M, ELT, STRIDE >::updSubVec | ( | int | i | ) | [inline] |
Vec<M-1,ELT,1> SimTK::Vec< M, ELT, STRIDE >::drop1 | ( | int | p | ) | const [inline] |
Vec<M+1,ELT,1> SimTK::Vec< M, ELT, STRIDE >::append1 | ( | const EE & | v | ) | const [inline] |
Vec<M+1,ELT,1> SimTK::Vec< M, ELT, STRIDE >::insert1 | ( | int | p, |
const EE & | v | ||
) | const [inline] |
static const Vec& SimTK::Vec< M, ELT, STRIDE >::getAs | ( | const ELT * | p | ) | [inline, static] |
static Vec& SimTK::Vec< M, ELT, STRIDE >::updAs | ( | ELT * | p | ) | [inline, static] |
static const Vec& SimTK::Vec< M, ELT, STRIDE >::getSubVec | ( | const Vec< MM, ELT, STRIDE > & | v, |
int | i | ||
) | [inline, static] |
static Vec& SimTK::Vec< M, ELT, STRIDE >::updSubVec | ( | Vec< MM, ELT, STRIDE > & | v, |
int | i | ||
) | [inline, static] |
static Vec<M,ELT,1> SimTK::Vec< M, ELT, STRIDE >::getNaN | ( | ) | [inline, static] |
bool SimTK::Vec< M, ELT, STRIDE >::isNaN | ( | ) | const [inline] |
Return true if any element of this Vec contains a NaN anywhere.
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.
bool SimTK::Vec< M, ELT, STRIDE >::isFinite | ( | ) | const [inline] |
Return true if no element contains an Infinity or a NaN.
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.
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.
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.
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).