20 #ifndef _vctDynamicMatrixBase_h
21 #define _vctDynamicMatrixBase_h
41 template <
class _matrixOwnerType,
typename _elementType>
78 return this->
Matrix.begin();
90 return this->
Matrix.rbegin();
96 return this->
Matrix.rend();
144 return this->
Matrix.Pointer(rowIndex, colIndex);
151 return this->
Matrix.Pointer();
173 return (
begin())[index];
178 const_reference
at(
size_type index)
const throw(std::out_of_range) {
189 return *(
Pointer(rowIndex, colIndex));
200 return this->
at(rowIndex, colIndex);
215 return *(
Pointer(rowIndex, colIndex));
263 cmnThrow(std::runtime_error(
"vctDynamicMatrix: RowPointers requires compact rows"));
267 rowPointers.SetSize(rows);
269 for (index = 0; index <
rows; ++index) {
270 rowPointers[index] = this->
Row(index).
Pointer();
302 const size_type startRow = 0,
const size_type startCol = 0) throw (std::out_of_range) {
303 if (((startRow + rows) > this->
rows())
304 || ((startCol + cols) > this->
cols())) {
305 cmnThrow(std::out_of_range(
"vctDynamicMatrixBase::Ref: reference is out of range"));
314 const size_type startRow = 0,
const size_type startCol = 0)
const throw (std::out_of_range) {
336 template <
class __inputMatrixOwnerType,
class __indexVectorOwnerType>
341 Run(*
this, inputMatrix, rowIndexVector);
345 template <
class __inputMatrixOwnerType,
class __indexVectorOwnerType>
366 template <
class __matrixOwnerType>
372 for (thisRowIndex = 0; thisRowIndex < numRows; ++thisRowIndex) {
373 Row(thisRowIndex).
Assign( inputMatrix.
Row(permutedRowIndexes[thisRowIndex]) );
390 template <
class __matrixOwnerType>
396 for (thisRowIndex = 0; thisRowIndex < numRows; ++thisRowIndex) {
397 Row(permutedRowIndexes[thisRowIndex]).
Assign( inputMatrix.
Row(thisRowIndex) );
413 template <
class __matrixOwnerType>
419 for (thisColumnIndex = 0; thisColumnIndex < numCols; ++thisColumnIndex) {
420 Column(thisColumnIndex).
Assign( inputMatrix.
Column(permutedColumnIndexes[thisColumnIndex]) );
436 template <
class __matrixOwnerType>
442 for (thisColumnIndex = 0; thisColumnIndex < numCols; ++thisColumnIndex) {
443 Column(permutedColumnIndexes[thisColumnIndex]).
Assign( inputMatrix.
Column(thisColumnIndex) );
452 inline value_type
SetAll(
const value_type value) {
470 memset(this->
Pointer(), 0, this->
size() *
sizeof(value_type));
474 const size_type sizeOfRow = this->
cols() *
sizeof(value_type);
476 pointer currentPointer = this->
Pointer();
477 const pointer endPointer = currentPointer + this->
rows() * rowStride;
479 currentPointer != endPointer;
480 currentPointer += rowStride) {
481 memset(currentPointer, 0, sizeOfRow);
486 const size_type sizeOfCol = this->
rows() *
sizeof(value_type);
488 pointer currentPointer = this->
Pointer();
489 const pointer endPointer = currentPointer + this->
cols() * colStride;
491 currentPointer != endPointer;
492 currentPointer += colStride) {
493 memset(currentPointer, 0, sizeOfCol);
497 this->
SetAll(static_cast<value_type>(0));
508 template <
class __matrixOwnerType>
515 typename __matrixOwnerType::value_type>::Identity>::
529 template <
class __matrixOwnerType,
typename __elementType>
533 typename __matrixOwnerType::value_type>::Identity>::
538 template <
class __matrixOwnerType,
typename __elementType>
540 return this->
Assign(other);
545 class __elementType,
class __dataPtrType>
579 template <
class __matrixOwnerType,
typename __elementType>
581 return this->
Assign(other);
586 class __elementType,
class __dataPtrType>
588 __rowStride, __colStride,
589 __elementType, __dataPtrType> & other) {
590 return this->
Assign(other);
677 template <
class __matrixOwnerType>
680 throw(std::runtime_error)
685 template <
size_type __rows,
size_type __cols, str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
688 throw(std::runtime_error)
716 inline ThisType &
Assign(
const value_type * elements,
bool inputIsRowMajor =
true)
724 inputRowStride, inputColStride, elements );
752 va_start(nextArg, element0);
753 for (; iter !=
end(); ++iter) {
790 template <
class __matrixOwnerType1,
class __matrixOwnerType2>
795 ::Run(*
this, matrix1, matrix2);
800 template <
class __matrixOwnerType1,
class __matrixOwnerType2>
805 ::Run(*
this, matrix1, matrix2);
810 template <
class __matrixOwnerType1,
class __matrixOwnerType2>
815 ::Run(*
this, matrix1, matrix2);
820 template <
class __matrixOwnerType1,
class __matrixOwnerType2>
825 ::Run(*
this, matrix1, matrix2);
830 template <
class __matrixOwnerType1,
class __matrixOwnerType2>
835 ::Run(*
this, matrix1, matrix2);
840 template <
class __matrixOwnerType1,
class __matrixOwnerType2>
845 ::Run(*
this, matrix1, matrix2);
868 template <
class __matrixOwnerType>
872 Run(*
this, otherMatrix);
877 template <
class __matrixOwnerType>
881 Run(*
this, otherMatrix);
886 template <
class __matrixOwnerType>
890 Run(*
this, otherMatrix);
895 template <
class __matrixOwnerType>
899 Run(*
this, otherMatrix);
904 template <
class __matrixOwnerType>
908 Run(*
this, otherMatrix);
913 template <
class __matrixOwnerType>
917 Run(*
this, otherMatrix);
922 template <
class __matrixOwnerType>
924 return this->
Add(otherMatrix);
928 template <
class __matrixOwnerType>
950 template <
class __matrixOwnerType>
952 const value_type scalar) {
955 Run(*
this, matrix, scalar);
960 template <
class __matrixOwnerType>
962 const value_type scalar) {
965 Run(*
this, matrix, scalar);
970 template <
class __matrixOwnerType>
972 const value_type scalar) {
975 Run(*
this, matrix, scalar);
980 template <
class __matrixOwnerType>
982 const value_type scalar) {
985 Run(*
this, matrix, scalar);
990 template <
class __matrixOwnerType>
992 const value_type lowerBound) {
995 Run(*
this, matrix, lowerBound);
1000 template <
class __matrixOwnerType>
1002 const value_type upperBound) {
1005 Run(*
this, matrix, upperBound);
1027 template <
class __matrixOwnerType>
1032 Run(*
this, scalar, matrix);
1037 template <
class __matrixOwnerType>
1042 Run(*
this, scalar, matrix);
1047 template <
class __matrixOwnerType>
1052 Run(*
this, scalar, matrix);
1057 template <
class __matrixOwnerType>
1062 Run(*
this, scalar, matrix);
1067 template <
class __matrixOwnerType>
1072 Run(*
this, upperBound, matrix);
1077 template <
class __matrixOwnerType>
1082 Run(*
this, lowerBound, matrix);
1139 Run(*
this, upperBound);
1147 Run(*
this, lowerBound);
1153 return this->
Add(scalar);
1168 return this->
Divide(scalar);
1173 template <
class __matrixOwnerType>
1181 Run(*
this, scalar, otherMatrix);
1186 template <
class __matrixOwnerType1,
class __matrixOwnerType2>
1194 Run(*
this, matrix1, matrix2);
1212 template <
class __matrixOwnerType>
1216 Run(*
this, otherMatrix);
1221 template <
class __matrixOwnerType>
1225 Run(*
this, otherMatrix);
1230 template <
class __matrixOwnerType>
1234 Run(*
this, otherMatrix);
1239 template <
class __matrixOwnerType>
1243 Run(*
this, otherMatrix);
1247 template <
class __matrixOwnerType>
1306 template <
class __matrixOwnerType1,
class __matrixOwnerType2>
1311 typedef typename Input1MatrixType::ConstRowRefType Input1RowRefType;
1312 typedef typename Input2MatrixType::ConstColumnRefType Input2ColumnRefType;
1315 Run((*
this), matrix1, matrix2);
1321 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
1361 #endif // _vctDynamicMatrixBase_h
size_t index_type
Definition: vctContainerTraits.h:36
OwnerType & Owner(void)
Definition: vctDynamicMatrixBase.h:135
ConstDiagonalRefType Diagonal() const
Definition: vctDynamicConstMatrixBase.h:377
ThisType & CeilOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:1240
ConstRowRefType Row(size_type index) const
Definition: vctDynamicMatrixBase.h:277
Definition: vctDynamicMatrixBase.h:1351
ThisType & operator/=(const value_type scalar)
Definition: vctDynamicMatrixBase.h:1167
A template for a fixed size matrix with fixed spacing in memory.
Definition: vctFixedSizeConstMatrixBase.h:103
BaseType::DiagonalRefType DiagonalRefType
Definition: vctDynamicMatrixBase.h:66
A vector object of dynamic size.
Definition: vctDynamicVector.h:127
ThisType & ClipAbove(const value_type upperBound)
Definition: vctDynamicMatrixBase.h:1136
ThisType & operator-=(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:929
ConstRowRefType operator[](size_type index) const
Definition: vctDynamicConstMatrixBase.h:280
const_iterator begin(void) const
Definition: vctDynamicConstMatrixBase.h:203
ThisType & Subtract(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:878
Definition: vctDynamicMatrixBase.h:42
ThisType & ClippedBelowOf(const value_type lowerBound, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
Definition: vctDynamicMatrixBase.h:1078
ConstVectorPointerType RowPointers(ConstVectorPointerType &rowPointers) const
Definition: vctDynamicMatrixBase.h:292
Dynamic vector referencing existing memory (const)
Definition: vctDynamicConstVectorRef.h:79
bool Zeros(void)
Definition: vctDynamicMatrixBase.h:468
Declaration of vctDynamicConstMatrixBase.
ThisType & RatioOf(const value_type scalar, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
Definition: vctDynamicMatrixBase.h:1058
ThisType & ForceAssign(const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
Definition: vctDynamicMatrixBase.h:587
BaseType::VectorPointerType VectorPointerType
Definition: vctDynamicMatrixBase.h:72
Definition: vctDynamicMatrixLoopEngines.h:276
ConstColumnRefType Column(size_type index) const
Definition: vctDynamicMatrixBase.h:282
vctDynamicMatrixBase ThisType
Definition: vctDynamicMatrixBase.h:48
vctDynamicConstMatrixRef< _elementType > Ref(const size_type rows, const size_type cols, const size_type startRow=0, const size_type startCol=0) const
Definition: vctDynamicConstMatrixBase.h:415
ThisType & Assign(const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &other)
Definition: vctDynamicMatrixBase.h:530
Definition: vctDynamicMatrixLoopEngines.h:168
const_reference Element(size_type rowIndex, size_type colIndex) const
Definition: vctDynamicMatrixBase.h:219
ThisType & Assign(const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
Definition: vctDynamicMatrixBase.h:546
const_iterator end(void) const
Definition: vctDynamicMatrixBase.h:105
ThisType & ClipBelow(const value_type lowerBound)
Definition: vctDynamicMatrixBase.h:1144
bool FastCopyOf(const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &source, bool performSafetyChecks=vctFastCopy::PerformChecks)
Definition: vctDynamicMatrixBase.h:678
size_type size(void) const
Definition: vctDynamicConstMatrixBase.h:228
ThisType & ForceAssign(const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &other)
Definition: vctDynamicMatrixBase.h:580
ThisType & Assign(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &other)
Definition: vctDynamicVectorBase.h:242
vctDynamicMatrixRef< value_type > Type
Definition: vctDynamicMatrixBase.h:1354
ConstRowRefType operator[](size_type index) const
Definition: vctDynamicMatrixBase.h:126
reverse_iterator rend(void)
Definition: vctDynamicMatrixBase.h:95
reference at(size_type rowIndex, size_type colIndex)
Definition: vctDynamicMatrixBase.h:187
bool IsCompact(void) const
Definition: vctDynamicConstMatrixBase.h:641
Dynamic vector referencing existing memory.
Definition: vctDynamicVectorRef.h:77
ThisType & NegationSelf(void)
Definition: vctDynamicMatrixBase.h:1273
const_pointer Pointer(size_type rowIndex, size_type colIndex) const
Definition: vctDynamicMatrixBase.h:155
const_iterator begin(void) const
Definition: vctDynamicMatrixBase.h:100
cmnVaArgPromotion< _elementType >::Type VaArgPromotion
Definition: cmnTypeTraits.h:167
vctDynamicConstMatrixBase< _matrixOwnerType, _elementType > BaseType
Definition: vctDynamicMatrixBase.h:50
ThisType & Add(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:869
OwnerType Matrix
Definition: vctDynamicConstMatrixBase.h:167
_matrixOwnerType OwnerType
Definition: vctDynamicMatrixBase.h:52
const_pointer Pointer(void) const
Definition: vctDynamicMatrixBase.h:160
size_t size_type
Definition: vctContainerTraits.h:35
void SelectColsFrom(const vctDynamicConstMatrixBase< __inputMatrixOwnerType, _elementType > &inputMatrix, const vctDynamicConstVectorBase< __indexVectorOwnerType, index_type > &colIndexVector)
Definition: vctDynamicMatrixBase.h:346
BaseType::reverse_iterator reverse_iterator
Definition: vctDynamicMatrixBase.h:55
BaseType::const_iterator const_iterator
Definition: vctDynamicMatrixBase.h:56
ThisType & AddProductOf(const value_type scalar, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:1174
ThisType & Assign(const value_type *elements, bool inputIsRowMajor=true)
Definition: vctDynamicMatrixBase.h:716
void ExchangeColumns(const size_type col1Index, const size_type col2Index)
Definition: vctDynamicMatrixBase.h:328
static const bool PerformChecks
Definition: vctFastCopy.h:123
ColumnRefType Column(size_type index)
Definition: vctDynamicMatrixBase.h:233
ThisType & ElementwiseProductOf(const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
Definition: vctDynamicMatrixBase.h:811
ThisType & ClippedAboveOf(const value_type upperBound, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
Definition: vctDynamicMatrixBase.h:1068
Dynamic matrix referencing existing memory.
Definition: vctDynamicMatrixRef.h:74
Returns the sum of the two InputType object.
Definition: vctStoreBackBinaryOperations.h:76
Declaration of vctStoreBackBinaryOperations.
bool FastCopyOf(const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, value_type, __dataPtrType > &source, bool performSafetyChecks=vctFastCopy::PerformChecks)
Definition: vctDynamicMatrixBase.h:686
ThisType & ProductOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type scalar)
Definition: vctDynamicMatrixBase.h:971
Definition: vctDynamicMatrixLoopEngines.h:406
Definition: vctDynamicConstMatrixBase.h:77
ThisType & Add(const value_type scalar)
Definition: vctDynamicMatrixBase.h:1104
RowRefType Row(size_type index)
Definition: vctDynamicMatrixBase.h:227
ThisType & ClippedBelowOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type upperBound)
Definition: vctDynamicMatrixBase.h:1001
iterator begin(void)
Definition: vctDynamicMatrixBase.h:77
Definition: vctDynamicMatrixLoopEngines.h:89
ThisType & AddElementwiseProductOf(const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
Definition: vctDynamicMatrixBase.h:1187
vctDynamicMatrixRef< _elementType > Ref(const size_type rows, const size_type cols, const size_type startRow=0, const size_type startCol=0)
Definition: vctDynamicMatrixBase.h:301
ConstVectorPointerType & RowPointers(ConstVectorPointerType &rowPointers) const
Definition: vctDynamicConstMatrixBase.h:399
Define unary operations on an object as classes.
Definition: vctUnaryOperations.h:55
ThisType & ElementwiseMultiply(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:887
const_reverse_iterator rend(void) const
Definition: vctDynamicConstMatrixBase.h:221
RowRefType operator[](size_type index)
Definition: vctDynamicMatrixBase.h:121
size_type size(void) const
Definition: vctDynamicConstVectorBase.h:164
ptrdiff_t difference_type
Definition: vctContainerTraits.h:38
static bool MatrixCopy(_destinationMatrixType &destination, const _sourceMatrixType &source, bool performSafetyChecks)
Definition: vctFastCopy.h:212
void ColumnInversePermutationOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &inputMatrix, const index_type permutedColumnIndexes[])
Definition: vctDynamicMatrixBase.h:437
const_reference at(size_type index) const
Definition: vctDynamicConstMatrixBase.h:289
void RowInversePermutationOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &inputMatrix, const index_type permutedRowIndexes[])
Definition: vctDynamicMatrixBase.h:391
ThisType & operator+=(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:923
void ColumnPermutationOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &inputMatrix, const index_type permutedColumnIndexes[])
Definition: vctDynamicMatrixBase.h:414
const_reference at(size_type index) const
Definition: vctDynamicMatrixBase.h:178
const OwnerType & Owner(void) const
Definition: vctDynamicMatrixBase.h:132
ThisType & SumOf(const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
Definition: vctDynamicMatrixBase.h:791
BaseType::ConstVectorPointerType ConstVectorPointerType
Definition: vctDynamicMatrixBase.h:71
ThisType & ElementwiseMin(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:905
ConstRowRefType Row(size_type index) const
Definition: vctDynamicConstMatrixBase.h:367
pointer Pointer(size_type rowIndex, size_type colIndex)
Definition: vctDynamicMatrixBase.h:143
ThisType & CeilSelf(void)
Definition: vctDynamicMatrixBase.h:1289
Dynamic matrix referencing existing memory (const)
Definition: vctDynamicConstMatrixRef.h:79
value_type SetAll(const value_type value)
Definition: vctDynamicMatrixBase.h:452
void RowPermutationOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &inputMatrix, const index_type permutedRowIndexes[])
Definition: vctDynamicMatrixBase.h:367
size_type rows() const
Definition: vctDynamicConstMatrixBase.h:238
size_type cols() const
Definition: vctDynamicConstMatrixBase.h:243
BaseType::ConstDiagonalRefType ConstDiagonalRefType
Definition: vctDynamicMatrixBase.h:65
ThisType & operator=(const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &other)
Definition: vctDynamicMatrixBase.h:539
ConstColumnRefType Column(size_type index) const
Definition: vctDynamicConstMatrixBase.h:372
reference operator()(size_type rowIndex, size_type colIndex)
Definition: vctDynamicMatrixBase.h:199
ThisType & operator*=(const value_type scalar)
Definition: vctDynamicMatrixBase.h:1162
const_iterator end(void) const
Definition: vctDynamicConstMatrixBase.h:209
difference_type stride() const
Definition: vctDynamicConstVectorBase.h:169
Definition: vctDynamicMatrixLoopEngines.h:472
ThisType & AbsSelf(void)
Definition: vctDynamicMatrixBase.h:1265
reference at(size_type index)
Definition: vctDynamicMatrixBase.h:171
ThisType & DifferenceOf(const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
Definition: vctDynamicMatrixBase.h:801
ThisType & SwapElementsWith(vctDynamicVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition: vctDynamicVectorBase.h:897
ConstRefTransposeType TransposeRef(void) const
Definition: vctDynamicMatrixBase.h:770
#define cmnThrow(a)
Definition: MinimalCmn.h:4
ThisType & Divide(const value_type scalar)
Definition: vctDynamicMatrixBase.h:1128
reference Element(size_type rowIndex, size_type colIndex)
Definition: vctDynamicMatrixBase.h:214
void ExchangeRows(const size_type row1Index, const size_type row2Index)
Definition: vctDynamicMatrixBase.h:321
ThisType & ElementwiseMaxOf(const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
Definition: vctDynamicMatrixBase.h:841
const_reverse_iterator rbegin(void) const
Definition: vctDynamicMatrixBase.h:110
Definition: vctDynamicMatrixLoopEngines.h:884
const_pointer Pointer(index_type index=0) const
Definition: vctDynamicConstVectorBase.h:221
Declaration of vctStoreBackUnaryOperations.
BaseType::const_reverse_iterator const_reverse_iterator
Definition: vctDynamicMatrixBase.h:57
Implement operation of the form for fixed size matrices.
Definition: vctDynamicMatrixLoopEngines.h:658
pointer Pointer(index_type index=0)
Definition: vctDynamicVectorBase.h:155
ThisType & TransposeOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:1248
BaseType::ConstRefTransposeType ConstRefTransposeType
Definition: vctDynamicMatrixBase.h:68
ThisType & Assign(const value_type element0,...)
Definition: vctDynamicMatrixBase.h:746
ThisType & SumOf(const value_type scalar, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
Definition: vctDynamicMatrixBase.h:1028
Definition: vctDynamicMatrixRefOwner.h:39
ThisType & Assign(const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &other)
Definition: vctDynamicMatrixBase.h:509
BaseType::ConstColumnRefType ConstColumnRefType
Definition: vctDynamicMatrixBase.h:62
Definition: vctDynamicMatrixLoopEngines.h:340
ThisType & DifferenceOf(const value_type scalar, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
Definition: vctDynamicMatrixBase.h:1038
reverse_iterator rbegin(void)
Definition: vctDynamicMatrixBase.h:89
ThisType & RatioOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type scalar)
Definition: vctDynamicMatrixBase.h:981
ptrdiff_t stride_type
Definition: vctContainerTraits.h:37
ThisType & AbsOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:1213
void ThrowUnlessValidRowIndex(size_type index) const
Definition: vctDynamicConstMatrixBase.h:187
ThisType & ProductOf(const value_type scalar, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
Definition: vctDynamicMatrixBase.h:1048
ThisType & ElementwiseMax(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:914
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
Implement operation of the form for fixed size matrices.
Definition: vctDynamicMatrixLoopEngines.h:749
ConstRefTransposeType TransposeRef(void) const
Definition: vctDynamicConstMatrixBase.h:980
void SetRef(size_type rows, size_type cols, stride_type rowStride, stride_type colStride, pointer dataPointer)
Definition: vctDynamicConstMatrixRef.h:248
Definition: vctDynamicConstVectorBase.h:77
difference_type row_stride() const
Definition: vctDynamicConstMatrixBase.h:263
ThisType & ClippedAboveOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type lowerBound)
Definition: vctDynamicMatrixBase.h:991
ConstDiagonalRefType Diagonal(void) const
Definition: vctDynamicMatrixBase.h:287
void OuterProductOf(const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &colVector, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &rowVector)
Definition: vctDynamicMatrixBase.h:1322
difference_type col_stride() const
Definition: vctDynamicConstMatrixBase.h:268
BaseType::RefTransposeType RefTransposeType
Definition: vctDynamicMatrixBase.h:69
ThisType & DifferenceOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type scalar)
Definition: vctDynamicMatrixBase.h:961
BaseType::RowRefType RowRefType
Definition: vctDynamicMatrixBase.h:60
Definition: vctDynamicMatrixLoopEngines.h:232
const_reference at(size_type rowIndex, size_type colIndex) const
Definition: vctDynamicMatrixBase.h:193
void ThrowUnlessValidIndex(size_type index) const
Definition: vctDynamicConstMatrixBase.h:171
ThisType & ElementwiseDivide(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:896
void SelectRowsFrom(const vctDynamicConstMatrixBase< __inputMatrixOwnerType, _elementType > &inputMatrix, const vctDynamicConstVectorBase< __indexVectorOwnerType, index_type > &rowIndexVector)
Definition: vctDynamicMatrixBase.h:337
BaseType::ConstRowRefType ConstRowRefType
Definition: vctDynamicMatrixBase.h:59
const_reverse_iterator rend(void) const
Definition: vctDynamicMatrixBase.h:115
void ProductOf(const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
Definition: vctDynamicMatrixBase.h:1307
Returns the product of the two InputType object.
Definition: vctBinaryOperations.h:116
DiagonalRefType Diagonal(void)
Definition: vctDynamicMatrixBase.h:239
const_reverse_iterator rbegin(void) const
Definition: vctDynamicConstMatrixBase.h:215
ThisType & Multiply(const value_type scalar)
Definition: vctDynamicMatrixBase.h:1120
Definition: vctVarStrideMatrixIterator.h:40
ThisType & SumOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type scalar)
Definition: vctDynamicMatrixBase.h:951
vctDynamicConstMatrixRef< _elementType > Ref(const size_type rows, const size_type cols, const size_type startRow=0, const size_type startCol=0) const
Definition: vctDynamicMatrixBase.h:313
RefTransposeType TransposeRef(void)
Definition: vctDynamicMatrixBase.h:764
BaseType::ColumnRefType ColumnRefType
Definition: vctDynamicMatrixBase.h:63
ThisType & ElementwiseMinOf(const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
Definition: vctDynamicMatrixBase.h:831
const_reference operator()(size_type rowIndex, size_type colIndex) const
Definition: vctDynamicConstMatrixBase.h:352
bool FastCopyCompatible(const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &source) const
Definition: vctDynamicConstMatrixBase.h:677
ThisType & FloorSelf(void)
Definition: vctDynamicMatrixBase.h:1281
static void Run(_outputMatrixType &outputMatrix, const _inputMatrixType &inputMatrix, const _indexVectorType &indexVector)
Definition: vctDynamicMatrixLoopEngines.h:1024
const_reference Element(size_type rowIndex, size_type colIndex) const
Definition: vctDynamicConstMatrixBase.h:362
const OwnerType & Owner(void) const
Definition: vctDynamicConstMatrixBase.h:298
void ThrowUnlessValidColIndex(size_type index) const
Definition: vctDynamicConstMatrixBase.h:194
VectorPointerType & RowPointers(VectorPointerType &rowPointers)
Definition: vctDynamicMatrixBase.h:261
ThisType & Subtract(const value_type scalar)
Definition: vctDynamicMatrixBase.h:1112
ThisType & ElementwiseRatioOf(const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
Definition: vctDynamicMatrixBase.h:821
Definition: vctVarStrideMatrixIterator.h:287
pointer Pointer(void)
Definition: vctDynamicMatrixBase.h:150
ThisType & FloorOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:1231
ThisType & NegationOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
Definition: vctDynamicMatrixBase.h:1222
iterator end(void)
Definition: vctDynamicMatrixBase.h:83
const_pointer Pointer(void) const
Definition: vctDynamicConstMatrixBase.h:313
BaseType::iterator iterator
Definition: vctDynamicMatrixBase.h:54