cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType > Class Template Reference

A template for a fixed size matrix with fixed spacing in memory. More...

#include <vctFixedSizeConstMatrixBase.h>

Inheritance diagram for vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >:
vctFixedSizeConstMatrixRef< double, 3, 3, vctFixedSizeMatrix< double, 4, 4, VCT_COL_MAJOR >::ROWSTRIDE, vctFixedSizeMatrix< double, 4, 4, VCT_COL_MAJOR >::COLSTRIDE > vctFixedSizeMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType > vctFixedSizeMatrixBase< _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array > vctFixedSizeMatrix< CISSTNETLIB_DOUBLE, _cols, _cols, _storageOrder > vctFixedSizeMatrix< CISSTNETLIB_DOUBLE, _cols, _rows, _storageOrder > vctFixedSizeMatrix< CISSTNETLIB_DOUBLE, _ma+_me+_mg, _n+1, VCT_COL_MAJOR > vctFixedSizeMatrix< CISSTNETLIB_DOUBLE, _rows, _rows, _storageOrder > vctFixedSizeMatrix< double, 3, 3 > vctFixedSizeMatrix< double, 3, 3, _rowMajor > vctFixedSizeMatrix< double, 3, 3, VCT_ROW_MAJOR > vctFixedSizeMatrix< double, 4, 4 > vctFixedSizeMatrix< double, 4, 4, _rowMajor > vctFixedSizeMatrix< double, 4, 4, VCT_COL_MAJOR > vctFixedSizeMatrix< double, 4, 4, VCT_ROW_MAJOR > vctFixedSizeMatrixRef< CISSTNETLIB_DOUBLE, _cols, _cols, _storageOrder?_cols:1, _storageOrder?1:_cols > vctFixedSizeMatrixRef< CISSTNETLIB_DOUBLE, _cols, _rows, _storageOrder?_cols:1, _storageOrder?1:_rows > vctFixedSizeMatrixRef< CISSTNETLIB_DOUBLE, _rows, _rows, _storageOrder?_rows:1, _storageOrder?1:_rows > vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor > vctFixedSizeMatrix< _elementType, 2, 2 > vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor >

Classes

class  ConstSubmatrix
 

Public Types

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)
 
 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
 
Elementwise comparisons between matrices.

Returns the matrix of comparison's results.

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
 
Elementwise comparisons between a matrix and a scalar.

Returns the result of the comparison.

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
 
Unary elementwise operations.

Returns the result of matrix.op().

MatrixValueType Abs (void) const
 
MatrixValueType Negation (void) const
 
MatrixValueType Floor (void) const
 
MatrixValueType Ceil (void) const
 

Static Public Member Functions

static const MatrixValueType & Eye (void)
 

Detailed Description

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
class vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >

A template for a fixed size matrix with fixed spacing in memory.

The matrix can be defined over an existing memory block, or define its own memory block. The class's methods follow the STL specifications for Random Access Container. It uses vctFixedSizeMatrixTraits to define the types required by the STL interface.

This class defines a read-only memory matrix. The read/write matrix is derived from this class (compare with vctFixedStrideMatrixConstIterator). Therefore, all the methods of this class are const. The non-const matrix and methods are defined in vctFixedSizeMatrixBase.

Matrix indexing is zero-based.

The method provided for the compatibility with the STL containers start with a lower case. Other methods start with a capitalilized letter (see CISST naming convention).

Parameters
_elementTypethe type of element in the matrix.
_rowsthe number of rows that the matrix provides access to.
_colsthe number of columns that the matrix provides access to.
_rowStridethe spacing between the rows in the memory block.
_colStridethe spacing between the columns in the memory block.
_dataPtrTypethe type of object that defines the matrix. This may be an element pointer of an acutal fixed-size C-style array type.
See Also
vctFixedStrideMatrixConstIterator vctFixedSizeMatrixTraits

Member Typedef Documentation

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeVectorRef<_elementType, ROWS, ROWSTRIDE> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ColumnRefType

The type indicating a column of this matrix accessed by (non-const) reference

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeVector<_elementType, ROWS> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ColumnValueType

The type of vector object required to store a copy of a column of this matrix

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef MatrixTraits::const_iterator vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::const_iterator

Const iterator on the elements of the matrix.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef MatrixTraits::const_reverse_iterator vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::const_reverse_iterator

Const reverse iterator on the elements of the matrix.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeConstVectorRef<_elementType, ROWS, ROWSTRIDE> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ConstColumnRefType

The type indicating a column of this matrix accessed by (const) reference

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeConstVectorRef<_elementType, DIAGONAL_LENGTH, DIAGONAL_STRIDE> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ConstDiagonalRefType

The type indicating the main diagonal of the matrix accessed by (const) reference

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeConstMatrixRef<_elementType, _cols, _rows, _colStride, _rowStride> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ConstRefTransposeType

The type of object representing this matrix accessed in transposed order. Access is by (const) reference

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeConstMatrixRef<_elementType, _rows, _cols, _rowStride, _colStride> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ConstRefType

The type of const reference to this matrix.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeConstVectorRef<_elementType, COLS, COLSTRIDE> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ConstRowRefType

The type indicating a row of this matrix accessed by (const) reference

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeVectorRef<_elementType, DIAGONAL_LENGTH, DIAGONAL_STRIDE> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::DiagonalRefType

The type indicating the main diagonal of the matrix accessed by (non-const) reference

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
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-> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::IsRowMajor()

The type of object required to store a transposed copy of this matrix. The storage order is determined by comparing the strides.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef MatrixTraits::iterator vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::iterator

Iterator on the elements of the matrix.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeMatrixTraits<_elementType, _rows, _cols, _rowStride, _colStride> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::MatrixTraits

Traits used for all useful types related to a vctFixedSizeMatrix

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeMatrixRef<_elementType, _cols, _rows, _colStride, _rowStride> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::RefTransposeType

The type of object representing this matrix accessed in transposed order. Access is by (non-const) reference

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeMatrixRef<_elementType, _rows, _cols, _rowStride, _colStride> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::RefType

The type of reference to this matrix.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef MatrixTraits::reverse_iterator vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::reverse_iterator

Reverse iterator on the elements of the matrix.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeVectorRef<_elementType, COLS, COLSTRIDE> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::RowRefType

The type indicating a row of this matrix accessed by (non-const) reference

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeVector<_elementType, COLS> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::RowValueType

The type of vector object required to store a copy of a row of this matrix

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
typedef vctFixedSizeConstMatrixBase<_rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType> vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ThisType

Type of the matrix itself.

Member Enumeration Documentation

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
anonymous enum
Enumerator
DIMENSION 
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
anonymous enum

Define the dimensions of the matrix

Enumerator
ROWS 
COLS 
LENGTH 
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
anonymous enum

Define the strides between rows and columns of the matrix

Enumerator
ROWSTRIDE 
COLSTRIDE 
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
anonymous enum

Define properties of the main diagonal of the matrix

Enumerator
DIAGONAL_LENGTH 
DIAGONAL_STRIDE 

Member Function Documentation

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType , class _dataPtrType >
vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::MatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Abs ( void  ) const
inline

Unary elementwise operations on a matrix. For each element of the matrix "this", performs $ this[i] \leftarrow op(otherMatrix[i])$ where $op$ can calculate the absolute value (Abs) or the opposite (Negation).

Returns
A new matrix.
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::AlmostEqual ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix,
value_type  tolerance 
) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::AlmostEqual ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType , class _dataPtrType >
vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::MatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Ceil ( void  ) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseEqual ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline

Comparison between two matrices of the same size, containing the same type of elements. The strides and the internal representation (_dataPtrType) can be different. The comparaison ( $ = \neq < \leq > \geq $) for ElementwiseEqual(), ElementwiseNotEqual(), ElementwiseLesser(), ElementwiseLesserOrEqual(), ElementwiseGreater() or ElementwiseGreaterOrEqual() is performed elementwise between the two matrices and stored in a newly created matrix. There is no operator provided since the semantic would be ambiguous.

Returns
A matrix of booleans.
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseEqual ( const value_type &  scalar) const
inline

Comparison between a matrix and a scalar, containing the same type of elements. The comparaison ( $ = \neq < \leq > \geq $) for ElementwiseEqual(), ElementwiseNotEqual(), ElementwiseLesser(), ElementwiseLesserOrEqual(), ElementwiseGreater() or ElementwiseGreaterOrEqual() is performed elementwise between the matrix and the scalar and stored in a newly created matrix. There is no operator provided since the semantic would be ambiguous.

Returns
A matrix of booleans.
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseGreater ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseGreater ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseGreaterOrEqual ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseGreaterOrEqual ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseLesser ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseLesser ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseLesserOrEqual ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseLesserOrEqual ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseNotEqual ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
BoolMatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ElementwiseNotEqual ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Equal ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline

Comparison between two matrices of the same size, containing the same type of elements. The strides and the internal representation (_dataPtrType) can be different. The comparaison ( $ = \neq < \leq > \geq $) for Equal(), NotEqual(), Lesser(), LesserOrEqual(), Greater() or GreaterOrEqual() is performed elementwise between the two matrices. A logical "and" is performed (except for NotEqual which uses a logical "or") to accumulate the elementwise results. The only operators provided are "==" and "!=" since the semantic is not ambiguous.

Returns
A boolean.
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Equal ( const value_type &  scalar) const
inline

Comparison between a matrix and a scalar, containing the same type of elements. The comparaison ( $ = \neq < \leq > \geq $) for Equal(), NotEqual(), Lesser(), LesserOrEqual(), Greater() or GreaterOrEqual() is performed elementwise between the matrix and the scalar. A logical "and" is performed (except for NotEqual which uses a logical "or") to accumulate the elementwise results.. The only operators provided are "==" and "!=" since the semantic is not ambiguous.

Returns
A boolean.
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType , class _dataPtrType >
const vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::MatrixValueType & vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Eye ( void  )
static

Return the identity matrix for the size and type of elements of this matrix class. For example:

MatrixType m3 = MatrixType::Eye();
Note
Eye is the spelling of "I".
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::FastCopyCompatible ( const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, value_type, __dataPtrType > &  source) const
inline

Test if the method FastCopyOf can be used instead of Assign. See FastCopyOf for more details.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<class __matrixOwnerType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::FastCopyCompatible ( const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &  source) const
inline

Test if the method FastCopyOf can be used instead of Assign. See FastCopyOf for more details.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType , class _dataPtrType >
vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::MatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Floor ( void  ) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Greater ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Greater ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::GreaterOrEqual ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::GreaterOrEqual ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::IsSquare ( void  ) const
inline

Test if a matrix is square.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::IsSquare ( size_type  size) const
inline

Test if a matrix is square and of a given size.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Lesser ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Lesser ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::LesserOrEqual ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::LesserOrEqual ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType , class _dataPtrType >
vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::MatrixValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Negation ( void  ) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::NotEqual ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::NotEqual ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::operator!= ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::operator!= ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::operator== ( const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &  otherMatrix) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
bool vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::operator== ( const value_type &  scalar) const
inline
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
void vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::SerializeRaw ( std::ostream &  outputStream) const
inline

Binary serialization

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
void vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ToStream ( std::ostream &  outputStream) const
inline

Print the matrix in a human readable format

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
void vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ToStreamRaw ( std::ostream &  outputStream,
const char  delimiter = ' ',
bool  headerOnly = false,
const std::string &  headerPrefix = "" 
) const
inline

Print data only with optional separator

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
std::string vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::ToString ( void  ) const
inline

Return a string representation of the matrix elements

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
TransposeValueType vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::Transpose ( ) const
inline

Return a transposed copy of this matrix.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType , class _dataPtrType >
vctFixedSizeConstMatrixRef< _elementType, _cols, _rows, _colStride, _rowStride > vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::TransposeRef ( void  ) const
inline

Return a transposed reference to this matrix. The actual definition of this method follows the declaration of class vctFixedSizeConstMatrixRef.

template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::VCT_CONTAINER_TRAITS_TYPEDEFS ( _elementType  )
template<vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride, class _elementType, class _dataPtrType>
vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >::VCT_NARRAY_TRAITS_TYPEDEFS ( DIMENSION  )

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