Simbody  3.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SimTK::Vector_< T > Class Template Reference

This is the Vector class intended to appear in user code. More...

#include <BigMatrix.h>

+ Inheritance diagram for SimTK::Vector_< T >:

Public Member Functions

 Vector_ ()
 
 Vector_ (const Vector_ &src)
 
 Vector_ (const Base &src)
 
 Vector_ (const BaseNeg &src)
 
Vector_operator= (const Vector_ &src)
 
 Vector_ (int m)
 
 Vector_ (int m, const ELT *cppInitialValues)
 
 Vector_ (int m, const ELT &initialValue)
 
 Vector_ (int m, const S *cppData, bool)
 Construct a Vector which uses borrowed space with assumed element-to-element stride equal to the C++ element spacing. More...
 
 Vector_ (int m, S *cppData, bool)
 
 Vector_ (int m, int stride, const S *data, bool)
 Borrowed-space construction with explicit stride supplied as "number of scalars between elements". More...
 
 Vector_ (int m, int stride, S *data, bool)
 
template<int M>
 Vector_ (const Vec< M, ELT > &v)
 Convert a Vec to a Vector_. More...
 
Vector_operator= (const ELT &v)
 
template<class EE >
Vector_operator= (const VectorBase< EE > &m)
 
template<class EE >
Vector_operator+= (const VectorBase< EE > &m)
 
template<class EE >
Vector_operator-= (const VectorBase< EE > &m)
 
Vector_operator*= (const StdNumber &t)
 
Vector_operator/= (const StdNumber &t)
 
Vector_operator+= (const ELT &b)
 
Vector_operator-= (const ELT &b)
 
std::string toString () const
 toString() returns a string representation of the Vector_. More...
 
const ELT & get (int i) const
 Variant of operator[] that's scripting friendly to get ith entry. More...
 
void set (int i, const ELT &value)
 Variant of operator[] that's scripting friendly to set ith entry. More...
 
- Public Member Functions inherited from SimTK::VectorBase< ELT >
VectorBaseoperator= (const VectorBase &b)
 Copy assignment is deep copy but behavior depends on type of lhs: if view, rhs must match. More...
 
VectorBaseoperator*= (const StdNumber &t)
 
VectorBaseoperator/= (const StdNumber &t)
 
VectorBaseoperator+= (const VectorBase &r)
 
VectorBaseoperator-= (const VectorBase &r)
 
template<class EE >
VectorBaseoperator= (const VectorBase< EE > &b)
 
template<class EE >
VectorBaseoperator+= (const VectorBase< EE > &b)
 
template<class EE >
VectorBaseoperator-= (const VectorBase< EE > &b)
 
VectorBaseoperator= (const ELT &t)
 Fill current allocation with copies of element. More...
 
template<class EE >
VectorBaserowScaleInPlace (const VectorBase< EE > &v)
 There's only one column here so it's a bit weird to use rowScale rather than elementwiseMultiply, but there's nothing really wrong with it. More...
 
template<class EE >
void rowScale (const VectorBase< EE > &v, typename EltResult< EE >::Mul &out) const
 
template<class EE >
EltResult< EE >::Mul rowScale (const VectorBase< EE > &v) const
 
CNT< ScalarNormSq >::TSqrt normRMS (int *worstOne=0) const
 Return the root-mean-square (RMS) norm of a Vector of scalars, with optional return of the index of the element of largest absolute value. More...
 
template<class EE >
CNT< ScalarNormSq >::TSqrt weightedNormRMS (const VectorBase< EE > &w, int *worstOne=0) const
 Return the weighted root-mean-square (WRMS) norm of a Vector of scalars, with optional return of the index of the weighted element of largest absolute value. More...
 
EAbs normInf (int *worstOne=0) const
 Return the infinity norm (max absolute value) of a Vector of scalars, with optional return of the index of the element of largest absolute value. More...
 
template<class EE >
EAbs weightedNormInf (const VectorBase< EE > &w, int *worstOne=0) const
 Return the weighted infinity norm (max absolute value) WInf of a Vector of scalars, with optional return of the index of the weighted element of largest absolute value. More...
 
VectorBaseelementwiseInvertInPlace ()
 Set this[i] = this[i]^-1. More...
 
void elementwiseInvert (VectorBase< typename CNT< ELT >::TInvert > &out) const
 Set supplied out[i] = this[i]^-1. More...
 
VectorBase< typename CNT< ELT >
::TInvert
elementwiseInvert () const
 Return out[i]=this[i]^-1 as function return. More...
 
template<class EE >
VectorBaseelementwiseMultiplyInPlace (const VectorBase< EE > &r)
 
template<class EE >
void elementwiseMultiply (const VectorBase< EE > &v, typename EltResult< EE >::Mul &out) const
 
template<class EE >
EltResult< EE >::Mul elementwiseMultiply (const VectorBase< EE > &v) const
 
template<class EE >
VectorBaseelementwiseMultiplyFromLeftInPlace (const VectorBase< EE > &r)
 
template<class EE >
void elementwiseMultiplyFromLeft (const VectorBase< EE > &v, typename VectorBase< EE >::template EltResult< ELT >::Mul &out) const
 
template<class EE >
VectorBase< EE >::template
EltResult< ELT >::Mul 
elementwiseMultiplyFromLeft (const VectorBase< EE > &v) const
 
template<class EE >
VectorBaseelementwiseDivideInPlace (const VectorBase< EE > &r)
 
template<class EE >
void elementwiseDivide (const VectorBase< EE > &v, typename EltResult< EE >::Dvd &out) const
 
template<class EE >
EltResult< EE >::Dvd elementwiseDivide (const VectorBase< EE > &v) const
 
template<class EE >
VectorBaseelementwiseDivideFromLeftInPlace (const VectorBase< EE > &r)
 
template<class EE >
void elementwiseDivideFromLeft (const VectorBase< EE > &v, typename VectorBase< EE >::template EltResult< ELT >::Dvd &out) const
 
template<class EE >
VectorBase< EE >::template
EltResult< ELT >::Dvd 
elementwiseDivideFromLeft (const VectorBase< EE > &v) const
 
 operator const Vector_< ELT > & () const
 
 operator Vector_< ELT > & ()
 
 operator const VectorView_< ELT > & () const
 
 operator VectorView_< ELT > & ()
 
 operator const Matrix_< ELT > & () const
 
 operator Matrix_< ELT > & ()
 
 operator const MatrixView_< ELT > & () const
 
 operator MatrixView_< ELT > & ()
 
int size () const
 
int nrow () const
 
int ncol () const
 
ptrdiff_t nelt () const
 
TAbs abs () const
 
const ELT & operator[] (int i) const
 
ELT & operator[] (int i)
 
const ELT & operator() (int i) const
 
ELT & operator() (int i)
 
VectorView_< ELT > operator() (int i, int m) const
 
VectorView_< ELT > operator() (int i, int m)
 
VectorView_< ELT > index (const Array_< int > &indices) const
 
VectorView_< ELT > updIndex (const Array_< int > &indices)
 
VectorView_< ELT > operator() (const Array_< int > &indices) const
 
VectorView_< ELT > operator() (const Array_< int > &indices)
 
THerm transpose () const
 
THerm updTranspose ()
 
THerm operator~ () const
 
THerm operator~ ()
 
const VectorBaseoperator+ () const
 
const TNegnegate () const
 
TNegupdNegate ()
 
const TNegoperator- () const
 
TNegoperator- ()
 
VectorBaseresize (int m)
 
VectorBaseresizeKeep (int m)
 
void clear ()
 
ELT sum () const
 
VectorIterator< ELT,
VectorBase< ELT > > 
begin ()
 
VectorIterator< ELT,
VectorBase< ELT > > 
end ()
 
 VectorBase (int m=0)
 Default constructor makes a 0x1 matrix locked at 1 column; you can provide an initial allocation if you want. More...
 
 VectorBase (const VectorBase &source)
 Copy constructor is a deep copy (not appropriate for views!). More...
 
 VectorBase (const TNeg &source)
 Implicit conversion from compatible vector with negated elements. More...
 
 VectorBase (int m, const ELT &initialValue)
 Construct an owner vector of length m, with each element initialized to the given value. More...
 
 VectorBase (int m, const ELT *cppInitialValues)
 Construct an owner vector of length m, with the elements initialized sequentially from a C++ array of elements which is assumed to be of length m. More...
 
 VectorBase (int m, int stride, const Scalar *s)
 Construct a read-only view of existing data. More...
 
 VectorBase (int m, int stride, Scalar *s)
 Construct a writable view into existing data. More...
 
 VectorBase (MatrixHelper< Scalar > &h, const typename MatrixHelper< Scalar >::ShallowCopy &s)
 Construct a writable view into the source data. More...
 
 VectorBase (const MatrixHelper< Scalar > &h, const typename MatrixHelper< Scalar >::ShallowCopy &s)
 Construct a read-only view of the source data. More...
 
 VectorBase (const MatrixHelper< Scalar > &h, const typename MatrixHelper< Scalar >::DeepCopy &d)
 Construct a new owner vector initialized with the data from the source. More...
 
- Public Member Functions inherited from SimTK::MatrixBase< ELT >
const MatrixCommitmentgetCharacterCommitment () const
 
const MatrixCharactergetMatrixCharacter () const
 
void commitTo (const MatrixCommitment &mc)
 Change the handle commitment for this matrix handle; only allowed if the handle is currently clear. More...
 
int nrow () const
 Return the number of rows m in the logical shape of this matrix. More...
 
int ncol () const
 Return the number of columns n in the logical shape of this matrix. More...
 
ptrdiff_t nelt () const
 Return the number of elements in the logical shape of this matrix. More...
 
bool isResizeable () const
 Return true if either dimension of this Matrix is resizable. More...
 
 MatrixBase ()
 The default constructor builds a 0x0 matrix managed by a helper that understands how many scalars there are in one of our elements but is otherwise uncommitted. More...
 
 MatrixBase (int m, int n)
 This constructor allocates the default matrix a completely uncommitted matrix commitment, given particular initial dimensions. More...
 
 MatrixBase (const MatrixCommitment &commitment)
 This constructor takes a handle commitment and allocates the default matrix for that kind of commitment. More...
 
 MatrixBase (const MatrixCommitment &commitment, int m, int n)
 This constructor takes a handle commitment and allocates the default matrix for that kind of commitment given particular initial minimum dimensions, which cannot be larger than those permitted by the commitment. More...
 
 MatrixBase (const MatrixBase &b)
 Copy constructor is a deep copy (not appropriate for views!). More...
 
 MatrixBase (const TNeg &b)
 Implicit conversion from matrix with negated elements (otherwise this is just like the copy constructor. More...
 
MatrixBasecopyAssign (const MatrixBase &b)
 Copy assignment is a deep copy but behavior depends on type of lhs: if view, rhs must match. More...
 
MatrixBaseoperator= (const MatrixBase &b)
 
MatrixBaseviewAssign (const MatrixBase &src)
 View assignment is a shallow copy, meaning that we disconnect the MatrixBase from whatever it used to refer to (destructing as necessary), then make it a new view for the data descriptor referenced by the source. More...
 
 MatrixBase (const MatrixCommitment &commitment, int m, int n, const ELT &initialValue)
 Initializing constructor with all of the initially-allocated elements initialized to the same value. More...
 
 MatrixBase (const MatrixCommitment &commitment, int m, int n, const ELT *cppInitialValuesByRow)
 Initializing constructor with the initially-allocated elements initialized from a C++ array of elements, which is provided in row major order. More...
 
 MatrixBase (const MatrixCommitment &commitment, MatrixHelper< Scalar > &source, const typename MatrixHelper< Scalar >::ShallowCopy &shallow)
 
 MatrixBase (const MatrixCommitment &commitment, const MatrixHelper< Scalar > &source, const typename MatrixHelper< Scalar >::ShallowCopy &shallow)
 
 MatrixBase (const MatrixCommitment &commitment, const MatrixHelper< Scalar > &source, const typename MatrixHelper< Scalar >::DeepCopy &deep)
 
void clear ()
 This restores the MatrixBase to the state it would be in had it been constructed specifying only its handle commitment. More...
 
MatrixBaseoperator*= (const StdNumber &t)
 
MatrixBaseoperator/= (const StdNumber &t)
 
MatrixBaseoperator+= (const MatrixBase &r)
 
MatrixBaseoperator-= (const MatrixBase &r)
 
template<class EE >
 MatrixBase (const MatrixBase< EE > &b)
 
template<class EE >
MatrixBaseoperator= (const MatrixBase< EE > &b)
 
template<class EE >
MatrixBaseoperator+= (const MatrixBase< EE > &b)
 
template<class EE >
MatrixBaseoperator-= (const MatrixBase< EE > &b)
 
MatrixBaseoperator= (const ELT &t)
 Matrix assignment to an element sets only the *diagonal* elements to the indicated value; everything else is set to zero. More...
 
template<class S >
MatrixBasescalarAssign (const S &s)
 Set M's diagonal elements to a "scalar" value S, and all off-diagonal elements to zero. More...
 
template<class S >
MatrixBasescalarAddInPlace (const S &s)
 Add a scalar to M's diagonal. More...
 
template<class S >
MatrixBasescalarSubtractInPlace (const S &s)
 Subtract a scalar from M's diagonal. More...
 
template<class S >
MatrixBasescalarSubtractFromLeftInPlace (const S &s)
 Set M(i,i) = S - M(i,i), M(i,j) = -M(i,j) for i!=j. More...
 
template<class S >
MatrixBasescalarMultiplyInPlace (const S &)
 Set M(i,j) = M(i,j)*S for some "scalar" S. More...
 
template<class S >
MatrixBasescalarMultiplyFromLeftInPlace (const S &)
 Set M(i,j) = S * M(i,j) for some "scalar" S. More...
 
template<class S >
MatrixBasescalarDivideInPlace (const S &)
 Set M(i,j) = M(i,j)/S for some "scalar" S. More...
 
template<class S >
MatrixBasescalarDivideFromLeftInPlace (const S &)
 Set M(i,j) = S/M(i,j) for some "scalar" S. More...
 
template<class EE >
MatrixBaserowScaleInPlace (const VectorBase< EE > &)
 M = diag(r) * M; r must have nrow() elements. More...
 
template<class EE >
void rowScale (const VectorBase< EE > &r, typename EltResult< EE >::Mul &out) const
 Return type is a new matrix which will have the same dimensions as 'this' but will have element types appropriate for the elementwise multiply being performed. More...
 
template<class EE >
EltResult< EE >::Mul rowScale (const VectorBase< EE > &r) const
 
template<class EE >
MatrixBasecolScaleInPlace (const VectorBase< EE > &)
 M = M * diag(c); c must have ncol() elements. More...
 
template<class EE >
void colScale (const VectorBase< EE > &c, typename EltResult< EE >::Mul &out) const
 
template<class EE >
EltResult< EE >::Mul colScale (const VectorBase< EE > &c) const
 
template<class ER , class EC >
MatrixBaserowAndColScaleInPlace (const VectorBase< ER > &r, const VectorBase< EC > &c)
 M = diag(r) * M * diag(c); r must have nrow() elements; must have ncol() elements. More...
 
template<class ER , class EC >
void rowAndColScale (const VectorBase< ER > &r, const VectorBase< EC > &c, typename EltResult< typename VectorBase< ER >::template EltResult< EC >::Mul >::Mul &out) const
 
template<class ER , class EC >
EltResult< typename VectorBase
< ER >::template EltResult< EC >
::Mul >::Mul 
rowAndColScale (const VectorBase< ER > &r, const VectorBase< EC > &c) const
 
template<class S >
MatrixBaseelementwiseAssign (const S &s)
 Set M(i,j)=s for every element of M and some value s. More...
 
MatrixBaseelementwiseAssign (int s)
 Overloaded to allow an integer argument, which is converted to Real. More...
 
MatrixBaseelementwiseInvertInPlace ()
 Set M(i,j) = M(i,j)^-1. More...
 
void elementwiseInvert (MatrixBase< typename CNT< E >::TInvert > &out) const
 
MatrixBase< typename CNT< E >
::TInvert
elementwiseInvert () const
 
template<class S >
MatrixBaseelementwiseAddScalarInPlace (const S &s)
 Set M(i,j)+=s for every element of M and some value s. More...
 
template<class S >
void elementwiseAddScalar (const S &s, typename EltResult< S >::Add &) const
 
template<class S >
EltResult< S >::Add elementwiseAddScalar (const S &s) const
 
template<class S >
MatrixBaseelementwiseSubtractScalarInPlace (const S &s)
 Set M(i,j)-=s for every element of M and some value s. More...
 
template<class S >
void elementwiseSubtractScalar (const S &s, typename EltResult< S >::Sub &) const
 
template<class S >
EltResult< S >::Sub elementwiseSubtractScalar (const S &s) const
 
template<class S >
MatrixBaseelementwiseSubtractFromScalarInPlace (const S &s)
 Set M(i,j) = s - M(i,j) for every element of M and some value s. More...
 
template<class S >
void elementwiseSubtractFromScalar (const S &, typename MatrixBase< S >::template EltResult< E >::Sub &) const
 
template<class S >
MatrixBase< S >::template
EltResult< E >::Sub 
elementwiseSubtractFromScalar (const S &s) const
 
template<class EE >
MatrixBaseelementwiseMultiplyInPlace (const MatrixBase< EE > &)
 M(i,j) *= R(i,j); R must have same dimensions as this. More...
 
template<class EE >
void elementwiseMultiply (const MatrixBase< EE > &, typename EltResult< EE >::Mul &) const
 
template<class EE >
EltResult< EE >::Mul elementwiseMultiply (const MatrixBase< EE > &m) const
 
template<class EE >
MatrixBaseelementwiseMultiplyFromLeftInPlace (const MatrixBase< EE > &)
 M(i,j) = R(i,j) * M(i,j); R must have same dimensions as this. More...
 
template<class EE >
void elementwiseMultiplyFromLeft (const MatrixBase< EE > &, typename MatrixBase< EE >::template EltResult< E >::Mul &) const
 
template<class EE >
MatrixBase< EE >::template
EltResult< E >::Mul 
elementwiseMultiplyFromLeft (const MatrixBase< EE > &m) const
 
template<class EE >
MatrixBaseelementwiseDivideInPlace (const MatrixBase< EE > &)
 M(i,j) /= R(i,j); R must have same dimensions as this. More...
 
template<class EE >
void elementwiseDivide (const MatrixBase< EE > &, typename EltResult< EE >::Dvd &) const
 
template<class EE >
EltResult< EE >::Dvd elementwiseDivide (const MatrixBase< EE > &m) const
 
template<class EE >
MatrixBaseelementwiseDivideFromLeftInPlace (const MatrixBase< EE > &)
 M(i,j) = R(i,j) / M(i,j); R must have same dimensions as this. More...
 
template<class EE >
void elementwiseDivideFromLeft (const MatrixBase< EE > &, typename MatrixBase< EE >::template EltResult< E >::Dvd &) const
 
template<class EE >
MatrixBase< EE >::template
EltResult< EE >::Dvd 
elementwiseDivideFromLeft (const MatrixBase< EE > &m) const
 
MatrixBasesetTo (const ELT &t)
 Fill every element in current allocation with given element (or NaN or 0). More...
 
MatrixBasesetToNaN ()
 
MatrixBasesetToZero ()
 
RowVectorView_< ELT > row (int i) const
 
RowVectorView_< ELT > updRow (int i)
 
VectorView_< ELT > col (int j) const
 
VectorView_< ELT > updCol (int j)
 
RowVectorView_< ELT > operator[] (int i) const
 
RowVectorView_< ELT > operator[] (int i)
 
VectorView_< ELT > operator() (int j) const
 
VectorView_< ELT > operator() (int j)
 
MatrixView_< ELT > block (int i, int j, int m, int n) const
 
MatrixView_< ELT > updBlock (int i, int j, int m, int n)
 
MatrixView_< ELT > operator() (int i, int j, int m, int n) const
 
MatrixView_< ELT > operator() (int i, int j, int m, int n)
 
MatrixView_< EHermtranspose () const
 
MatrixView_< EHermupdTranspose ()
 
MatrixView_< EHermoperator~ () const
 
MatrixView_< EHermoperator~ ()
 
VectorView_< ELT > diag () const
 Select main diagonal (of largest leading square if rectangular) and return it as a read-only view of the diagonal elements of this Matrix. More...
 
VectorView_< ELT > updDiag ()
 Select main diagonal (of largest leading square if rectangular) and return it as a writable view of the diagonal elements of this Matrix. More...
 
VectorView_< ELT > diag ()
 This non-const version of diag() is an alternate name for updDiag() available for historical reasons. More...
 
TInvert invert () const
 
void invertInPlace ()
 
void dump (const char *msg=0) const
 Matlab-compatible debug output. More...
 
template<class ELT_A , class ELT_B >
MatrixBasematmul (const StdNumber &beta, const StdNumber &alpha, const MatrixBase< ELT_A > &A, const MatrixBase< ELT_B > &B)
 
const ELT & getElt (int i, int j) const
 Element selection for stored elements. More...
 
ELT & updElt (int i, int j)
 
const ELT & operator() (int i, int j) const
 
ELT & operator() (int i, int j)
 
void getAnyElt (int i, int j, ELT &value) const
 This returns a copy of the element value for any position in the logical matrix, regardless of whether it is stored in memory. More...
 
ELT getAnyElt (int i, int j) const
 
ScalarNormSq scalarNormSqr () const
 Scalar norm square is sum( squares of all scalars ). More...
 
void abs (TAbs &mabs) const
 abs() is elementwise absolute value; that is, the return value has the same dimension as this Matrix but with each element replaced by whatever it thinks its absolute value is. More...
 
TAbs abs () const
 abs() with the result as a function return. More...
 
TStandard standardize () const
 Return a Matrix of the same shape and contents as this one but with the element type converted to one based on the standard C++ scalar types: float, double, complex<float>, complex<double>. More...
 
ScalarNormSq normSqr () const
 This is the scalar Frobenius norm, and its square. More...
 
CNT< ScalarNormSq >::TSqrt norm () const
 
CNT< ScalarNormSq >::TSqrt normRMS () const
 We only allow RMS norm if the elements are scalars. More...
 
RowVector_< ELT > colSum () const
 Form the column sums of this matrix, returned as a RowVector. More...
 
RowVector_< ELT > sum () const
 Alternate name for colSum(); behaves like the Matlab function sum(). More...
 
Vector_< ELT > rowSum () const
 Form the row sums of this matrix, returned as a Vector. More...
 
const MatrixBaseoperator+ () const
 
const TNegnegate () const
 
TNegupdNegate ()
 
const TNegoperator- () const
 
TNegoperator- ()
 
MatrixBasenegateInPlace ()
 
MatrixBaseresize (int m, int n)
 Change the size of this matrix. More...
 
MatrixBaseresizeKeep (int m, int n)
 Change the size of this matrix, retaining as much of the old data as will fit. More...
 
void lockShape ()
 
void unlockShape ()
 
const MatrixView_< ELT > & getAsMatrixView () const
 
MatrixView_< ELT > & updAsMatrixView ()
 
const Matrix_< ELT > & getAsMatrix () const
 
Matrix_< ELT > & updAsMatrix ()
 
const VectorView_< ELT > & getAsVectorView () const
 
VectorView_< ELT > & updAsVectorView ()
 
const Vector_< ELT > & getAsVector () const
 
Vector_< ELT > & updAsVector ()
 
const VectorBase< ELT > & getAsVectorBase () const
 
VectorBase< ELT > & updAsVectorBase ()
 
const RowVectorView_< ELT > & getAsRowVectorView () const
 
RowVectorView_< ELT > & updAsRowVectorView ()
 
const RowVector_< ELT > & getAsRowVector () const
 
RowVector_< ELT > & updAsRowVector ()
 
const RowVectorBase< ELT > & getAsRowVectorBase () const
 
RowVectorBase< ELT > & updAsRowVectorBase ()
 
int getNScalarsPerElement () const
 This is the number of consecutive scalars used to represent one element of type ELT. More...
 
int getPackedSizeofElement () const
 This is like sizeof(ELT), but returning the number of bytes we use to store the element which may be fewer than what C++ would use. More...
 
bool hasContiguousData () const
 
ptrdiff_t getContiguousScalarDataLength () const
 
const ScalargetContiguousScalarData () const
 
ScalarupdContiguousScalarData ()
 
void replaceContiguousScalarData (Scalar *newData, ptrdiff_t length, bool takeOwnership)
 
void replaceContiguousScalarData (const Scalar *newData, ptrdiff_t length)
 
void swapOwnedContiguousScalarData (Scalar *newData, ptrdiff_t length, Scalar *&oldData)
 
 MatrixBase (MatrixHelperRep< Scalar > *hrep)
 Helper rep-stealing constructor. More...
 
template<class EE >
MatrixBase< ELT > & rowScaleInPlace (const VectorBase< EE > &v)
 
template<class EE >
void rowScale (const VectorBase< EE > &v, typename MatrixBase< ELT >::template EltResult< EE >::Mul &out) const
 
template<class EE >
MatrixBase< ELT > & colScaleInPlace (const VectorBase< EE > &v)
 
template<class EE >
void colScale (const VectorBase< EE > &v, typename MatrixBase< ELT >::template EltResult< EE >::Mul &out) const
 
template<class ER , class EC >
MatrixBase< ELT > & rowAndColScaleInPlace (const VectorBase< ER > &r, const VectorBase< EC > &c)
 
template<class S >
MatrixBase< ELT > & elementwiseAssign (const S &s)
 
template<class S >
MatrixBase< ELT > & elementwiseAddScalarInPlace (const S &s)
 
template<class S >
void elementwiseAddScalar (const S &s, typename MatrixBase< ELT >::template EltResult< S >::Add &out) const
 
template<class S >
MatrixBase< ELT > & elementwiseSubtractScalarInPlace (const S &s)
 
template<class S >
void elementwiseSubtractScalar (const S &s, typename MatrixBase< ELT >::template EltResult< S >::Sub &out) const
 
template<class S >
MatrixBase< ELT > & elementwiseSubtractFromScalarInPlace (const S &s)
 
template<class EE >
MatrixBase< ELT > & elementwiseMultiplyInPlace (const MatrixBase< EE > &r)
 
template<class EE >
void elementwiseMultiply (const MatrixBase< EE > &r, typename MatrixBase< ELT >::template EltResult< EE >::Mul &out) const
 
template<class EE >
MatrixBase< ELT > & elementwiseMultiplyFromLeftInPlace (const MatrixBase< EE > &r)
 
template<class EE >
MatrixBase< ELT > & elementwiseDivideInPlace (const MatrixBase< EE > &r)
 
template<class EE >
void elementwiseDivide (const MatrixBase< EE > &r, typename MatrixBase< ELT >::template EltResult< EE >::Dvd &out) const
 
template<class EE >
MatrixBase< ELT > & elementwiseDivideFromLeftInPlace (const MatrixBase< EE > &r)
 
 MatrixBase (const MatrixCommitment &commitment, const MatrixCharacter &character, int spacing, const Scalar *data)
 Construct a read-only view of pre-existing data. More...
 
 MatrixBase (const MatrixCommitment &commitment, const MatrixCharacter &character, int spacing, Scalar *data)
 Construct a writable view of pre-existing data. More...
 

Related Functions

(Note that these are not member functions.)

Matrix_<T> serialization and I/O

These methods are at namespace scope but are logically part of the Vector classes.

These deal with reading and writing Vectors from and to streams, which places an additional requirement on the element type T: the element must support the same operation you are trying to do on the Vector as a whole.

template<class E >
void writeUnformatted (std::ostream &o, const Vector_< E > &v)
 Raw serialization of Vector_<E>; same as VectorBase<E>. More...
 
template<class T >
std::ostream & operator<< (std::ostream &o, const VectorBase< T > &v)
 Output a human readable representation of a Vector to an std::ostream (like std::cout). More...
 
template<class T >
static std::istream & readVectorFromStream (std::istream &in, Vector_< T > &out)
 Read in a Vector_<T> from a stream, as a sequence of space-separated or comma-separated values optionally surrounded by parentheses (), or square brackets [], or the "transposed" ~() or ~[]. More...
 
template<class T >
static std::istream & fillVectorFromStream (std::istream &in, Vector_< T > &out)
 Read in a fixed number of elements from a stream into a Vector. More...
 
template<class T >
std::istream & operator>> (std::istream &in, Vector_< T > &out)
 Read Vector_<T> from a stream as a sequence of space- or comma-separated values of type T, optionally delimited by parentheses, or brackets, and preceded by "~". More...
 

Additional Inherited Members

- Public Types inherited from SimTK::MatrixBase< ELT >
enum  {
  NScalarsPerElement = CNT<E>::NActualScalars,
  CppNScalarsPerElement = sizeof(E) / sizeof(Scalar)
}
 
typedef ELT E
 
typedef CNT< E >::TNeg ENeg
 
typedef CNT< E >::TWithoutNegator EWithoutNegator
 
typedef CNT< E >::TReal EReal
 
typedef CNT< E >::TImag EImag
 
typedef CNT< E >::TComplex EComplex
 
typedef CNT< E >::THerm EHerm
 
typedef CNT< E >::TPosTrans EPosTrans
 
typedef CNT< E >::TAbs EAbs
 
typedef CNT< E >::TStandard EStandard
 
typedef CNT< E >::TInvert EInvert
 
typedef CNT< E >::TNormalize ENormalize
 
typedef CNT< E >::TSqHermT ESqHermT
 
typedef CNT< E >::TSqTHerm ESqTHerm
 
typedef CNT< E >::Scalar EScalar
 
typedef CNT< E >::Number ENumber
 
typedef CNT< E >::StdNumber EStdNumber
 
typedef CNT< E >::Precision EPrecision
 
typedef CNT< E >::ScalarNormSq EScalarNormSq
 
typedef EScalar Scalar
 
typedef ENumber Number
 
typedef EStdNumber StdNumber
 
typedef EPrecision Precision
 
typedef EScalarNormSq ScalarNormSq
 
typedef MatrixBase< ET
 
typedef MatrixBase< ENegTNeg
 
typedef MatrixBase
< EWithoutNegator
TWithoutNegator
 
typedef MatrixBase< ERealTReal
 
typedef MatrixBase< EImagTImag
 
typedef MatrixBase< EComplexTComplex
 
typedef MatrixBase< EHermTHerm
 
typedef MatrixBase< ETPosTrans
 
typedef MatrixBase< EAbsTAbs
 
typedef MatrixBase< EStandardTStandard
 
typedef MatrixBase< EInvertTInvert
 
typedef MatrixBase< ENormalizeTNormalize
 
typedef MatrixBase< ESqHermTTSqHermT
 
typedef MatrixBase< ESqTHermTSqTHerm
 
- Protected Member Functions inherited from SimTK::VectorBase< ELT >
 VectorBase (MatrixHelperRep< Scalar > *hrep)
 
- Protected Member Functions inherited from SimTK::MatrixBase< ELT >
const MatrixHelper< Scalar > & getHelper () const
 
MatrixHelper< Scalar > & updHelper ()
 

Detailed Description

template<class T = Real>
class SimTK::Vector_< T >

This is the Vector class intended to appear in user code.

It can be a fixed-size view of someone else's data, or can be a resizable data owner itself, although of course it will always have just one column.

Constructor & Destructor Documentation

template<class T = Real>
SimTK::Vector_< T >::Vector_ ( )
inline
template<class T = Real>
SimTK::Vector_< T >::Vector_ ( const Vector_< T > &  src)
inline
template<class T = Real>
SimTK::Vector_< T >::Vector_ ( const Base src)
inline
template<class T = Real>
SimTK::Vector_< T >::Vector_ ( const BaseNeg src)
inline
template<class T = Real>
SimTK::Vector_< T >::Vector_ ( int  m)
inlineexplicit
template<class T = Real>
SimTK::Vector_< T >::Vector_ ( int  m,
const ELT *  cppInitialValues 
)
inline
template<class T = Real>
SimTK::Vector_< T >::Vector_ ( int  m,
const ELT &  initialValue 
)
inline
template<class T = Real>
SimTK::Vector_< T >::Vector_ ( int  m,
const S *  cppData,
bool   
)
inline

Construct a Vector which uses borrowed space with assumed element-to-element stride equal to the C++ element spacing.

Last parameter is a dummy to avoid overload conflicts when ELT=S; pass it as "true".

template<class T = Real>
SimTK::Vector_< T >::Vector_ ( int  m,
S *  cppData,
bool   
)
inline
template<class T = Real>
SimTK::Vector_< T >::Vector_ ( int  m,
int  stride,
const S *  data,
bool   
)
inline

Borrowed-space construction with explicit stride supplied as "number of scalars between elements".

Last parameter is a dummy to avoid overload conflicts; pass it as "true".

template<class T = Real>
SimTK::Vector_< T >::Vector_ ( int  m,
int  stride,
S *  data,
bool   
)
inline
template<class T = Real>
template<int M>
SimTK::Vector_< T >::Vector_ ( const Vec< M, ELT > &  v)
inlineexplicit

Convert a Vec to a Vector_.

Member Function Documentation

template<class T = Real>
Vector_& SimTK::Vector_< T >::operator= ( const Vector_< T > &  src)
inline
template<class T = Real>
Vector_& SimTK::Vector_< T >::operator= ( const ELT &  v)
inline
template<class T = Real>
template<class EE >
Vector_& SimTK::Vector_< T >::operator= ( const VectorBase< EE > &  m)
inline
template<class T = Real>
template<class EE >
Vector_& SimTK::Vector_< T >::operator+= ( const VectorBase< EE > &  m)
inline
template<class T = Real>
template<class EE >
Vector_& SimTK::Vector_< T >::operator-= ( const VectorBase< EE > &  m)
inline
template<class T = Real>
Vector_& SimTK::Vector_< T >::operator*= ( const StdNumber t)
inline
template<class T = Real>
Vector_& SimTK::Vector_< T >::operator/= ( const StdNumber t)
inline
template<class T = Real>
Vector_& SimTK::Vector_< T >::operator+= ( const ELT &  b)
inline
template<class T = Real>
Vector_& SimTK::Vector_< T >::operator-= ( const ELT &  b)
inline
template<class T = Real>
std::string SimTK::Vector_< T >::toString ( ) const
inline

toString() returns a string representation of the Vector_.

Please refer to operator<< for details.

template<class T = Real>
const ELT& SimTK::Vector_< T >::get ( int  i) const
inline

Variant of operator[] that's scripting friendly to get ith entry.

template<class T = Real>
void SimTK::Vector_< T >::set ( int  i,
const ELT &  value 
)
inline

Variant of operator[] that's scripting friendly to set ith entry.

Friends And Related Function Documentation

template<class E >
void writeUnformatted ( std::ostream &  o,
const Vector_< E > &  v 
)
related

Raw serialization of Vector_<E>; same as VectorBase<E>.

template<class T >
std::ostream & operator<< ( std::ostream &  o,
const VectorBase< T > &  v 
)
related

Output a human readable representation of a Vector to an std::ostream (like std::cout).

The format is ~[ elements ] where elements is a space-separated list of the Vector's contents output by invoking the "<<" operator on the elements. This function will not compile if the element type does not support the "<<" operator. No newline is issued before or after the output.

template<class T >
static std::istream & readVectorFromStream ( std::istream &  in,
Vector_< T > &  out 
)
related

Read in a Vector_<T> from a stream, as a sequence of space-separated or comma-separated values optionally surrounded by parentheses (), or square brackets [], or the "transposed" ~() or ~[].

In the case that the transpose operator is present, the parentheses or brackets are required, otherwise they are optional. We will continue to read elements of type T from the stream until we find a reason to stop, using type T's stream extraction operator>>() to read in each element and resizing the Vector as necessary. If the data is bracketed, we'll read until we hit the closing bracket. If it is not bracketed, we'll read until we hit eof() or get an error such as the element extractor setting the stream's fail bit due to bad formatting. On successful return, the stream will be positioned right after the final read-in element or terminating bracket, and the stream's status will be good() or eof(). We will not consume trailing whitespace after bracketed elements; that means the stream might actually be empty even if we don't return eof(). If you want to know whether there is anything else in the stream, follow this call with the STL whitespace skipper std::ws() like this:

if (readVectorFromStream(in,vec) && !in.eof())
std::ws(in); // might take us to eof
if (in.fail()) {...} // probably a formatting error
else {
// Here if the stream is good() then there is more to read; if the
// stream got used up the status is guaranteed to be eof().
}

A compilation error will occur if you try to use this method on an Vector_<T> for a type T for which there is no stream extraction operator>>().

Note
If you want to fill a resizeable Vector_<T> with a fixed amount of data from the stream, resize() the Vector to the appropriate length and then use fillVectorFromStream() instead.
See Also
fillVectorFromStream()
template<class T >
static std::istream & fillVectorFromStream ( std::istream &  in,
Vector_< T > &  out 
)
related

Read in a fixed number of elements from a stream into a Vector.

We expect to read in exactly size() elements of type T, using type T's stream extraction operator>>(). This will stop reading when we've read size() elements, or set the fail bit in the stream if we run out of elements or if any element's extract operator sets the fail bit. On successful return, all size() elements will have been set, the stream will be positioned right after the final read-in element or terminating bracket, and the stream's status will be good() or eof(). We will not consume trailing whitespace after reading all the elements; that means the stream might actually be empty even if we don't return eof(). If you want to know whether there is anything else in the stream, follow this call with std::ws() like this:

if (!in.eof()) std::ws(in); // might take us to eof
if (in.fail()) {...} // deal with I/O or formatting error
// Here if the stream is good() then there is more to read; if the
// stream got used up the status is guaranteed to be eof().

A compilation error will occur if you try to use this method on a Vector_<T> for a type T for which there is no stream extraction operator>>().

Note
If you want to read in a variable number of elements and have the Vector_<T> resized as needed, use readVectorFromStream() instead.
See Also
readVectorFromStream()
template<class T >
std::istream & operator>> ( std::istream &  in,
Vector_< T > &  out 
)
related

Read Vector_<T> from a stream as a sequence of space- or comma-separated values of type T, optionally delimited by parentheses, or brackets, and preceded by "~".

The Vector_<T> may be an owner (variable size) or a view (fixed size n). In the case of an owner, we'll read all the elements in brackets or until eof if there are no brackets. In the case of a view, there must be exactly n elements in brackets, or if there are no brackets we'll consume exactly n elements and then stop. Each element is read in with its own operator ">>" so this won't work if no such operator is defined for type T.


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