#include <Row.h>
Classes | |
struct | EltResult |
struct | Result |
struct | Substitute |
Public Types | |
enum | { NRows = 1, NCols = N, NPackedElements = N, NActualElements = N * STRIDE, NActualScalars = CNT<E>::NActualScalars * NActualElements, RowSpacing = NActualElements, ColSpacing = STRIDE, ImagOffset = NTraits<ENumber>::ImagOffset, RealStrideFactor = 1, ArgDepth, IsScalar = 0, IsULessScalar = 0, IsNumber = 0, IsStdNumber = 0, IsPrecision = 0, SignInterpretation = CNT<E>::SignInterpretation } |
typedef Row< N, E, STRIDE > | T |
typedef Row< N, ENeg, STRIDE > | TNeg |
typedef Row< N, EWithoutNegator, STRIDE > | TWithoutNegator |
typedef Row< N, EReal, STRIDE *CNT< E >::RealStrideFactor > | TReal |
typedef Row< N, EImag, STRIDE *CNT< E >::RealStrideFactor > | TImag |
typedef Row< N, EComplex, STRIDE > | TComplex |
typedef Vec< N, EHerm, STRIDE > | THerm |
typedef Vec< N, E, STRIDE > | TPosTrans |
typedef E | TElement |
typedef Row | TRow |
typedef E | TCol |
typedef Vec< N, ESqrt, 1 > | TSqrt |
typedef Row< N, EAbs, 1 > | TAbs |
typedef Row< N, EStandard, 1 > | TStandard |
typedef Vec< N, EInvert, 1 > | TInvert |
typedef Row< N, ENormalize, 1 > | TNormalize |
typedef SymMat< N, ESqHermT > | TSqHermT |
typedef EScalarNormSq | 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 |
Row () | |
Row (const Row &src) | |
Row & | operator= (const Row &src) |
template<int SS> | |
Row (const Row< N, E, SS > &src) | |
template<int SS> | |
Row (const Row< N, ENeg, SS > &src) | |
template<class EE , int SS> | |
Row (const Row< N, EE, SS > &vv) | |
Row (const E &e) | |
Row (const ENeg &ne) | |
Row (int i) | |
Row (const E &e0, const E &e1) | |
Row (const E &e0, const E &e1, const E &e2) | |
Row (const E &e0, const E &e1, const E &e2, const E &e3) | |
Row (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4) | |
Row (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4, const E &e5) | |
Row (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4, const E &e5, const E &e6) | |
Row (const E &e0, const E &e1, const E &e2, const E &e3, const E &e4, const E &e5, const E &e6, const E &e7) | |
Row (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 > | |
Row (const EE *p) | |
template<class EE > | |
Row & | operator= (const EE *p) |
template<class EE , int SS> | |
Row & | operator= (const Row< N, EE, SS > &vv) |
template<class EE , int SS> | |
Row & | operator+= (const Row< N, EE, SS > &r) |
template<class EE , int SS> | |
Row & | operator+= (const Row< N, negator< EE >, SS > &r) |
template<class EE , int SS> | |
Row & | operator-= (const Row< N, EE, SS > &r) |
template<class EE , int SS> | |
Row & | operator-= (const Row< N, negator< EE >, SS > &r) |
template<class EE , int SS> | |
Row< N, typename CNT< E > ::template Result< EE >::Add > | conformingAdd (const Row< N, EE, SS > &r) const |
template<class EE , int SS> | |
Row< N, typename CNT< E > ::template Result< EE >::Sub > | conformingSubtract (const Row< N, EE, SS > &r) const |
template<class EE , int SS> | |
CNT< E >::template Result< EE > ::Mul | conformingMultiply (const Vec< N, EE, SS > &r) const |
template<int MatNCol, class EE , int CS, int RS> | |
Row< MatNCol, typename CNT< E > ::template Result< EE >::Mul > | conformingMultiply (const Mat< N, MatNCol, EE, CS, RS > &m) 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 Row & | 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 > | |
Row< N, typename CNT< E > ::template Result< EE >::Mul > | scalarMultiply (const EE &e) const |
template<class EE > | |
Row< N, typename CNT< EE > ::template Result< E >::Mul > | scalarMultiplyFromLeft (const EE &e) const |
template<class EE > | |
Row< N, typename CNT< E > ::template Result< EE >::Dvd > | scalarDivide (const EE &e) const |
template<class EE > | |
Row< N, typename CNT< EE > ::template Result< E >::Dvd > | scalarDivideFromLeft (const EE &e) const |
template<class EE > | |
Row< N, typename CNT< E > ::template Result< EE >::Add > | scalarAdd (const EE &e) const |
template<class EE > | |
Row< N, typename CNT< E > ::template Result< EE >::Sub > | scalarSubtract (const EE &e) const |
template<class EE > | |
Row< N, typename CNT< EE > ::template Result< E >::Sub > | scalarSubtractFromLeft (const EE &e) const |
template<class EE > | |
Row & | operator= (const EE &e) |
template<class EE > | |
Row & | operator+= (const EE &e) |
template<class EE > | |
Row & | operator-= (const EE &e) |
template<class EE > | |
Row & | operator*= (const EE &e) |
template<class EE > | |
Row & | operator/= (const EE &e) |
template<class EE > | |
Row & | scalarEq (const EE &ee) |
template<class EE > | |
Row & | scalarPlusEq (const EE &ee) |
template<class EE > | |
Row & | scalarMinusEq (const EE &ee) |
template<class EE > | |
Row & | scalarMinusEqFromLeft (const EE &ee) |
template<class EE > | |
Row & | scalarTimesEq (const EE &ee) |
template<class EE > | |
Row & | scalarTimesEqFromLeft (const EE &ee) |
template<class EE > | |
Row & | scalarDivideEq (const EE &ee) |
template<class EE > | |
Row & | scalarDivideEqFromLeft (const EE &ee) |
void | setToNaN () |
void | setToZero () |
template<int NN> | |
const Row< NN, ELT, STRIDE > & | getSubRow (int j) const |
template<int NN> | |
Row< NN, ELT, STRIDE > & | updSubRow (int j) |
Row< N-1, ELT, 1 > | drop1 (int p) const |
template<class EE > | |
Row< N+1, ELT, 1 > | append1 (const EE &v) const |
template<class EE > | |
Row< N+1, ELT, 1 > | insert1 (int p, const EE &v) const |
bool | isNaN () const |
Return true if any element of this Row contains a NaN anywhere. | |
bool | isInf () const |
Return true if any element of this Row 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 CS2> | |
bool | isNumericallyEqual (const Row< N, E2, CS2 > &r, double tol) const |
Test whether this row vector is numerically equal to some other row with the same shape, using a specified tolerance. | |
template<class E2 , int CS2> | |
bool | isNumericallyEqual (const Row< N, E2, CS2 > &r) const |
Test whether this row vector is numerically equal to some other row 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 row vector is numerically equal to the given element, using either a specified tolerance or the row'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 Row & | getAs (const ELT *p) |
static Row & | updAs (ELT *p) |
template<int NN> | |
static const Row & | getSubRow (const Row< NN, ELT, STRIDE > &r, int j) |
template<int NN> | |
static Row & | updSubRow (Row< NN, ELT, STRIDE > &r, int j) |
static Row< N, 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 Row.
typedef ENumber Number |
typedef EPrecision Precision |
typedef EScalar Scalar |
typedef EScalarNormSq ScalarNormSq |
typedef EStdNumber StdNumber |
typedef E TCol |
typedef E TElement |
typedef Row<N,ENormalize,1> TNormalize |
typedef EScalarNormSq TSqTHerm |
typedef Row<N,EWithoutNegator,STRIDE> TWithoutNegator |
typedef EULessScalar ULessScalar |
anonymous enum |
Row | ( | ) | [inline] |
Row | ( | const E & | e | ) | [inline, explicit] |
Row | ( | const ENeg & | ne | ) | [inline, explicit] |
Row | ( | int | i | ) | [inline, explicit] |
Referenced by Row< 3, P, S >::Row().
Row | ( | const E & | e0, | |
const E & | e1 | |||
) | [inline] |
Row | ( | const E & | e0, | |
const E & | e1, | |||
const E & | e2 | |||
) | [inline] |
Row | ( | const E & | e0, | |
const E & | e1, | |||
const E & | e2, | |||
const E & | e3 | |||
) | [inline] |
Row | ( | const E & | e0, | |
const E & | e1, | |||
const E & | e2, | |||
const E & | e3, | |||
const E & | e4 | |||
) | [inline] |
Row | ( | const E & | e0, | |
const E & | e1, | |||
const E & | e2, | |||
const E & | e3, | |||
const E & | e4, | |||
const E & | e5 | |||
) | [inline] |
Row | ( | const E & | e0, | |
const E & | e1, | |||
const E & | e2, | |||
const E & | e3, | |||
const E & | e4, | |||
const E & | e5, | |||
const E & | e6 | |||
) | [inline] |
Row | ( | 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] |
Row | ( | 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] |
Row | ( | const EE * | p | ) | [inline, explicit] |
TAbs abs | ( | ) | const [inline] |
Reimplemented in UnitRow< P, S >.
Referenced by SimTK::abs(), and UnitRow< P, S >::abs().
Row<N+1,ELT,1> append1 | ( | const EE & | v | ) | const [inline] |
Referenced by Row< 3, P, S >::insert1().
const TWithoutNegator& castAwayNegatorIfAny | ( | ) | const [inline] |
Referenced by Row< 3, P, S >::normalize().
Row<N,typename CNT<E>::template Result<EE>::Add> conformingAdd | ( | const Row< N, EE, SS > & | r | ) | const [inline] |
Referenced by Row< 3, P, S >::conformingAdd().
Row<MatNCol,typename CNT<E>::template Result<EE>::Mul> conformingMultiply | ( | const Mat< N, MatNCol, EE, CS, RS > & | m | ) | const [inline] |
Referenced by Row< 3, P, S >::conformingMultiply().
Row<N,typename CNT<E>::template Result<EE>::Sub> conformingSubtract | ( | const Row< N, EE, SS > & | r | ) | const [inline] |
Referenced by Row< 3, P, S >::conformingSubtract().
Row<N-1,ELT,1> drop1 | ( | int | p | ) | const [inline] |
static const Row& getAs | ( | const ELT * | p | ) | [inline, static] |
Referenced by Row< 3, P, S >::getSubRow().
static double getDefaultTolerance | ( | ) | [inline, static] |
For approximate comparisions, the default tolerance to use for a vector is the same as its elements' default tolerance.
Referenced by Row< 3, P, S >::getDefaultTolerance(), and Row< 3, P, S >::isNumericallyEqual().
static Row<N,ELT,1> getNaN | ( | ) | [inline, static] |
Referenced by Row< 3, P, S >::getNaN(), and Row< 3, P, S >::setToNaN().
const Row<NN,ELT,STRIDE>& getSubRow | ( | int | j | ) | const [inline] |
TImag& imag | ( | ) | [inline] |
const TImag& imag | ( | ) | const [inline] |
Row<N+1,ELT,1> insert1 | ( | int | p, | |
const EE & | v | |||
) | const [inline] |
TInvert invert | ( | ) | const [inline] |
bool isFinite | ( | ) | const [inline] |
Return true if no element contains an Infinity or a NaN.
bool isInf | ( | ) | const [inline] |
Return true if any element of this Row contains a +Inf or -Inf somewhere but no element contains a NaN anywhere.
bool isNaN | ( | ) | const [inline] |
Return true if any element of this Row contains a NaN anywhere.
bool isNumericallyEqual | ( | const ELT & | e, | |
double | tol = getDefaultTolerance() | |||
) | const [inline] |
Test whether every element of this row vector is numerically equal to the given element, using either a specified tolerance or the row's default tolerance (which is always the same or looser than the default tolerance for one of its elements).
bool isNumericallyEqual | ( | const Row< N, E2, CS2 > & | r | ) | const [inline] |
Test whether this row vector is numerically equal to some other row 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 Row< N, E2, CS2 > & | r, | |
double | tol | |||
) | const [inline] |
Test whether this row vector is numerically equal to some other row with the same shape, using a specified tolerance.
Referenced by Row< 3, P, S >::isNumericallyEqual().
int ncol | ( | ) | const [inline] |
const TNeg& negate | ( | ) | const [inline] |
Reimplemented in UnitRow< P, S >.
Referenced by Row< 3, P, S >::operator-().
CNT<ScalarNormSq>::TSqrt norm | ( | ) | const [inline] |
Referenced by Row< 3, P, S >::normalize().
TNormalize normalize | ( | ) | const [inline] |
ScalarNormSq normSqr | ( | ) | const [inline] |
int nrow | ( | ) | const [inline] |
E& operator() | ( | int | i | ) | [inline] |
const E& operator() | ( | int | i | ) | const [inline] |
Reimplemented in UnitRow< P, S >.
Row& operator*= | ( | const EE & | e | ) | [inline] |
const Row& operator+ | ( | ) | const [inline] |
Row& operator+= | ( | const EE & | e | ) | [inline] |
TNeg& operator- | ( | ) | [inline] |
const TNeg& operator- | ( | ) | const [inline] |
Reimplemented in UnitRow< P, S >.
Row& operator-= | ( | const EE & | e | ) | [inline] |
Row& operator/= | ( | const EE & | e | ) | [inline] |
Row& operator= | ( | const EE & | e | ) | [inline] |
Row& operator= | ( | const EE * | p | ) | [inline] |
E& operator[] | ( | int | i | ) | [inline] |
const E& operator[] | ( | int | i | ) | const [inline] |
Reimplemented in UnitRow< P, S >.
THerm& operator~ | ( | ) | [inline] |
Reimplemented in UnitRow< P, S >.
const THerm& operator~ | ( | ) | const [inline] |
Reimplemented in UnitRow< P, S >.
const TPosTrans& positionalTranspose | ( | ) | const [inline] |
Referenced by SimTK::cross(), SimTK::crossMat(), SimTK::crossMatSq(), SimTK::dot(), and SimTK::outer().
TReal& real | ( | ) | [inline] |
const TReal& real | ( | ) | const [inline] |
Row& scalarDivideEq | ( | const EE & | ee | ) | [inline] |
Referenced by Row< 3, P, S >::operator/=().
Row& scalarDivideEqFromLeft | ( | const EE & | ee | ) | [inline] |
Row<N, typename CNT<EE>::template Result<E>::Dvd> scalarDivideFromLeft | ( | const EE & | e | ) | const [inline] |
Row& scalarEq | ( | const EE & | ee | ) | [inline] |
Referenced by Row< 3, P, S >::operator=().
Row& scalarMinusEq | ( | const EE & | ee | ) | [inline] |
Referenced by Row< 3, P, S >::operator-=().
Row& scalarMinusEqFromLeft | ( | const EE & | ee | ) | [inline] |
Row<N, typename CNT<EE>::template Result<E>::Mul> scalarMultiplyFromLeft | ( | const EE & | e | ) | const [inline] |
ScalarNormSq scalarNormSqr | ( | ) | const [inline] |
Referenced by Row< 3, P, S >::norm(), and Row< 3, P, S >::normSqr().
Row& scalarPlusEq | ( | const EE & | ee | ) | [inline] |
Referenced by Row< 3, P, S >::operator+=().
Row<N, typename CNT<EE>::template Result<E>::Sub> scalarSubtractFromLeft | ( | const EE & | e | ) | const [inline] |
Row& scalarTimesEq | ( | const EE & | ee | ) | [inline] |
Referenced by Row< 3, P, S >::operator*=().
Row& scalarTimesEqFromLeft | ( | const EE & | ee | ) | [inline] |
void setToNaN | ( | ) | [inline] |
Referenced by Row< 3, P, S >::Row().
void setToZero | ( | ) | [inline] |
int size | ( | ) | const [inline] |
TSqrt sqrt | ( | ) | const [inline] |
Referenced by Row< 3, P, S >::norm().
TStandard standardize | ( | ) | const [inline] |
Referenced by Row< 3, P, S >::sum().
EStandard sum | ( | ) | const [inline] |
Referenced by Row< 3, P, S >::scalarNormSqr(), SimTK::sum(), and Row< 3, P, S >::sum().
const THerm& transpose | ( | ) | const [inline] |
Referenced by Row< 3, P, S >::operator~().
static Row& updAs | ( | ELT * | p | ) | [inline, static] |
Referenced by Row< 3, P, S >::append1(), and Row< 3, P, S >::updSubRow().
TWithoutNegator& updCastAwayNegatorIfAny | ( | ) | [inline] |
TNeg& updNegate | ( | ) | [inline] |
Referenced by Row< 3, P, S >::operator-().
TPosTrans& updPositionalTranspose | ( | ) | [inline] |
Row<NN,ELT,STRIDE>& updSubRow | ( | int | j | ) | [inline] |
Referenced by Mat< 3, 3, P >::appendRowCol().
THerm& updTranspose | ( | ) | [inline] |
Referenced by Row< 3, P, S >::operator~().