20 #ifndef _vctFixedSizeMatrixRef_h
21 #define _vctFixedSizeMatrixRef_h
47 <_rows, _cols,_rowStride, _colStride, _elementType,
48 typename vctFixedSizeMatrixTraits<_elementType, _rows, _cols, _rowStride, _colStride>::pointer>
80 template <
size_type __rows,
size_type __cols,
class __dataPtrType>
89 template <
size_type __rows,
size_type __cols,
class __dataPtrType>
94 SetRef(matrix, startRow, startCol);
100 template <
class __matrixOwnerType>
104 SetRef(matrix, startRow, startCol);
125 template <
size_type __rows,
size_type __cols,
class __dataPtrType>
129 if ((startRow + this->rows() > matrix.rows()) || (startCol + this->cols() > matrix.cols())) {
130 cmnThrow(std::out_of_range(
"vctFixedSizeMatrixRef SetRef out of range"));
135 template <
class __dataPtrType>
150 template <
class __matrixOwnerType>
154 if ((this->row_stride() != matrix.
row_stride()) || (this->col_stride() == matrix.
col_stride())) {
155 cmnThrow(std::runtime_error(
"vctFixedSizeMatrixRef SetRef with incompatible stride(s)"));
157 if ((startRow + this->rows() > matrix.
rows()) || (startCol + this->cols() > matrix.
cols())) {
158 cmnThrow(std::out_of_range(
"vctFixedSizeMatrixRef SetRef out of range"));
173 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide>
178 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __elementType,
class __dataPtrType>
183 template <
class __matrixOwnerType>
211 _resultElementType, _matrixDataPtrType> & matrix,
215 inputVectorRef(vector.
Pointer());
217 resultRef.
ProductOf(matrix, inputVectorRef);
231 _resultElementType, _matrixDataPtrType> & matrix
236 inputVectorRef(vector.
Pointer());
239 resultRef.
ProductOf(inputVectorRef, matrix);
245 #endif // _vctFixedSizeMatrixRef_h
size_t index_type
Definition: vctContainerTraits.h:36
A template for a fixed size matrix with fixed spacing in memory.
Definition: vctFixedSizeConstMatrixBase.h:103
void SetRef(pointer p)
Definition: vctFixedSizeMatrixRef.h:108
vctFixedSizeMatrixRef()
Definition: vctFixedSizeMatrixRef.h:68
vctFixedSizeMatrixRef(vctFixedSizeMatrixBase< __rows, __cols, _rowStride, _colStride, _elementType, __dataPtrType > &matrix, index_type startRow, index_type startCol)
Definition: vctFixedSizeMatrixRef.h:90
Definition: vctDynamicMatrixBase.h:42
vctFixedSizeMatrixRef(pointer p)
Definition: vctFixedSizeMatrixRef.h:72
void SetRef(const ThisType &other)
Definition: vctFixedSizeMatrixRef.h:112
ThisType & operator=(const ThisType &other)
Definition: vctFixedSizeMatrixRef.h:169
Declaration of vctFixedSizeMatrixBase.
ThisType & Assign(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
Definition: vctFixedSizeMatrixBase.h:475
void SetRef(vctDynamicMatrixBase< __matrixOwnerType, _elementType > &matrix, index_type startRow, index_type startCol)
Definition: vctFixedSizeMatrixRef.h:151
ThisType & ProductOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:909
MatrixTraits::const_reverse_iterator const_reverse_iterator
Definition: vctFixedSizeMatrixRef.h:60
value_type SetAll(const value_type value)
Definition: vctFixedSizeMatrixBase.h:421
size_t size_type
Definition: vctContainerTraits.h:35
Definition: vctFixedStrideMatrixIterator.h:361
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
vctFixedSizeMatrixRef< value_type, _rows, _cols, _rowStride, _colStride > ThisType
Definition: vctFixedSizeMatrixRef.h:63
Matrix iterator.
Definition: vctFixedStrideMatrixIterator.h:90
Definition: vctDynamicConstMatrixBase.h:77
vctFixedSizeMatrixBase< _rows, _cols, _rowStride, _colStride, value_type, typename MatrixTraits::pointer > BaseType
Definition: vctFixedSizeMatrixRef.h:65
vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowStride, _colStride > MatrixTraits
Definition: vctFixedSizeMatrixRef.h:55
void SetRef(vctFixedSizeMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, __dataPtrType > &matrix)
Definition: vctFixedSizeMatrixRef.h:136
A template for a fixed size matrix with fixed spacings in memory.
Definition: vctFixedSizeMatrixBase.h:58
pointer Pointer(size_type rowIndex, size_type colIndex)
Definition: vctDynamicMatrixBase.h:143
size_type rows() const
Definition: vctDynamicConstMatrixBase.h:238
void MultiplyVectorMatrix(vctFixedSizeVectorBase< _resultSize, _resultStride, _resultElementType, _resultDataPtrType > &result, const vctFixedSizeConstVectorBase< _vectorSize, _vectorStride, _resultElementType, _vectorDataPtrType > &vector, const vctFixedSizeConstMatrixBase< _vectorSize, _resultSize, _matrixRowStride, _matrixColStride, _resultElementType, _matrixDataPtrType > &matrix)
Definition: vctFixedSizeMatrixRef.h:227
An implementation of the ``abstract'' vctFixedSizeMatrixBase.
Definition: vctFixedSizeMatrixRef.h:46
size_type cols() const
Definition: vctDynamicConstMatrixBase.h:243
const_pointer Pointer(size_type index=0) const
Definition: vctFixedSizeConstVectorBase.h:268
void MultiplyMatrixVector(vctFixedSizeVectorBase< _resultSize, _resultStride, _resultElementType, _resultDataPtrType > &result, const vctFixedSizeConstMatrixBase< _resultSize, _matrixCols, _matrixRowStride, _matrixColStride, _resultElementType, _matrixDataPtrType > &matrix, const vctFixedSizeConstVectorBase< _matrixCols, _vectorStride, _resultElementType, _vectorDataPtrType > &vector)
Definition: vctFixedSizeMatrixRef.h:207
vctFixedSizeMatrixRef(vctDynamicMatrixBase< __matrixOwnerType, _elementType > &matrix, index_type startRow, index_type startCol)
Definition: vctFixedSizeMatrixRef.h:101
#define cmnThrow(a)
Definition: MinimalCmn.h:4
void SetRef(vctFixedSizeMatrixBase< __rows, __cols, _rowStride, _colStride, _elementType, __dataPtrType > &matrix, index_type startRow, index_type startCol)
Definition: vctFixedSizeMatrixRef.h:126
A template for a fixed length vector with fixed spacing in memory.
Definition: vctFixedSizeVectorBase.h:76
ptrdiff_t stride_type
Definition: vctContainerTraits.h:37
MatrixTraits::iterator iterator
Definition: vctFixedSizeMatrixRef.h:57
MatrixTraits::reverse_iterator reverse_iterator
Definition: vctFixedSizeMatrixRef.h:59
difference_type row_stride() const
Definition: vctDynamicConstMatrixBase.h:263
An implementation of the ``abstract'' vctFixedSizeConstMatrixBase.
Definition: vctFixedSizeConstMatrixRef.h:50
A template for a fixed length vector with fixed spacing in memory.
Definition: vctFixedSizeConstVectorBase.h:107
difference_type col_stride() const
Definition: vctDynamicConstMatrixBase.h:268
pointer Pointer(size_type index=0)
Definition: vctFixedSizeVectorBase.h:226
Define common container related types based on the properties of a fixed size container.
Definition: vctFixedSizeMatrixTraits.h:46
MatrixTraits::const_iterator const_iterator
Definition: vctFixedSizeMatrixRef.h:58
pointer Pointer(size_type rowIndex, size_type colIndex)
Definition: vctFixedSizeMatrixBase.h:161
vctFixedSizeMatrixRef(vctFixedSizeMatrixBase< __rows, __cols, _rowStride, _colStride, _elementType, __dataPtrType > &matrix)
Definition: vctFixedSizeMatrixRef.h:81