Simbody
Public Member Functions

SimTK::MatrixView_< ELT > Class Template Reference

This class is identical to a Matrix_; it is used only to manage the C++ rules for when copy constructors are called by introducing a separate type to prevent certain allowed optimizations from occuring when we don't want them. More...

#include <BigMatrix.h>

Inheritance diagram for SimTK::MatrixView_< ELT >:

List of all members.

Public Member Functions

 MatrixView_ (MatrixHelperRep< S > *hrep)
 MatrixView_ (const MatrixView_ &m)
MatrixView_operator= (const MatrixView_ &m)
 MatrixView_ (DeadMatrixView_< ELT > &)
MatrixView_operator= (DeadMatrixView_< ELT > &)
 MatrixView_ (const MatrixHelper< S > &h)
 MatrixView_ (MatrixHelper< S > &h)
MatrixView_operator= (const Matrix_< ELT > &v)
MatrixView_operator= (const ELT &e)
 Matrix assignment to an element sets only the *diagonal* elements to the indicated value; everything else is set to zero.
template<class EE >
MatrixView_operator= (const MatrixBase< EE > &m)
template<class EE >
MatrixView_operator+= (const MatrixBase< EE > &m)
template<class EE >
MatrixView_operator-= (const MatrixBase< EE > &m)
MatrixView_operator*= (const StdNumber &t)
MatrixView_operator/= (const StdNumber &t)
MatrixView_operator+= (const ELT &r)
MatrixView_operator-= (const ELT &r)
 operator const Matrix_< ELT > & () const
 operator Matrix_< ELT > & ()

Detailed Description

template<class ELT>
class SimTK::MatrixView_< ELT >

This class is identical to a Matrix_; it is used only to manage the C++ rules for when copy constructors are called by introducing a separate type to prevent certain allowed optimizations from occuring when we don't want them.

Despite the name, this may be an owner if a Matrix_ is recast to a MatrixView_. However, there are no owner constructors for MatrixView_.


Constructor & Destructor Documentation

template<class ELT>
SimTK::MatrixView_< ELT >::MatrixView_ ( MatrixHelperRep< S > *  hrep) [inline, explicit]
template<class ELT>
SimTK::MatrixView_< ELT >::MatrixView_ ( const MatrixView_< ELT > &  m) [inline]
template<class ELT >
SimTK::MatrixView_< ELT >::MatrixView_ ( DeadMatrixView_< ELT > &  dead) [inline]
template<class ELT>
SimTK::MatrixView_< ELT >::MatrixView_ ( const MatrixHelper< S > &  h) [inline]
template<class ELT>
SimTK::MatrixView_< ELT >::MatrixView_ ( MatrixHelper< S > &  h) [inline]

Member Function Documentation

template<class ELT>
MatrixView_& SimTK::MatrixView_< ELT >::operator= ( const MatrixView_< ELT > &  m) [inline]
template<class ELT >
MatrixView_< ELT > & SimTK::MatrixView_< ELT >::operator= ( DeadMatrixView_< ELT > &  dead) [inline]
template<class ELT>
MatrixView_& SimTK::MatrixView_< ELT >::operator= ( const Matrix_< ELT > &  v) [inline]

Reimplemented in SimTK::DeadMatrixView_< ELT >.

template<class ELT>
MatrixView_& SimTK::MatrixView_< ELT >::operator= ( const ELT &  t) [inline]

Matrix assignment to an element sets only the *diagonal* elements to the indicated value; everything else is set to zero.

This is particularly useful for setting a Matrix to zero or to the identity; for other values it creates a Matrix which acts like the scalar. That is, if the scalar is s and we do M=s, then multiplying another Matrix B by the resulting diagonal matrix M gives the same result as multiplying B by s. That is (M=s)*B == s*B.

NOTE: this must be overridden for Vector and RowVector since then scalar assignment is defined to copy the scalar to every element.

Reimplemented from SimTK::MatrixBase< ELT >.

Reimplemented in SimTK::DeadMatrixView_< ELT >.

template<class ELT>
template<class EE >
MatrixView_& SimTK::MatrixView_< ELT >::operator= ( const MatrixBase< EE > &  m) [inline]

Reimplemented from SimTK::MatrixBase< ELT >.

Reimplemented in SimTK::DeadMatrixView_< ELT >.

template<class ELT>
template<class EE >
MatrixView_& SimTK::MatrixView_< ELT >::operator+= ( const MatrixBase< EE > &  m) [inline]

Reimplemented from SimTK::MatrixBase< ELT >.

Reimplemented in SimTK::DeadMatrixView_< ELT >.

template<class ELT>
template<class EE >
MatrixView_& SimTK::MatrixView_< ELT >::operator-= ( const MatrixBase< EE > &  m) [inline]

Reimplemented from SimTK::MatrixBase< ELT >.

Reimplemented in SimTK::DeadMatrixView_< ELT >.

template<class ELT>
MatrixView_& SimTK::MatrixView_< ELT >::operator*= ( const StdNumber t) [inline]

Reimplemented from SimTK::MatrixBase< ELT >.

Reimplemented in SimTK::DeadMatrixView_< ELT >.

template<class ELT>
MatrixView_& SimTK::MatrixView_< ELT >::operator/= ( const StdNumber t) [inline]

Reimplemented from SimTK::MatrixBase< ELT >.

Reimplemented in SimTK::DeadMatrixView_< ELT >.

template<class ELT>
MatrixView_& SimTK::MatrixView_< ELT >::operator+= ( const ELT &  r) [inline]

Reimplemented in SimTK::DeadMatrixView_< ELT >.

template<class ELT>
MatrixView_& SimTK::MatrixView_< ELT >::operator-= ( const ELT &  r) [inline]

Reimplemented in SimTK::DeadMatrixView_< ELT >.

template<class ELT>
SimTK::MatrixView_< ELT >::operator const Matrix_< ELT > & ( ) const [inline]
template<class ELT>
SimTK::MatrixView_< ELT >::operator Matrix_< ELT > & ( ) [inline]

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