20 #ifndef _vctFixedSizeMatrixBase_h
21 #define _vctFixedSizeMatrixBase_h
38 class _elementType,
class _dataPtrType,
class _matrixOwnerType>
57 class _elementType,
class _dataPtrType>
59 <_rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType>
70 _rowStride, _colStride, _elementType, _dataPtrType>
ThisType;
110 return BaseType::begin();
120 return BaseType::end();
130 return BaseType::rbegin();
142 return BaseType::rend();
154 return BaseType::operator[](index);
174 return BaseType::Pointer(rowIndex, colIndex);
179 return BaseType::Pointer();
188 this->ThrowUnlessValidIndex(index);
189 return (
begin())[index];
193 const_reference
at(
size_type index)
const throw(std::out_of_range) {
194 return BaseType::at(index);
203 this->ThrowUnlessValidIndex(rowIndex, colIndex);
204 return *(
Pointer(rowIndex, colIndex));
209 return BaseType::at(rowIndex, colIndex);
216 return at(rowIndex, colIndex);
221 return BaseType::operator()(rowIndex, colIndex);
232 return *(
Pointer(rowIndex, colIndex));
237 return BaseType::Element(rowIndex, colIndex);
260 return BaseType::Row(index);
265 return BaseType::Column(index);
270 return BaseType::Diagonal();
276 template <vct::
size_type __subRows, vct::
size_type __subCols>
280 result(*
this, startRow, startCol);
284 template <vct::
size_type __subRows, vct::
size_type __subCols>
287 return BaseType::Ref(startRow, startCol);
309 stride_type __indexStride,
class __indexDataPtrType>
314 Run(*
this, inputMatrix, rowIndexVector);
319 stride_type __indexStride,
class __indexDataPtrType>
339 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
341 _elementType, __dataPtrType> & inputMatrix,
const index_type permutedRowIndexes[])
344 for (thisRowIndex = 0; thisRowIndex <
ROWS; ++thisRowIndex) {
345 Row(thisRowIndex).
Assign( inputMatrix.Row(permutedRowIndexes[thisRowIndex]) );
361 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
363 _elementType, __dataPtrType> & inputMatrix,
const index_type permutedRowIndexes[])
366 for (thisRowIndex = 0; thisRowIndex <
ROWS; ++thisRowIndex) {
367 Row(permutedRowIndexes[thisRowIndex]).
Assign( inputMatrix.Row(thisRowIndex) );
383 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
385 _elementType, __dataPtrType> & inputMatrix,
const index_type permutedColumnIndexes[])
388 for (thisColumnIndex = 0; thisColumnIndex <
COLS; ++thisColumnIndex) {
389 Column(thisColumnIndex).
Assign( inputMatrix.Column(permutedColumnIndexes[thisColumnIndex]) );
405 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
407 _elementType, __dataPtrType> & inputMatrix,
const index_type permutedColumnIndexes[])
410 for (thisColumnIndex = 0; thisColumnIndex <
COLS; ++thisColumnIndex) {
411 Column(permutedColumnIndexes[thisColumnIndex]).
Assign( inputMatrix.Column(thisColumnIndex) );
421 inline value_type
SetAll(
const value_type value) {
438 if (this->IsCompact()) {
439 memset(this->
Pointer(), 0, this->size() *
sizeof(value_type));
441 }
else if (this->col_stride() == 1) {
443 const size_type sizeOfRow = this->cols() *
sizeof(value_type);
445 pointer currentPointer = this->
Pointer();
446 const pointer endPointer = currentPointer + this->rows() * rowStride;
448 currentPointer != endPointer;
449 currentPointer += rowStride) {
450 memset(currentPointer, 0, sizeOfRow);
453 }
else if (this->row_stride() == 1) {
455 const size_type sizeOfCol = this->rows() *
sizeof(value_type);
457 pointer currentPointer = this->
Pointer();
458 const pointer endPointer = currentPointer + this->cols() * colStride;
460 currentPointer != endPointer;
461 currentPointer += colStride) {
462 memset(currentPointer, 0, sizeOfCol);
466 this->
SetAll(static_cast<value_type>(0));
474 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __elementType,
class __dataPtrType>
507 va_start(nextArg, element0);
508 for (; iter !=
end(); ++iter) {
537 inline ThisType &
Assign(
const value_type * elements,
bool inputIsRowMajor =
true)
562 template <
class __matrixOwnerType>
587 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __elementType,
class __dataPtrType>
589 __elementType, __dataPtrType> & other) {
590 return this->
Assign(other);
593 template <
class __matrixOwnerType>
595 return this->
Assign(other);
668 template <
class __matrixOwnerType>
671 throw(std::runtime_error)
676 template <
class __dataPtrType>
679 throw(std::runtime_error)
718 value_type, __input1DataPtrType> & input1Matrix,
720 value_type, __input2DataPtrType> & input2Matrix) {
722 ::Run(*
this, input1Matrix, input2Matrix);
730 value_type, __input1DataPtrType> & input1Matrix,
732 value_type, __input2DataPtrType> & input2Matrix) {
734 ::Run(*
this, input1Matrix, input2Matrix);
742 value_type, __input1DataPtrType> & input1Matrix,
744 value_type, __input2DataPtrType> & input2Matrix) {
746 ::Run(*
this, input1Matrix, input2Matrix);
754 value_type, __input1DataPtrType> & input1Matrix,
756 value_type, __input2DataPtrType> & input2Matrix) {
758 ::Run(*
this, input1Matrix, input2Matrix);
766 value_type, __input1DataPtrType> & input1Matrix,
768 value_type, __input2DataPtrType> & input2Matrix) {
770 ::Run(*
this, input1Matrix, input2Matrix);
778 value_type, __input1DataPtrType> & input1Matrix,
780 value_type, __input2DataPtrType> & input2Matrix) {
782 ::Run(*
this, input1Matrix, input2Matrix);
805 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
809 Run(*
this, otherMatrix);
814 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
818 Run(*
this, otherMatrix);
823 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
827 Run(*
this, otherMatrix);
832 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
836 Run(*
this, otherMatrix);
841 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
845 Run(*
this, otherMatrix);
850 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
854 Run(*
this, otherMatrix);
859 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
861 return this->
Add(otherMatrix);
865 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
888 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
890 const value_type scalar) {
893 Run(*
this, matrix, scalar);
898 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
900 const value_type scalar) {
903 Run(*
this, matrix, scalar);
908 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
910 const value_type scalar) {
913 Run(*
this, matrix, scalar);
918 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
920 const value_type scalar) {
923 Run(*
this, matrix, scalar);
928 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
930 const value_type upperBound) {
933 Run(*
this, matrix, upperBound);
938 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
940 const value_type lowerBound) {
943 Run(*
this, matrix, lowerBound);
965 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
970 Run(*
this, scalar, matrix);
975 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
980 Run(*
this, scalar, matrix);
985 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
990 Run(*
this, scalar, matrix);
995 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
1000 Run(*
this, scalar, matrix);
1005 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
1010 Run(*
this, upperBound, matrix);
1015 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
1020 Run(*
this, lowerBound, matrix);
1075 Run(*
this, upperBound);
1083 Run(*
this, lowerBound);
1089 return this->
Add(scalar);
1104 return this->
Divide(scalar);
1109 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
1117 Run(*
this, scalar, otherMatrix);
1131 Run(*
this, matrix1, matrix2);
1149 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
1153 Run(*
this, otherMatrix);
1158 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
1162 Run(*
this, otherMatrix);
1167 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
1171 Run(*
this, otherMatrix);
1176 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
1180 Run(*
this, otherMatrix);
1187 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
1249 _elementType, __input1DataPtrType> & input1Matrix,
1251 _elementType, __input2DataPtrType> & input2Matrix) {
1253 _elementType, __input1DataPtrType> Input1MatrixType;
1255 _elementType, __input2DataPtrType> Input2MatrixType;
1256 typedef typename Input1MatrixType::ConstRowRefType Input1RowRefType;
1257 typedef typename Input2MatrixType::ConstColumnRefType Input2ColumnRefType;
1260 Run((*
this), input1Matrix, input2Matrix);
1265 template <str
ide_type __str
ide1,
class __dataPtrType1, str
ide_type __str
ide2,
class __dataPtrType2>
1271 typedef typename InputColumnType::ColConstMatrixRefType ColMatrixType;
1272 typedef typename InputRowType::RowConstMatrixRefType RowMatrixType;
1273 const ColMatrixType colMatrix = columnVector.
AsColMatrix();
1274 const RowMatrixType rowMatrix = rowVector.
AsRowMatrix();
1292 template <
size_type _subRows,
size_type _subCols>
1310 for (indexRow = 0; (indexRow < myRows) && valid; ++indexRow) {
1311 for (indexCol = 0; (indexCol < myCols) && valid; ++indexCol) {
1312 inputStream >> temp.Element(indexRow, indexCol);
1313 if (inputStream.fail()) {
1315 inputStream.clear();
1318 if (valid && !isspace(delimiter) && (indexCol < myCols-1)) {
1325 if (valid && !isspace(delimiter) && (indexRow < myRows-1)) {
1345 for (indexRow = 0; indexRow < myRows; ++indexRow) {
1346 for (indexCol = 0; indexCol < myCols; ++indexCol) {
1355 #endif // _vctFixedSizeMatrixBase_h
size_t index_type
Definition: vctContainerTraits.h:36
ThisType & ForceAssign(const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &other)
Definition: vctFixedSizeMatrixBase.h:594
void ExchangeRows(const size_type row1Index, const size_type row2Index)
Definition: vctFixedSizeMatrixBase.h:293
A template for a fixed size matrix with fixed spacing in memory.
Definition: vctFixedSizeConstMatrixBase.h:103
ThisType & SumOf(const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
Definition: vctFixedSizeMatrixBase.h:966
void RowPermutationOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedRowIndexes[])
Definition: vctFixedSizeMatrixBase.h:340
vctFixedSizeMatrixRef< value_type, _subRows, _subCols, ROWSTRIDE, COLSTRIDE > Type
Definition: vctFixedSizeMatrixBase.h:1297
RefTransposeType TransposeRef(void)
Definition: vctFixedSizeConstMatrixRef.h:182
vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType > BaseType
Definition: vctFixedSizeMatrixBase.h:74
ThisType & AddProductOf(const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:1110
Definition: vctFixedSizeMatrixTraits.h:67
const_reference at(size_type rowIndex, size_type colIndex) const
Definition: vctFixedSizeMatrixBase.h:208
ThisType & Subtract(const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:1048
ThisType & Assign(const value_type *elements, bool inputIsRowMajor=true)
Definition: vctFixedSizeMatrixBase.h:537
void ProductOf(const vctFixedSizeConstMatrixBase< _rows, __input1Cols, __input1RowStride, __input1ColStride, _elementType, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< __input1Cols, _cols, __input2RowStride, __input2ColStride, _elementType, __input2DataPtrType > &input2Matrix)
Definition: vctFixedSizeMatrixBase.h:1248
ConstDiagonalRefType Diagonal(void) const
Definition: vctFixedSizeMatrixBase.h:269
vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowStride, _colStride > MatrixTraits
Definition: vctFixedSizeMatrixBase.h:77
ThisType & CeilOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:1177
Portability across compilers and operating systems tools.
Definition: vctFixedSizeMatrixBase.h:1293
An implementation of the ``abstract'' vctFixedSizeVectorBase.
Definition: vctFixedSizeVectorRef.h:46
Definition: vctFixedSizeMatrixBase.h:99
iterator begin()
Definition: vctFixedSizeMatrixBase.h:104
ThisType & ElementwiseDivide(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:833
bool Zeros(void)
Definition: vctFixedSizeMatrixBase.h:437
ThisType & Assign(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
Definition: vctFixedSizeMatrixBase.h:475
ThisType & SwapElementsWith(vctFixedSizeVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition: vctFixedSizeVectorBase.h:958
void ColumnInversePermutationOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedColumnIndexes[])
Definition: vctFixedSizeMatrixBase.h:406
Definition: vctFixedSizeMatrixLoopEngines.h:690
ThisType & Add(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:806
ThisType & SumOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:889
ThisType & AbsSelf(void)
Definition: vctFixedSizeMatrixBase.h:1205
void RowInversePermutationOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedRowIndexes[])
Definition: vctFixedSizeMatrixBase.h:362
const_reference operator()(size_type rowIndex, size_type colIndex) const
Definition: vctFixedSizeMatrixBase.h:220
reference at(size_type index)
Definition: vctFixedSizeMatrixBase.h:187
ThisType & DifferenceOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:899
ThisType & ProductOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:909
value_type SetAll(const value_type value)
Definition: vctFixedSizeMatrixBase.h:421
ThisType & operator+=(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:860
cmnVaArgPromotion< _elementType >::Type VaArgPromotion
Definition: cmnTypeTraits.h:167
Definition: vctFixedSizeMatrixLoopEngines.h:137
An implementation of the ``abstract'' vctFixedSizeConstVectorBase.
Definition: vctFixedSizeConstVectorRef.h:50
BaseType::ColumnValueType ColumnValueType
Definition: vctFixedSizeMatrixBase.h:93
Definition: vctFixedSizeMatrixTraits.h:67
BaseType::RowRefType RowRefType
Definition: vctFixedSizeMatrixBase.h:84
size_t size_type
Definition: vctContainerTraits.h:35
DiagonalRefType Diagonal(void)
Definition: vctFixedSizeMatrixBase.h:254
Definition: vctFixedStrideMatrixIterator.h:361
MatrixTraits::const_reverse_iterator const_reverse_iterator
Definition: vctFixedSizeMatrixBase.h:82
reference operator()(size_type rowIndex, size_type colIndex)
Definition: vctFixedSizeMatrixBase.h:215
ThisType & ClipBelow(const value_type lowerBound)
Definition: vctFixedSizeMatrixBase.h:1080
MatrixTraits::iterator iterator
Definition: vctFixedSizeMatrixBase.h:79
const_iterator end() const
Definition: vctFixedSizeMatrixBase.h:119
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
BaseType::ConstDiagonalRefType ConstDiagonalRefType
Definition: vctFixedSizeMatrixBase.h:89
Definition: vctFixedSizeMatrixBase.h:100
BaseType::ConstRowRefType ConstRowRefType
Definition: vctFixedSizeMatrixBase.h:86
static const bool PerformChecks
Definition: vctFastCopy.h:123
BaseType::ConstRefTransposeType ConstRefTransposeType
Definition: vctFixedSizeMatrixBase.h:91
Definition: vctFixedSizeMatrixBase.h:97
BaseType::ColumnRefType ColumnRefType
Definition: vctFixedSizeMatrixBase.h:85
void ColumnPermutationOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedColumnIndexes[])
Definition: vctFixedSizeMatrixBase.h:384
ThisType & AbsOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:1150
ThisType & CeilSelf(void)
Definition: vctFixedSizeMatrixBase.h:1229
ThisType & Multiply(const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:1056
Returns the sum of the two InputType object.
Definition: vctStoreBackBinaryOperations.h:76
ThisType & NegationOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:1159
ThisType & Assign(const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other)
Definition: vctFixedSizeVectorBase.h:274
MatrixTraits::const_iterator const_iterator
Definition: vctFixedSizeMatrixBase.h:80
BaseType::DiagonalRefType DiagonalRefType
Definition: vctFixedSizeMatrixBase.h:88
Matrix iterator.
Definition: vctFixedStrideMatrixIterator.h:90
Definition: vctFixedSizeMatrixLoopEngines.h:267
reverse_iterator rbegin()
Definition: vctFixedSizeMatrixBase.h:124
Definition: vctDynamicConstMatrixBase.h:77
Implementation of a fixed-size vector using template metaprogramming.
Definition: vctFixedSizeVector.h:52
bool FastCopyOf(const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &source, bool performSafetyChecks=vctFastCopy::PerformChecks)
Definition: vctFixedSizeMatrixBase.h:669
MatrixTraits::reverse_iterator reverse_iterator
Definition: vctFixedSizeMatrixBase.h:81
ThisType & Subtract(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:815
static void Run(_outputMatrixType &outputMatrix, const _inputMatrixType &inputMatrix, const _indexVectorType &indexVector)
Definition: vctFixedSizeMatrixLoopEngines.h:814
reference Element(size_type rowIndex, size_type colIndex)
Definition: vctFixedSizeMatrixBase.h:231
static bool MatrixCopy(_destinationMatrixType &destination, const _sourceMatrixType &source, bool performSafetyChecks)
Definition: vctFastCopy.h:212
bool FastCopyOf(const vctFixedSizeConstMatrixBase< ROWS, COLS, ROWSTRIDE, COLSTRIDE, value_type, __dataPtrType > &source, bool performSafetyChecks=vctFastCopy::PerformChecks)
Definition: vctFixedSizeMatrixBase.h:677
A template for a fixed size matrix with fixed spacings in memory.
Definition: vctFixedSizeMatrixBase.h:58
Definition: vctFixedSizeMatrixTraits.h:67
ThisType & NegationSelf(void)
Definition: vctFixedSizeMatrixBase.h:1213
const_reverse_iterator rend() const
Definition: vctFixedSizeMatrixBase.h:141
reverse_iterator rend()
Definition: vctFixedSizeMatrixBase.h:135
ThisType & AddElementwiseProductOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &matrix1, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &matrix2)
Definition: vctFixedSizeMatrixBase.h:1124
RowRefType operator[](size_type index)
Definition: vctFixedSizeMatrixBase.h:148
Definition: vctFixedSizeMatrixLoopEngines.h:365
ThisType & ClippedAboveOf(const value_type upperBound, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
Definition: vctFixedSizeMatrixBase.h:1006
ThisType & ProductOf(const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
Definition: vctFixedSizeMatrixBase.h:986
ThisType & operator-=(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:866
Declaration of the class cmnTypeTraits.
void cmnDeSerializeRaw(std::istream &inputStream, _elementType &data)
Definition: cmnDeSerializer.h:82
ThisType & TransposeOf(const vctFixedSizeConstMatrixBase< _cols, _rows, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:1188
Implement operation of the form for fixed size matrices.
Definition: vctFixedSizeMatrixLoopEngines.h:591
RowConstMatrixRefType AsRowMatrix(void) const
Definition: vctFixedSizeConstVectorBase.h:399
An implementation of the ``abstract'' vctFixedSizeMatrixBase.
Definition: vctFixedSizeMatrixRef.h:46
ConstRefTransposeType TransposeRef(void) const
Definition: vctFixedSizeMatrixBase.h:694
ThisType & operator*=(const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:1098
Definition: vctFixedSizeMatrixTraits.h:74
ThisType & ElementwiseMax(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:851
RowRefType Row(size_type index)
Definition: vctFixedSizeMatrixBase.h:244
ThisType & ElementwiseMaxOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
Definition: vctFixedSizeMatrixBase.h:777
ThisType & operator/=(const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:1103
ConstColumnRefType Column(size_type index) const
Definition: vctFixedSizeMatrixBase.h:264
ConstRefTransposeType TransposeRef(void) const
Definition: vctFixedSizeConstMatrixRef.h:172
Definition: vctFixedSizeMatrixTraits.h:74
ThisType & Assign(const value_type element0,...)
Definition: vctFixedSizeMatrixBase.h:501
ThisType & FloorOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:1168
ConstRowRefType operator[](size_type index) const
Definition: vctFixedSizeMatrixBase.h:153
void DeSerializeRaw(std::istream &inputStream)
Definition: vctFixedSizeMatrixBase.h:1339
const_pointer Pointer(void) const
Definition: vctFixedSizeMatrixBase.h:178
ThisType & ElementwiseMinOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
Definition: vctFixedSizeMatrixBase.h:765
void vctFixedSizeMatrixBaseAssignDynamicConstMatrixBase(vctFixedSizeMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType > &fixedSizeMatrix, const vctDynamicConstMatrixBase< _matrixOwnerType, _elementType > &dynamicMatrix)
Definition: vctDynamicConstMatrixBase.h:1199
Definition: vctFixedSizeMatrixBase.h:96
const_reference at(size_type index) const
Definition: vctFixedSizeMatrixBase.h:193
ThisType & ClippedAboveOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type upperBound)
Definition: vctFixedSizeMatrixBase.h:929
const_reference Element(size_type rowIndex, size_type colIndex) const
Definition: vctFixedSizeMatrixBase.h:236
ConstRowRefType Row(size_type index) const
Definition: vctFixedSizeMatrixBase.h:259
ThisType & Divide(const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:1064
iterator end()
Definition: vctFixedSizeMatrixBase.h:114
void ExchangeColumns(const size_type col1Index, const size_type col2Index)
Definition: vctFixedSizeMatrixBase.h:300
bool FromStreamRaw(std::istream &inputStream, const char delimiter= ' ')
Definition: vctFixedSizeMatrixBase.h:1302
ptrdiff_t stride_type
Definition: vctContainerTraits.h:37
void SelectColsFrom(const vctFixedSizeConstMatrixBase< _rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const vctFixedSizeConstVectorBase< _cols, __indexStride, index_type, __indexDataPtrType > &colIndexVector)
Definition: vctFixedSizeMatrixBase.h:320
Definition: vctFixedSizeMatrixLoopEngines.h:185
ThisType & ClippedBelowOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type lowerBound)
Definition: vctFixedSizeMatrixBase.h:939
ThisType & DifferenceOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
Definition: vctFixedSizeMatrixBase.h:729
ThisType & ForceAssign(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
Definition: vctFixedSizeMatrixBase.h:588
ThisType & ClippedBelowOf(const value_type lowerBound, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
Definition: vctFixedSizeMatrixBase.h:1016
vctFixedSizeMatrixRef< _elementType, __subRows, __subCols, _rowStride, _colStride > Ref(const size_type startRow=0, const size_type startCol=0)
Definition: vctFixedSizeMatrixBase.h:278
ThisType & RatioOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:919
const_pointer Pointer(size_type rowIndex, size_type colIndex) const
Definition: vctFixedSizeMatrixBase.h:173
const_reverse_iterator rbegin() const
Definition: vctFixedSizeMatrixBase.h:129
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
void SelectRowsFrom(const vctFixedSizeConstMatrixBase< __rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const vctFixedSizeConstVectorBase< _rows, __indexStride, index_type, __indexDataPtrType > &rowIndexVector)
Definition: vctFixedSizeMatrixBase.h:310
Definition: vctFixedSizeMatrixLoopEngines.h:219
vctFixedSizeConstMatrixRef< _elementType, __subRows, __subCols, _rowStride, _colStride > Ref(const size_type startRow=0, const size_type startCol=0) const
Definition: vctFixedSizeMatrixBase.h:286
ThisType & Assign(const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &other)
Definition: vctFixedSizeMatrixBase.h:563
ThisType & ElementwiseMultiply(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:824
ThisType & ClipAbove(const value_type upperBound)
Definition: vctFixedSizeMatrixBase.h:1072
ThisType & ElementwiseProductOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
Definition: vctFixedSizeMatrixBase.h:741
void OuterProductOf(const vctFixedSizeConstVectorBase< _rows, __stride1, _elementType, __dataPtrType1 > &columnVector, const vctFixedSizeConstVectorBase< _cols, __stride2, _elementType, __dataPtrType2 > &rowVector)
Definition: vctFixedSizeMatrixBase.h:1266
ThisType & ElementwiseMin(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
Definition: vctFixedSizeMatrixBase.h:842
Definition: vctFixedSizeMatrixLoopEngines.h:78
Returns the product of the two InputType object.
Definition: vctBinaryOperations.h:116
ColumnRefType Column(size_type index)
Definition: vctFixedSizeMatrixBase.h:249
reference at(size_type rowIndex, size_type colIndex)
Definition: vctFixedSizeMatrixBase.h:202
ThisType & SumOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
Definition: vctFixedSizeMatrixBase.h:717
Define common container related types based on the properties of a fixed size container.
Definition: vctFixedSizeMatrixTraits.h:46
Implement operation of the form for fixed size matrices.
Definition: vctFixedSizeMatrixLoopEngines.h:517
BaseType::ConstColumnRefType ConstColumnRefType
Definition: vctFixedSizeMatrixBase.h:87
BaseType::RefTransposeType RefTransposeType
Definition: vctFixedSizeMatrixBase.h:90
vctFixedSizeMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType > ThisType
Definition: vctFixedSizeMatrixBase.h:70
ThisType & ElementwiseRatioOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
Definition: vctFixedSizeMatrixBase.h:753
ThisType & DifferenceOf(const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
Definition: vctFixedSizeMatrixBase.h:976
BaseType::RowValueType RowValueType
Definition: vctFixedSizeMatrixBase.h:92
Definition: vctFixedSizeMatrixBase.h:96
ThisType & Add(const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:1040
ColConstMatrixRefType AsColMatrix(void) const
Definition: vctFixedSizeConstVectorBase.h:404
const_iterator begin() const
Definition: vctFixedSizeMatrixBase.h:109
pointer Pointer(size_type rowIndex, size_type colIndex)
Definition: vctFixedSizeMatrixBase.h:161
ThisType & RatioOf(const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
Definition: vctFixedSizeMatrixBase.h:996
ThisType & FloorSelf(void)
Definition: vctFixedSizeMatrixBase.h:1221
Declaration of vctFixedSizeConstMatrixBase.
Definition: vctFixedSizeMatrixLoopEngines.h:316
pointer Pointer(void)
Definition: vctFixedSizeMatrixBase.h:168