cisst-saw
|
Implementation of a fixed-size matrix using template metaprogramming. More...
#include <vctFixedSizeMatrix.h>
Public Types | |
typedef vctFixedSizeMatrixTraits < _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows > | MatrixTraits |
typedef vctFixedSizeMatrixBase < _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows, _elementType, typename vctFixedSizeMatrixTraits < _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows > ::array > | BaseType |
typedef vctFixedSizeMatrix < _elementType, _rows, _cols, _rowMajor > | ThisType |
typedef MatrixTraits::iterator | iterator |
typedef MatrixTraits::const_iterator | const_iterator |
typedef MatrixTraits::reverse_iterator | reverse_iterator |
typedef MatrixTraits::const_reverse_iterator | const_reverse_iterator |
typedef class cmnTypeTraits < value_type > | TypeTraits |
typedef TypeTraits::VaArgPromotion | ElementVaArgPromotion |
![]() | |
enum | |
enum | |
typedef vctFixedSizeMatrixBase < _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits < _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows > ::array > | ThisType |
typedef vctFixedSizeConstMatrixBase < _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits < _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows > ::array > | BaseType |
typedef vctFixedSizeMatrixTraits < _elementType, _rows, _cols, _rowStride, _colStride > | MatrixTraits |
typedef MatrixTraits::iterator | iterator |
typedef MatrixTraits::const_iterator | const_iterator |
typedef MatrixTraits::reverse_iterator | reverse_iterator |
typedef MatrixTraits::const_reverse_iterator | const_reverse_iterator |
typedef BaseType::RowRefType | RowRefType |
typedef BaseType::ColumnRefType | ColumnRefType |
typedef BaseType::ConstRowRefType | ConstRowRefType |
typedef BaseType::ConstColumnRefType | ConstColumnRefType |
typedef BaseType::DiagonalRefType | DiagonalRefType |
typedef BaseType::ConstDiagonalRefType | ConstDiagonalRefType |
typedef BaseType::RefTransposeType | RefTransposeType |
typedef BaseType::ConstRefTransposeType | ConstRefTransposeType |
typedef BaseType::RowValueType | RowValueType |
typedef BaseType::ColumnValueType | ColumnValueType |
![]() | |
enum | { DIMENSION = 2 } |
enum | { ROWS = MatrixTraits::ROWS, COLS = MatrixTraits::COLS, LENGTH = MatrixTraits::LENGTH } |
enum | { ROWSTRIDE = MatrixTraits::ROWSTRIDE, COLSTRIDE = MatrixTraits::COLSTRIDE } |
enum | { DIAGONAL_LENGTH = (ROWS <= COLS) ? ROWS : COLS, DIAGONAL_STRIDE = ROWSTRIDE + COLSTRIDE } |
typedef vctFixedSizeConstMatrixBase < _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType > | ThisType |
typedef vctFixedSizeMatrixTraits < _elementType, _rows, _cols, _rowStride, _colStride > | MatrixTraits |
typedef MatrixTraits::iterator | iterator |
typedef MatrixTraits::const_iterator | const_iterator |
typedef MatrixTraits::reverse_iterator | reverse_iterator |
typedef MatrixTraits::const_reverse_iterator | const_reverse_iterator |
typedef vctFixedSizeConstVectorRef < _elementType, COLS, COLSTRIDE > | ConstRowRefType |
typedef vctFixedSizeVectorRef < _elementType, COLS, COLSTRIDE > | RowRefType |
typedef vctFixedSizeConstVectorRef < _elementType, ROWS, ROWSTRIDE > | ConstColumnRefType |
typedef vctFixedSizeVectorRef < _elementType, ROWS, ROWSTRIDE > | ColumnRefType |
typedef vctFixedSizeConstVectorRef < _elementType, DIAGONAL_LENGTH, DIAGONAL_STRIDE > | ConstDiagonalRefType |
typedef vctFixedSizeVectorRef < _elementType, DIAGONAL_LENGTH, DIAGONAL_STRIDE > | DiagonalRefType |
typedef vctFixedSizeVector < _elementType, COLS > | RowValueType |
typedef vctFixedSizeVector < _elementType, ROWS > | ColumnValueType |
typedef vctFixedSizeConstMatrixRef < _elementType, _rows, _cols, _rowStride, _colStride > | ConstRefType |
typedef vctFixedSizeMatrixRef < _elementType, _rows, _cols, _rowStride, _colStride > | RefType |
typedef vctFixedSizeConstMatrixRef < _elementType, _cols, _rows, _colStride, _rowStride > | ConstRefTransposeType |
typedef vctFixedSizeMatrixRef < _elementType, _cols, _rows, _colStride, _rowStride > | RefTransposeType |
typedef vctFixedSizeMatrix < _elementType, COLS, ROWS, COLSTRIDE<=ROWSTRIDE > TransposeValueType;typedef vctFixedSizeMatrix < _elementType, ROWS, COLS, COLSTRIDE<=ROWSTRIDE > MatrixValueType;typedef vctFixedSizeMatrix< bool, ROWS, COLS, COLSTRIDE<=ROWSTRIDE > BoolMatrixValueType;typedef _dataPtrType DataType;protected:DataType Data;inline void ThrowUnlessValidIndex(size_type index) const throw(std::out_of_range){if(!ValidIndex(index)){cmnThrow(std::out_of_range("vctFixedSizeMatrix: Invalid index"));}}inline void ThrowUnlessValidIndex(size_type rowIndex, size_type colIndex) const throw(std::out_of_range){if(!ValidIndex(rowIndex, colIndex)){cmnThrow(std::out_of_range("vctFixedSizeMatrix: Invalid indices"));}}public:const_iterator begin() const {return const_iterator(Data, 0);}const_iterator end() const {return const_iterator(Data)+LENGTH;}const_reverse_iterator rbegin() const {return const_reverse_iterator(Pointer(ROWS-1, COLS-1), 0);}const_reverse_iterator rend() const {return const_reverse_iterator(Data-ROWSTRIDE+COLSTRIDE *(COLS-1), 0);}size_type size() const {return LENGTH;}const nsize_type &sizes(void) const {static nsize_type staticSizes(ROWS, COLS);return staticSizes;}size_type rows() const {return ROWS;}size_type cols() const {return COLS;}size_type max_size() const {return LENGTH;}const nstride_type &strides(void) const {static nstride_type staticStrides(ROWSTRIDE, COLSTRIDE);return staticStrides;}difference_type row_stride() const {return ROWSTRIDE;}difference_type col_stride() const {return COLSTRIDE;}bool empty() const {return(LENGTH==0);}ConstRowRefType operator[](size_type index) const {return ConstRowRefType(Data+ROWSTRIDE *index);}const_pointer Pointer(size_type rowIndex, size_type colIndex) const {return Data+ROWSTRIDE *rowIndex+COLSTRIDE *colIndex;}const_pointer Pointer(void) const {return Data;}inline bool ValidIndex(size_type index) const {return(index < size());}inline bool ValidIndex(size_type rowIndex, size_type colIndex) const {return((rowIndex< rows())&&(colIndex < cols()));}inline bool ValidRowIndex(size_type rowIndex) const {return(rowIndex < rows());}inline bool ValidColIndex(size_type colIndex) const {return(colIndex < cols());}const_reference at(size_type index) const throw(std::out_of_range){ThrowUnlessValidIndex(index);return(begin())[index];}const_reference at(size_type rowIndex, size_type colIndex) const throw(std::out_of_range){ThrowUnlessValidIndex(rowIndex, colIndex);return *(Pointer(rowIndex, colIndex));}const_reference operator()(size_type rowIndex, size_type colIndex) const throw(std::out_of_range){return at(rowIndex, colIndex);}const_reference Element(size_type rowIndex, size_type colIndex) const {return *(Pointer(rowIndex, colIndex));}ConstRowRefType Row(size_type index) const {return ConstRowRefType(Data+ROWSTRIDE *index);}ConstColumnRefType Column(size_type index) const {return ConstColumnRefType(Data+COLSTRIDE *index);}ConstDiagonalRefType Diagonal(void) const {return ConstDiagonalRefType(Data);}template < vct::size_type __subRows, vct::size_type __subCols > vctFixedSizeConstMatrixRef < _elementType, __subRows, __subCols, _rowStride, _colStride > Ref(const size_type startRow=0, const size_type startCol=0) const throw(std::out_of_range){vctFixedSizeConstMatrixRef < _elementType, __subRows, __subCols, _rowStride, _colStride > result(*this, startRow, startCol);return result;}inline value_type SumOfElements() const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < value_type >::Addition, typename vctUnaryOperations < value_type >::Identity > ::Run(*this);}inline value_type ProductOfElements() const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < value_type >::Multiplication, typename vctUnaryOperations < value_type >::Identity > ::Run(*this);}inline value_type Trace(void) const {return this->Diagonal().SumOfElements();}inline value_type NormSquare(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < value_type >::Addition, typename vctUnaryOperations < value_type >::Square >::Run(*this);}inline NormType Norm(void) const {return sqrt(NormType(NormSquare()));}inline value_type L1Norm(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < value_type >::Addition, typename vctUnaryOperations < value_type >::AbsValue > ::Run(*this);}inline value_type LinfNorm(void) const {return this-> MaxAbsElement();}inline value_type MaxElement(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < value_type >::Maximum, typename vctUnaryOperations < value_type >::Identity > ::Run(*this);}inline value_type MinElement(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < value_type >::Minimum, typename vctUnaryOperations < value_type >::Identity > ::Run(*this);}inline value_type MaxAbsElement(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < value_type >::Maximum, typename vctUnaryOperations < value_type >::AbsValue > ::Run(*this);}inline value_type MinAbsElement(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < value_type >::Minimum, typename vctUnaryOperations < value_type >::AbsValue > ::Run(*this);}inline void MinAndMaxElement(value_type &minElement, value_type &maxElement) const {vctFixedSizeMatrixLoopEngines::MinAndMax::Run((*this), minElement, maxElement);}inline bool IsPositive(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < bool >::And, typename vctUnaryOperations< bool, value_type >::IsPositive > ::Run(*this);}inline bool IsNonNegative(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < bool >::And, typename vctUnaryOperations< bool, value_type >::IsNonNegative > ::Run(*this);}inline bool IsNonPositive(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < bool >::And, typename vctUnaryOperations< bool, value_type >::IsNonPositive > ::Run(*this);}inline bool IsNegative(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < bool >::And, typename vctUnaryOperations< bool, value_type >::IsNegative > ::Run(*this);}inline bool All(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < bool >::And, typename vctUnaryOperations< bool, value_type >::IsNonzero >::Run(*this);}inline bool Any(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < bool >::Or, typename vctUnaryOperations< bool, value_type >::IsNonzero >::Run(*this);}inline bool IsFinite(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < bool >::And, typename vctUnaryOperations< bool, value_type >::IsFinite >::Run(*this);}inline bool HasNaN(void) const {return vctFixedSizeMatrixLoopEngines::SoMi < typename vctBinaryOperations < bool >::Or, typename vctUnaryOperations< bool, value_type >::IsNaN >::Run(*this);}inline bool IsColMajor(void) const {return(row_stride() <=col_stride());}inline bool IsRowMajor(void) const {return(col_stride() <=row_stride());}inline bool IsCompact(void) const {return(((row_stride()==1)&&(col_stride()==static_cast < stride_type >rows())))||((col_stride()==1)&&(row_stride()==static_cast < stride_type >cols()))));}inline bool IsFortran(void) const {return(IsColMajor()&&(row_stride()==1)&&(col_stride()==static_cast < stride_type >rows())));}inline bool StorageOrder(void) const {return this-> | IsRowMajor () |
Public Member Functions | |
VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType) | |
vctFixedSizeMatrix () | |
vctFixedSizeMatrix (const value_type &value) | |
vctFixedSizeMatrix (const value_type element0, const value_type element1,...) | |
template<class __elementType , stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
vctFixedSizeMatrix (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &matrix) | |
template<class __matrixOwnerType > | |
vctFixedSizeMatrix (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &matrix) | |
template<stride_type __rowStride, stride_type __colStride, class __elementType , class __dataPtrType > | |
ThisType & | operator= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other) |
ThisType & | operator= (const ThisType &other) |
template<stride_type __rowStride, stride_type __colStride> | |
ThisType & | operator= (const vctFixedSizeConstMatrixRef< value_type, _rows, _cols, __rowStride, __colStride > &other) |
template<stride_type __rowStride, stride_type __colStride, class __elementType > | |
ThisType & | operator= (const vctFixedSizeConstMatrixRef< __elementType, _rows, _cols, __rowStride, __colStride > &other) |
ThisType & | operator= (const value_type &value) |
![]() | |
VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType) | |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
reverse_iterator | rbegin () |
const_reverse_iterator | rbegin () const |
reverse_iterator | rend () |
const_reverse_iterator | rend () const |
RowRefType | operator[] (size_type index) |
ConstRowRefType | operator[] (size_type index) const |
pointer | Pointer (size_type rowIndex, size_type colIndex) |
pointer | Pointer (void) |
const_pointer | Pointer (size_type rowIndex, size_type colIndex) const |
const_pointer | Pointer (void) const |
reference | at (size_type index) throw (std::out_of_range) |
const_reference | at (size_type index) const throw (std::out_of_range) |
reference | at (size_type rowIndex, size_type colIndex) throw (std::out_of_range) |
const_reference | at (size_type rowIndex, size_type colIndex) const throw (std::out_of_range) |
reference | operator() (size_type rowIndex, size_type colIndex) throw (std::out_of_range) |
const_reference | operator() (size_type rowIndex, size_type colIndex) const throw (std::out_of_range) |
reference | Element (size_type rowIndex, size_type colIndex) |
const_reference | Element (size_type rowIndex, size_type colIndex) const |
void | RowPermutationOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedRowIndexes[]) |
void | RowInversePermutationOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedRowIndexes[]) |
void | ColumnPermutationOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedColumnIndexes[]) |
void | ColumnInversePermutationOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedColumnIndexes[]) |
value_type | SetAll (const value_type value) |
bool | Zeros (void) |
ThisType & | Assign (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other) |
ThisType & | Assign (const value_type element0,...) |
ThisType & | Assign (const value_type *elements, bool inputIsRowMajor=true) |
ThisType & | Assign (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &other) |
RefTransposeType | TransposeRef (void) |
ConstRefTransposeType | TransposeRef (void) const |
void | ProductOf (const vctFixedSizeConstMatrixBase< _rows, __input1Cols, __input1RowStride, __input1ColStride, _elementType, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< __input1Cols, _cols, __input2RowStride, __input2ColStride, _elementType, __input2DataPtrType > &input2Matrix) |
ThisType & | AddProductOf (const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | AddElementwiseProductOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &matrix1, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &matrix2) |
ThisType & | TransposeOf (const vctFixedSizeConstMatrixBase< _cols, _rows, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
void | OuterProductOf (const vctFixedSizeConstVectorBase< _rows, __stride1, _elementType, __dataPtrType1 > &columnVector, const vctFixedSizeConstVectorBase< _cols, __stride2, _elementType, __dataPtrType2 > &rowVector) |
bool | FromStreamRaw (std::istream &inputStream, const char delimiter= ' ') |
void | DeSerializeRaw (std::istream &inputStream) |
RowRefType | Row (size_type index) |
ConstRowRefType | Row (size_type index) const |
ColumnRefType | Column (size_type index) |
ConstColumnRefType | Column (size_type index) const |
DiagonalRefType | Diagonal (void) |
ConstDiagonalRefType | Diagonal (void) const |
vctFixedSizeMatrixRef < _elementType, __subRows, __subCols, _rowStride, _colStride > | Ref (const size_type startRow=0, const size_type startCol=0) throw (std::out_of_range) |
vctFixedSizeConstMatrixRef < _elementType, __subRows, __subCols, _rowStride, _colStride > | Ref (const size_type startRow=0, const size_type startCol=0) const throw (std::out_of_range) |
void | ExchangeRows (const size_type row1Index, const size_type row2Index) |
void | ExchangeColumns (const size_type col1Index, const size_type col2Index) |
void | SelectRowsFrom (const vctFixedSizeConstMatrixBase< __rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const vctFixedSizeConstVectorBase< _rows, __indexStride, index_type, __indexDataPtrType > &rowIndexVector) |
void | SelectColsFrom (const vctFixedSizeConstMatrixBase< _rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const vctFixedSizeConstVectorBase< _cols, __indexStride, index_type, __indexDataPtrType > &colIndexVector) |
ThisType & | ForceAssign (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other) |
ThisType & | ForceAssign (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &other) |
bool | FastCopyOf (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &source, bool performSafetyChecks=vctFastCopy::PerformChecks) throw (std::runtime_error) |
bool | FastCopyOf (const vctFixedSizeConstMatrixBase< ROWS, COLS, ROWSTRIDE, COLSTRIDE, value_type, __dataPtrType > &source, bool performSafetyChecks=vctFastCopy::PerformChecks) throw (std::runtime_error) |
ThisType & | SumOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix) |
ThisType & | DifferenceOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix) |
ThisType & | ElementwiseProductOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix) |
ThisType & | ElementwiseRatioOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix) |
ThisType & | ElementwiseMinOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix) |
ThisType & | ElementwiseMaxOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix) |
ThisType & | Add (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | Subtract (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | ElementwiseMultiply (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | ElementwiseDivide (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | ElementwiseMin (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | ElementwiseMax (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | operator+= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | operator-= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | SumOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar) |
ThisType & | DifferenceOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar) |
ThisType & | ProductOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar) |
ThisType & | RatioOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar) |
ThisType & | ClippedAboveOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type upperBound) |
ThisType & | ClippedBelowOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type lowerBound) |
ThisType & | SumOf (const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix) |
ThisType & | DifferenceOf (const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix) |
ThisType & | ProductOf (const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix) |
ThisType & | RatioOf (const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix) |
ThisType & | ClippedAboveOf (const value_type upperBound, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix) |
ThisType & | ClippedBelowOf (const value_type lowerBound, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix) |
ThisType & | Add (const value_type scalar) |
ThisType & | Subtract (const value_type scalar) |
ThisType & | operator+= (const value_type scalar) |
ThisType & | operator-= (const value_type scalar) |
ThisType & | Multiply (const value_type scalar) |
ThisType & | Divide (const value_type scalar) |
ThisType & | ClipAbove (const value_type upperBound) |
ThisType & | ClipBelow (const value_type lowerBound) |
ThisType & | operator*= (const value_type scalar) |
ThisType & | operator/= (const value_type scalar) |
ThisType & | AbsOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | NegationOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | FloorOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | CeilOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) |
ThisType & | AbsSelf (void) |
ThisType & | NegationSelf (void) |
ThisType & | FloorSelf (void) |
ThisType & | CeilSelf (void) |
![]() | |
VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType) | |
VCT_NARRAY_TRAITS_TYPEDEFS (DIMENSION) | |
bool | IsSquare (void) const |
bool | IsSquare (size_type size) const |
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | FastCopyCompatible (const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, value_type, __dataPtrType > &source) const |
template<class __matrixOwnerType > | |
bool | FastCopyCompatible (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &source) const |
ConstRefTransposeType | TransposeRef (void) const |
TransposeValueType | Transpose () const |
std::string | ToString (void) const |
void | ToStream (std::ostream &outputStream) const |
void | ToStreamRaw (std::ostream &outputStream, const char delimiter= ' ', bool headerOnly=false, const std::string &headerPrefix="") const |
void | SerializeRaw (std::ostream &outputStream) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | Equal (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | operator== (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | AlmostEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix, value_type tolerance) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | AlmostEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | NotEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | operator!= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | Lesser (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | LesserOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | Greater (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
bool | GreaterOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
BoolMatrixValueType | ElementwiseEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
BoolMatrixValueType | ElementwiseNotEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
BoolMatrixValueType | ElementwiseLesser (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
BoolMatrixValueType | ElementwiseLesserOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
BoolMatrixValueType | ElementwiseGreater (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType > | |
BoolMatrixValueType | ElementwiseGreaterOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const |
bool | Equal (const value_type &scalar) const |
bool | operator== (const value_type &scalar) const |
bool | NotEqual (const value_type &scalar) const |
bool | operator!= (const value_type &scalar) const |
bool | Lesser (const value_type &scalar) const |
bool | LesserOrEqual (const value_type &scalar) const |
bool | Greater (const value_type &scalar) const |
bool | GreaterOrEqual (const value_type &scalar) const |
BoolMatrixValueType | ElementwiseEqual (const value_type &scalar) const |
BoolMatrixValueType | ElementwiseNotEqual (const value_type &scalar) const |
BoolMatrixValueType | ElementwiseLesser (const value_type &scalar) const |
BoolMatrixValueType | ElementwiseLesserOrEqual (const value_type &scalar) const |
BoolMatrixValueType | ElementwiseGreater (const value_type &scalar) const |
BoolMatrixValueType | ElementwiseGreaterOrEqual (const value_type &scalar) const |
MatrixValueType | Abs (void) const |
MatrixValueType | Negation (void) const |
MatrixValueType | Floor (void) const |
MatrixValueType | Ceil (void) const |
Additional Inherited Members | |
![]() | |
static const MatrixValueType & | Eye (void) |
Implementation of a fixed-size matrix using template metaprogramming.
The matrix type is stored as a contiguous array of a fixed size (stack allocation). It provides methods for operations which are implemented using template metaprogramming. See vctFixedSizeConstMatrixBase and vctFixedSizeMatrixBase for more implementation details.
_elementType | the type of an element in the matrix |
_rows | the number of rows of the matrix |
_cols | the number of columns of the matrix |
_rowMajor | the storage order, either VCT_ROW_MAJOR (default) or VCT_COL_MAJOR. |
typedef vctFixedSizeMatrixBase<_rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows, _elementType, typename vctFixedSizeMatrixTraits<_elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows>::array > vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor >::BaseType |
Type of the base class
typedef MatrixTraits::const_iterator vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor >::const_iterator |
typedef MatrixTraits::const_reverse_iterator vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor >::const_reverse_iterator |
typedef TypeTraits::VaArgPromotion vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor >::ElementVaArgPromotion |
typedef MatrixTraits::iterator vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor >::iterator |
typedef vctFixedSizeMatrixTraits<_elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows> vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor >::MatrixTraits |
typedef MatrixTraits::reverse_iterator vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor >::reverse_iterator |
typedef vctFixedSizeMatrix<_elementType, _rows, _cols, _rowMajor> vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor >::ThisType |
typedef class cmnTypeTraits< value_type > vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor >::TypeTraits |
|
inline |
Default constructor. Do nothing.
|
inlineexplicit |
Initialize all the elements to the given value.
value | the value used to set all the elements of the matrix |
|
inline |
Initialize the elements of the matrix with a set of given values. The assignment is done by the order of the iterators, that is, row by row from the low column to the high column in each row.
va_arg
, the parameters must be correctly casted. E.g, 3.14
will be treated as a double while 3.14f
will be treated as a float and 3
will be handled like an integer.
|
inlineexplicit |
Initialize the elements of this matrix with values from another matrix. The other matrix can include elements of any type, which will be converted using standard conversion to elements of this matrix.
|
inline |
Initialize the matrix from a dynamic matrix with elements of the same type.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Assignement of a scalar to all elements. See also SetAll.
vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor >::VCT_CONTAINER_TRAITS_TYPEDEFS | ( | _elementType | ) |