20#ifndef _vctFixedSizeVectorBase_h
21#define _vctFixedSizeVectorBase_h
43 _resultElementType, _matrixDataPtrType> & matrix,
54 _resultElementType, _matrixDataPtrType> & matrix);
57template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType,
class _vectorOwnerType>
75template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
218 const_reference
Element(size_type index)
const {
232 const_pointer
Pointer(size_type index = 0)
const {
242 return vctFixedSizeVectorRecursiveEngines<_size>::template
244 Unfold(*
this, value);
273 template <str
ide_type __str
ide,
class __elementType,
class __dataPtrType>
275 vctFixedSizeVectorRecursiveEngines<_size>::template
277 Unfold(*
this, other);
281 template <str
ide_type __str
ide,
class __elementType,
class __dataPtrType>
283 return this->
Assign(other);
301 if (this->
size() != 1) {
302 cmnThrow(std::runtime_error(
"Mismatch between number of arguments assigned (1) and vector size"));
304 (*this)[0] = element0;
310 if (this->
size() != 2) {
311 cmnThrow(std::runtime_error(
"Mismatch between number of arguments assigned (2) and vector size"));
313 (*this)[0] = element0;
314 (*this)[1] = element1;
321 if (this->
size() != 3) {
322 cmnThrow(std::runtime_error(
"Mismatch between number of arguments assigned (3) and vector size"));
324 (*this)[0] = element0;
325 (*this)[1] = element1;
326 (*this)[2] = element2;
333 if (this->
size() != 4) {
334 cmnThrow(std::runtime_error(
"Mismatch between number of arguments assigned (4) and vector size"));
336 (*this)[0] = element0;
337 (*this)[1] = element1;
338 (*this)[2] = element2;
339 (*this)[3] = element3;
360 (*this)[0] = element0;
361 (*this)[1] = element1;
362 (*this)[2] = element2;
363 (*this)[3] = element3;
364 (*this)[4] = element4;
366 va_start(nextArg, element4);
368 for (i = 5; i < _size; ++i) {
390 vctFixedSizeVectorRecursiveEngines<_size>::template
392 Unfold(*
this, elements);
407 template <
class __vectorOwnerType>
432 template <str
ide_type __str
ide,
class __elementType,
class __dataPtrType>
434 return this->
Assign(other);
437 template <
class __vectorOwnerType>
439 return this->
Assign(other);
503 template <
class __vectorOwnerType>
505 bool performSafetyChecks =
true)
511 template <
class __dataPtrType>
513 bool performSafetyChecks =
true)
526 template <str
ide_type __str
ide,
class __elementTypeVector,
class __dataPtrType,
class __elementType>
528 __elementType last) {
530 vctFixedSizeVectorRecursiveEngines<SIZEMINUSONE>::template
532 Unfold(*
this, other);
749 template <vct::
size_type __subSize>
755 template <vct::
size_type __subSize>
768 template <size_type __inputSize, stride_type __inputStride,
class __inputDataPtrType,
769 stride_type __indexStride,
class __indexDataPtrType>
773 vctFixedSizeVectorRecursiveEngines<_size>::SelectByIndex::Unfold(*
this, input, index);
781 template <str
ide_type __str
ide1,
class __dataPtr1Type, str
ide_type __str
ide2,
class __dataPtr2Type>
786 (*this)[0] = inputVector1[1] * inputVector2[2] - inputVector1[2] * inputVector2[1];
787 (*this)[1] = inputVector1[2] * inputVector2[0] - inputVector1[0] * inputVector2[2];
788 (*this)[2] = inputVector1[0] * inputVector2[1] - inputVector1[1] * inputVector2[0];
808 template <str
ide_type __str
ide1,
class __dataPtrType1, str
ide_type __str
ide2,
class __dataPtrType2>
811 vctFixedSizeVectorRecursiveEngines<_size>::template
813 ::Unfold(*
this, vector1, vector2);
819 template <str
ide_type __str
ide1,
class __dataPtrType1, str
ide_type __str
ide2,
class __dataPtrType2>
822 vctFixedSizeVectorRecursiveEngines<_size>::template
824 ::Unfold(*
this, vector1, vector2);
829 template <str
ide_type __str
ide1,
class __dataPtrType1, str
ide_type __str
ide2,
class __dataPtrType2>
832 vctFixedSizeVectorRecursiveEngines<_size>::template
834 ::Unfold(*
this, vector1, vector2);
839 template <str
ide_type __str
ide1,
class __dataPtrType1, str
ide_type __str
ide2,
class __dataPtrType2>
842 vctFixedSizeVectorRecursiveEngines<_size>::template
844 ::Unfold(*
this, vector1, vector2);
849 template <str
ide_type __str
ide1,
class __dataPtrType1, str
ide_type __str
ide2,
class __dataPtrType2>
852 vctFixedSizeVectorRecursiveEngines<_size>::template
854 ::Unfold(*
this, vector1, vector2);
859 template <str
ide_type __str
ide1,
class __dataPtrType1, str
ide_type __str
ide2,
class __dataPtrType2>
862 vctFixedSizeVectorRecursiveEngines<_size>::template
864 ::Unfold(*
this, vector1, vector2);
885 template <str
ide_type __str
ide,
class __dataPtrType>
887 vctFixedSizeVectorRecursiveEngines<_size>::template
889 Unfold(*
this, otherVector);
894 template <str
ide_type __str
ide,
class __dataPtrType>
896 vctFixedSizeVectorRecursiveEngines<_size>::template
898 Unfold(*
this, otherVector);
903 template <str
ide_type __str
ide,
class __dataPtrType>
905 vctFixedSizeVectorRecursiveEngines<_size>::template
907 Unfold(*
this, otherVector);
912 template <str
ide_type __str
ide,
class __dataPtrType>
914 vctFixedSizeVectorRecursiveEngines<_size>::template
916 Unfold(*
this, otherVector);
921 template <str
ide_type __str
ide,
class __dataPtrType>
923 vctFixedSizeVectorRecursiveEngines<_size>::template
925 Unfold(*
this, otherVector);
930 template <str
ide_type __str
ide,
class __dataPtrType>
932 vctFixedSizeVectorRecursiveEngines<_size>::template
934 Unfold(*
this, otherVector);
939 template <str
ide_type __str
ide,
class __dataPtrType>
941 return this->
Add(otherVector);
945 template <str
ide_type __str
ide,
class __dataPtrType>
957 template <str
ide_type __str
ide,
class __dataPtrType>
959 vctFixedSizeVectorRecursiveEngines<_size>::template
961 Unfold(*
this, otherVector);
982 template <str
ide_type __str
ide,
class __dataPtrType>
985 vctFixedSizeVectorRecursiveEngines<_size>::template
987 Unfold(*
this, vector, scalar);
992 template <str
ide_type __str
ide,
class __dataPtrType>
995 vctFixedSizeVectorRecursiveEngines<_size>::template
997 Unfold(*
this, vector, scalar);
1002 template <str
ide_type __str
ide,
class __dataPtrType>
1005 vctFixedSizeVectorRecursiveEngines<_size>::template
1007 Unfold(*
this, vector, scalar);
1012 template <str
ide_type __str
ide,
class __dataPtrType>
1015 vctFixedSizeVectorRecursiveEngines<_size>::template
1017 Unfold(*
this, vector, scalar);
1022 template <str
ide_type __str
ide,
class __dataPtrType>
1025 vctFixedSizeVectorRecursiveEngines<_size>::template
1027 Unfold(*
this, vector, upperBound);
1032 template <str
ide_type __str
ide,
class __dataPtrType>
1035 vctFixedSizeVectorRecursiveEngines<_size>::template
1037 Unfold(*
this, vector, lowerBound);
1059 template <str
ide_type __str
ide,
class __dataPtrType>
1062 vctFixedSizeVectorRecursiveEngines<_size>::template
1064 Unfold(*
this, scalar, vector);
1069 template <str
ide_type __str
ide,
class __dataPtrType>
1072 vctFixedSizeVectorRecursiveEngines<_size>::template
1074 Unfold(*
this, scalar, vector);
1079 template <str
ide_type __str
ide,
class __dataPtrType>
1082 vctFixedSizeVectorRecursiveEngines<_size>::template
1084 Unfold(*
this, scalar, vector);
1089 template <str
ide_type __str
ide,
class __dataPtrType>
1092 vctFixedSizeVectorRecursiveEngines<_size>::template
1094 Unfold(*
this, scalar, vector);
1099 template <str
ide_type __str
ide,
class __dataPtrType>
1102 vctFixedSizeVectorRecursiveEngines<_size>::template
1104 Unfold(*
this, upperBound, vector);
1109 template <str
ide_type __str
ide,
class __dataPtrType>
1112 vctFixedSizeVectorRecursiveEngines<_size>::template
1114 Unfold(*
this, lowerBound, vector);
1136 vctFixedSizeVectorRecursiveEngines<_size>::template
1138 Unfold(*
this, scalar);
1144 vctFixedSizeVectorRecursiveEngines<_size>::template
1146 Unfold(*
this, scalar);
1152 vctFixedSizeVectorRecursiveEngines<_size>::template
1154 Unfold(*
this, scalar);
1160 vctFixedSizeVectorRecursiveEngines<_size>::template
1162 Unfold(*
this, scalar);
1168 vctFixedSizeVectorRecursiveEngines<_size>::template
1170 Unfold(*
this, upperBound);
1176 vctFixedSizeVectorRecursiveEngines<_size>::template
1178 Unfold(*
this, lowerBound);
1184 return this->
Add(scalar);
1199 return this->
Divide(scalar);
1204 template <str
ide_type __str
ide,
class __dataPtrType>
1208 vctFixedSizeVectorRecursiveEngines<_size>::template
1212 Unfold(*
this, scalar, otherVector);
1216 template <stride_type __stride1,
class __dataPtrType1,
1217 stride_type __stride2,
class __dataPtrType2>
1222 vctFixedSizeVectorRecursiveEngines<_size>::template
1226 Unfold(*
this, vector1, vector2);
1242 template <size_type __matrixCols, stride_type __matrixRowStride, stride_type __matrixColStride,
class __matrixDataPtrType,
1243 stride_type __vectorStride,
class __vectorDataPtrType>
1251 template <size_type __vectorSize, stride_type __vectorStride,
class __vectorDataPtrType,
1252 stride_type __matrixRowStride, stride_type __matrixColStride,
class __matrixDataPtrType>
1276 template <str
ide_type __str
ide,
class __dataPtrType>
1278 vctFixedSizeVectorRecursiveEngines<_size>::template
1280 Unfold(*
this, otherVector);
1285 template <str
ide_type __str
ide,
class __dataPtrType>
1287 vctFixedSizeVectorRecursiveEngines<_size>::template
1289 Unfold(*
this, otherVector);
1294 template <str
ide_type __str
ide,
class __dataPtrType>
1296 vctFixedSizeVectorRecursiveEngines<_size>::template
1298 Unfold(*
this, otherVector);
1303 template <str
ide_type __str
ide,
class __dataPtrType>
1305 vctFixedSizeVectorRecursiveEngines<_size>::template
1307 Unfold(*
this, otherVector);
1312 template <str
ide_type __str
ide,
class __dataPtrType>
1314 *
this = otherVector;
1332 vctFixedSizeVectorRecursiveEngines<_size>::template
1340 vctFixedSizeVectorRecursiveEngines<_size>::template
1348 vctFixedSizeVectorRecursiveEngines<_size>::template
1356 vctFixedSizeVectorRecursiveEngines<_size>::template
1368 cmnThrow(std::runtime_error(
"Division by quasi zero detected in vctFixedSizeVector NormalizedSelf()"));
1383 template <
class _subsequenceType>
1384 void GetSubsequence(size_type position, _subsequenceType & result) {
1387 ((_subsequenceType::SIZE-1) * (_subsequenceType::STRIDE /
ThisType::STRIDE))
1389 result.SetRef(
Pointer(position) );
1392 template <
class _subsequenceType>
1393 void GetConstSubsequence(size_type position, _subsequenceType & result) {
1394 BaseType::GetConstSubsequence(position, result);
1415 template <
size_type _subSize>
Implement operation of the form for fixed size vectors.
Definition vctFixedSizeVectorRecursiveEngines.h:848
Implement operation of the form for fixed size vectors.
Definition vctFixedSizeVectorRecursiveEngines.h:499
Implement operation of the form for fixed size vectors.
Definition vctFixedSizeVectorRecursiveEngines.h:411
Implement operation of the form for fixed size vectors.
Definition vctFixedSizeVectorRecursiveEngines.h:662
Implement operation of the form for fixed size vectors.
Definition vctFixedSizeVectorRecursiveEngines.h:175
Implement operation of the form for fixed size vectors.
Definition vctFixedSizeVectorRecursiveEngines.h:724
Implement operation of the form for fixed size vectors.
Definition vctFixedSizeVectorRecursiveEngines.h:219
Implement operation of the form for fixed size vectors.
Definition vctFixedSizeVectorRecursiveEngines.h:362
Implement operation of the form for fixed size vectors.
Definition vctFixedSizeVectorRecursiveEngines.h:455
Implement operation of the form for fixed size vectors.
Definition vctFixedSizeVectorRecursiveEngines.h:290
Container class for the recursive engines.
Definition vctFixedSizeVectorRecursiveEngines.h:127
A collection of useful information about the C++ basic types, represented in a generic programming wa...
Definition cmnTypeTraits.h:155
cmnVaArgPromotion< value_type >::Type VaArgPromotion
Definition cmnTypeTraits.h:167
static Type Tolerance(void)
Definition cmnTypeTraits.h:170
_elementType value_type
Definition mtsGenericObjectProxy.h:329
Returns the product of the two InputType object.
Definition vctBinaryOperations.h:116
Definition vctForwardDeclarations.h:119
pointer Pointer(void)
Definition vctDynamicNArrayBase.h:168
static bool VectorCopy(_destinationVectorType &destination, const _sourceVectorType &source, bool performSafetyChecks)
Definition vctFastCopy.h:161
A template for a fixed size matrix with fixed spacing in memory.
Definition vctFixedSizeConstMatrixBase.h:104
A template for a fixed length vector with fixed spacing in memory.
Definition vctFixedSizeConstVectorBase.h:108
vctFixedSizeConstVectorRef< _elementType, 3, _stride > YZW(void) const
Definition vctFixedSizeConstVectorBase.h:379
const_iterator end(void) const
Definition vctFixedSizeConstVectorBase.h:184
const_iterator begin(void) const
Definition vctFixedSizeConstVectorBase.h:177
vctFixedSizeConstVectorRef< _elementType, 2, _stride > YZ(void) const
Definition vctFixedSizeConstVectorBase.h:349
const_reverse_iterator rend(void) const
Definition vctFixedSizeConstVectorBase.h:198
vctFixedSizeMatrixRef< _elementType, 1, _size, _stride *_size, _stride > RowMatrixRefType
Definition vctFixedSizeConstVectorBase.h:137
vctFixedSizeConstVectorRef< _elementType, __subSize, _stride > Ref(const size_type startPosition=0) const CISST_THROW(std
Definition vctFixedSizeConstVectorBase.h:413
const_reference operator[](size_type index) const
Definition vctFixedSizeConstVectorBase.h:232
@ SIZE
Definition vctFixedSizeConstVectorBase.h:146
vctFixedSizeConstVectorRef< _elementType, 2, _stride > ZW(void) const
Definition vctFixedSizeConstVectorBase.h:363
@ STRIDE
Definition vctFixedSizeConstVectorBase.h:149
vctFixedSizeConstVectorRef< _elementType, 2, 3 *_stride > XW(void) const
Definition vctFixedSizeConstVectorBase.h:342
vctFixedSizeConstVectorRef< _elementType, 4, _stride > XYZW(void) const
Definition vctFixedSizeConstVectorBase.h:388
const value_type & Y(void) const
Definition vctFixedSizeConstVectorBase.h:306
RowConstMatrixRefType AsRowMatrix(void) const
Definition vctFixedSizeConstVectorBase.h:399
const value_type & X(void) const
Definition vctFixedSizeConstVectorBase.h:298
const_reference Element(size_type index) const
Definition vctFixedSizeConstVectorBase.h:260
vctFixedSizeConstMatrixRef< _elementType, _size, 1, _stride, _stride *_size > ColConstMatrixRefType
Definition vctFixedSizeConstVectorBase.h:141
size_type size(void) const
Definition vctFixedSizeConstVectorBase.h:205
vctFixedSizeConstVectorRef< _elementType, 2, 2 *_stride > YW(void) const
Definition vctFixedSizeConstVectorBase.h:356
vctFixedSizeConstVectorRef< _elementType, 2, _stride > XY(void) const
Definition vctFixedSizeConstVectorBase.h:328
vctFixedSizeVector< _elementType, _size > CopyType
Definition vctFixedSizeConstVectorBase.h:155
vctFixedSizeConstMatrixRef< _elementType, 1, _size, _stride *_size, _stride > RowConstMatrixRefType
Definition vctFixedSizeConstVectorBase.h:136
NormType Norm(void) const
Definition vctFixedSizeConstVectorBase.h:453
bool IsCompact(void) const
Definition vctFixedSizeConstVectorBase.h:625
const_reference at(size_type index) const CISST_THROW(std
Definition vctFixedSizeConstVectorBase.h:241
const value_type & Z(void) const
Definition vctFixedSizeConstVectorBase.h:314
const_reverse_iterator rbegin(void) const
Definition vctFixedSizeConstVectorBase.h:191
vctFixedSizeMatrixRef< _elementType, _size, 1, _stride, _stride *_size > ColMatrixRefType
Definition vctFixedSizeConstVectorBase.h:142
vctFixedSizeConstVectorRef< _elementType, 3, _stride > XYZ(void) const
Definition vctFixedSizeConstVectorBase.h:372
_dataPtrType Data
Definition vctFixedSizeConstVectorBase.h:164
vctFixedSizeConstVectorRef< _elementType, 2, 2 *_stride > XZ(void) const
Definition vctFixedSizeConstVectorBase.h:335
void ThrowUnlessValidIndex(size_type index) const CISST_THROW(std
Definition vctFixedSizeConstVectorBase.h:168
ColConstMatrixRefType AsColMatrix(void) const
Definition vctFixedSizeConstVectorBase.h:404
const value_type & W(void) const
Definition vctFixedSizeConstVectorBase.h:321
const_reference operator()(size_type index) const CISST_THROW(std
Definition vctFixedSizeConstVectorBase.h:250
Definition vctForwardDeclarations.h:86
A template for a fixed length vector with fixed spacing in memory.
Definition vctFixedSizeVectorBase.h:77
ThisType & RatioOf(const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector)
Definition vctFixedSizeVectorBase.h:1090
const_reference Element(size_type index) const
Definition vctFixedSizeVectorBase.h:218
ThisType & ProductOf(const vctFixedSizeConstMatrixBase< _size, __matrixCols, __matrixRowStride, __matrixColStride, _elementType, __matrixDataPtrType > &inputMatrix, const vctFixedSizeConstVectorBase< __matrixCols, __vectorStride, _elementType, __vectorDataPtrType > &inputVector)
Definition vctFixedSizeVectorBase.h:1244
ThisType & RatioOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar)
Definition vctFixedSizeVectorBase.h:1013
ThisType & ProductOf(const vctFixedSizeConstVectorBase< __vectorSize, __vectorStride, _elementType, __vectorDataPtrType > &inputVector, const vctFixedSizeConstMatrixBase< __vectorSize, _size, __matrixRowStride, __matrixColStride, _elementType, __matrixDataPtrType > &inputMatrix)
Definition vctFixedSizeVectorBase.h:1253
vctFixedSizeVectorRef< _elementType, 2, _stride > YZ(void)
Definition vctFixedSizeVectorBase.h:631
BaseType::CopyType CopyType
Definition vctFixedSizeVectorBase.h:90
VectorTraits::const_iterator const_iterator
Definition vctFixedSizeVectorBase.h:96
ThisType & SumOf(const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
Definition vctFixedSizeVectorBase.h:809
ThisType & ElementwiseMultiply(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:904
const_reference operator[](size_type index) const
Definition vctFixedSizeVectorBase.h:175
ThisType & Assign(const value_type *elements)
Definition vctFixedSizeVectorBase.h:388
ThisType & AddElementwiseProductOf(const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
Definition vctFixedSizeVectorBase.h:1218
vctFixedSizeConstVectorRef< _elementType, 2, _stride > XY(void) const
Definition vctFixedSizeVectorBase.h:651
ThisType & ClippedAboveOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type upperBound)
Definition vctFixedSizeVectorBase.h:1023
ThisType & Subtract(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:895
vctFixedSizeVectorRef< _elementType, 3, _stride > XYZ(void)
Definition vctFixedSizeVectorBase.h:684
ThisType & ElementwiseDivide(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:913
ThisType & ElementwiseMax(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:931
ThisType & Assign(const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other)
Definition vctFixedSizeVectorBase.h:274
iterator begin(void)
Definition vctFixedSizeVectorBase.h:117
const_reference operator()(size_type index) const CISST_THROW(std
Definition vctFixedSizeVectorBase.h:203
ThisType & ClipBelow(const value_type lowerBound)
Definition vctFixedSizeVectorBase.h:1175
ThisType & ElementwiseRatioOf(const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
Definition vctFixedSizeVectorBase.h:840
ColConstMatrixRefType AsColMatrix(void) const
Definition vctFixedSizeVectorBase.h:736
ThisType & DifferenceOf(const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
Definition vctFixedSizeVectorBase.h:820
ThisType & ClippedBelowOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type lowerBound)
Definition vctFixedSizeVectorBase.h:1033
vctFixedSizeVectorBase< _size, _stride, _elementType, typename VectorTraits::array > ThisType
Definition vctFixedSizeVectorBase.h:87
ThisType & NormalizedOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:1313
ThisType & ClipAbove(const value_type upperBound)
Definition vctFixedSizeVectorBase.h:1167
ThisType & SumOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar)
Definition vctFixedSizeVectorBase.h:983
ThisType & operator-=(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:946
vctFixedSizeConstVectorRef< _elementType, 4, _stride > XYZW(void) const
Definition vctFixedSizeVectorBase.h:717
VectorTraits::const_reverse_iterator const_reverse_iterator
Definition vctFixedSizeVectorBase.h:98
void SelectFrom(const vctFixedSizeConstVectorBase< __inputSize, __inputStride, _elementType, __inputDataPtrType > &input, const vctFixedSizeConstVectorBase< _size, __indexStride, index_type, __indexDataPtrType > &index)
Definition vctFixedSizeVectorBase.h:770
const value_type & W(void) const
Definition vctFixedSizeVectorBase.h:603
ThisType & operator+=(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:940
VectorTraits::iterator iterator
Definition vctFixedSizeVectorBase.h:95
reference at(size_type index) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:185
vctFixedSizeConstVectorRef< _elementType, 2, _stride > ZW(void) const
Definition vctFixedSizeVectorBase.h:676
reference Element(size_type index)
Definition vctFixedSizeVectorBase.h:213
const_iterator end(void) const
Definition vctFixedSizeVectorBase.h:136
ThisType & Add(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:886
ThisType & ForceAssign(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &other)
Definition vctFixedSizeVectorBase.h:438
vctFixedSizeVectorRef< _elementType, 2, 2 *_stride > YW(void)
Definition vctFixedSizeVectorBase.h:638
reference operator()(size_type index) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:198
@ SIZEMINUSONE
Definition vctFixedSizeVectorBase.h:113
ThisType & ProductOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar)
Definition vctFixedSizeVectorBase.h:1003
ThisType & NormalizedSelf(void) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:1363
vctFixedSizeVectorRef< _elementType, __subSize, _stride > Ref(const size_type startPosition=0) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:757
ThisType & ElementwiseMinOf(const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
Definition vctFixedSizeVectorBase.h:850
ThisType & Add(const value_type scalar)
Definition vctFixedSizeVectorBase.h:1135
ThisType & AbsSelf(void)
Definition vctFixedSizeVectorBase.h:1331
BaseType::ColMatrixRefType ColMatrixRefType
Definition vctFixedSizeVectorBase.h:108
ThisType & ConcatenationOf(const vctFixedSizeConstVectorBase< SIZEMINUSONE, __stride, __elementTypeVector, __dataPtrType > &other, __elementType last)
Definition vctFixedSizeVectorBase.h:527
ThisType & Assign(const value_type element0) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:299
ThisType & DifferenceOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar)
Definition vctFixedSizeVectorBase.h:993
ThisType & Subtract(const value_type scalar)
Definition vctFixedSizeVectorBase.h:1143
ThisType & ForceAssign(const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other)
Definition vctFixedSizeVectorBase.h:433
reverse_iterator rend(void)
Definition vctFixedSizeVectorBase.h:156
value_type & W(void)
Definition vctFixedSizeVectorBase.h:597
value_type & Y(void)
Definition vctFixedSizeVectorBase.h:572
ThisType & AbsOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:1277
reverse_iterator rbegin(void)
Definition vctFixedSizeVectorBase.h:143
ThisType & FloorSelf(void)
Definition vctFixedSizeVectorBase.h:1347
ThisType & NegationOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:1286
const_reverse_iterator rbegin(void) const
Definition vctFixedSizeVectorBase.h:149
ThisType & ProductOf(const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector)
Definition vctFixedSizeVectorBase.h:1080
ThisType & ClippedAboveOf(const value_type upperBound, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector)
Definition vctFixedSizeVectorBase.h:1100
BaseType::RowMatrixRefType RowMatrixRefType
Definition vctFixedSizeVectorBase.h:103
ThisType & SumOf(const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector)
Definition vctFixedSizeVectorBase.h:1060
ThisType & DifferenceOf(const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector)
Definition vctFixedSizeVectorBase.h:1070
const_reference at(size_type index) const CISST_THROW(std
Definition vctFixedSizeVectorBase.h:191
ThisType & ElementwiseProductOf(const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
Definition vctFixedSizeVectorBase.h:830
BaseType::RowConstMatrixRefType RowConstMatrixRefType
Definition vctFixedSizeVectorBase.h:102
vctFixedSizeConstVectorBase< _size, _stride, _elementType, typename VectorTraits::array > BaseType
Definition vctFixedSizeVectorBase.h:89
vctFixedSizeVectorRef< _elementType, 2, _stride > ZW(void)
Definition vctFixedSizeVectorBase.h:645
ThisType & operator=(const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other)
Definition vctFixedSizeVectorBase.h:282
const_reverse_iterator rend(void) const
Definition vctFixedSizeVectorBase.h:162
vctFixedSizeVectorRef< _elementType, 3, _stride > YZW(void)
Definition vctFixedSizeVectorBase.h:692
vctFixedSizeVectorRef< _elementType, 2, 2 *_stride > XZ(void)
Definition vctFixedSizeVectorBase.h:617
vctFixedSizeConstVectorRef< _elementType, 3, _stride > XYZ(void) const
Definition vctFixedSizeVectorBase.h:698
value_type & Z(void)
Definition vctFixedSizeVectorBase.h:585
vctFixedSizeConstVectorRef< _elementType, 2, 2 *_stride > XZ(void) const
Definition vctFixedSizeVectorBase.h:656
const_iterator begin(void) const
Definition vctFixedSizeVectorBase.h:123
vctFixedSizeConstVectorRef< _elementType, 2, 2 *_stride > YW(void) const
Definition vctFixedSizeVectorBase.h:671
ThisType & Assign(const value_type element0, const value_type element1, const value_type element2, const value_type element3) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:330
vctFixedSizeVectorRef< _elementType, 4, _stride > XYZW(void)
Definition vctFixedSizeVectorBase.h:711
pointer Pointer(size_type index=0)
Definition vctFixedSizeVectorBase.h:226
ThisType & Multiply(const value_type scalar)
Definition vctFixedSizeVectorBase.h:1151
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
vctFixedSizeConstVectorRef< _elementType, 2, 3 *_stride > XW(void) const
Definition vctFixedSizeVectorBase.h:661
ThisType & operator/=(const value_type scalar)
Definition vctFixedSizeVectorBase.h:1198
vctFixedSizeConstVectorRef< _elementType, 2, _stride > YZ(void) const
Definition vctFixedSizeVectorBase.h:666
ThisType & Assign(const value_type element0, const value_type element1, const value_type element2) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:318
void CrossProductOf(const vctFixedSizeConstVectorBase< 3, __stride1, _elementType, __dataPtr1Type > &inputVector1, const vctFixedSizeConstVectorBase< 3, __stride2, _elementType, __dataPtr2Type > &inputVector2)
Definition vctFixedSizeVectorBase.h:782
value_type & X(void)
Definition vctFixedSizeVectorBase.h:559
vctFixedSizeVectorRef< _elementType, 2, _stride > XY(void)
Definition vctFixedSizeVectorBase.h:610
ThisType & ClippedBelowOf(const value_type lowerBound, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector)
Definition vctFixedSizeVectorBase.h:1110
ThisType & SwapElementsWith(vctFixedSizeVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:958
ThisType & Assign(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &other)
Definition vctFixedSizeVectorBase.h:408
ThisType & CeilOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:1304
ThisType & Divide(const value_type scalar)
Definition vctFixedSizeVectorBase.h:1159
ThisType & Assign(const value_type element0, const value_type element1) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:308
cmnTypeTraits< value_type > TypeTraits
Definition vctFixedSizeVectorBase.h:91
vctFixedSizeConstVectorRef< _elementType, __subSize, _stride > Ref(const size_type startPosition=0) const CISST_THROW(std
Definition vctFixedSizeVectorBase.h:751
vctFixedSizeVectorTraits< _elementType, _size, _stride > VectorTraits
Definition vctFixedSizeVectorBase.h:85
ThisType & FloorOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:1295
@ STRIDE
Definition vctFixedSizeVectorBase.h:112
bool Zeros(void)
Definition vctFixedSizeVectorBase.h:256
value_type SetAll(const value_type &value)
Definition vctFixedSizeVectorBase.h:241
ThisType & CeilSelf(void)
Definition vctFixedSizeVectorBase.h:1355
ThisType & operator*=(const value_type scalar)
Definition vctFixedSizeVectorBase.h:1193
@ SIZE
Definition vctFixedSizeVectorBase.h:111
bool FastCopyOf(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &source, bool performSafetyChecks=true) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:504
iterator end(void)
Definition vctFixedSizeVectorBase.h:130
const value_type & Y(void) const
Definition vctFixedSizeVectorBase.h:578
ThisType & AddProductOf(const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:1205
vctFixedSizeVectorRef< _elementType, 2, 3 *_stride > XW(void)
Definition vctFixedSizeVectorBase.h:624
bool FastCopyOf(const vctFixedSizeConstVectorBase< SIZE, STRIDE, value_type, __dataPtrType > &source, bool performSafetyChecks=true) CISST_THROW(std
Definition vctFixedSizeVectorBase.h:512
ColMatrixRefType AsColMatrix(void)
Definition vctFixedSizeVectorBase.h:741
BaseType::ColConstMatrixRefType ColConstMatrixRefType
Definition vctFixedSizeVectorBase.h:107
RowMatrixRefType AsRowMatrix(void)
Definition vctFixedSizeVectorBase.h:731
const value_type & X(void) const
Definition vctFixedSizeVectorBase.h:565
RowConstMatrixRefType AsRowMatrix(void) const
Definition vctFixedSizeVectorBase.h:726
const_pointer Pointer(size_type index=0) const
Definition vctFixedSizeVectorBase.h:232
VectorTraits::reverse_iterator reverse_iterator
Definition vctFixedSizeVectorBase.h:97
const value_type & Z(void) const
Definition vctFixedSizeVectorBase.h:591
ThisType & NegationSelf(void)
Definition vctFixedSizeVectorBase.h:1339
vctFixedSizeConstVectorRef< _elementType, 3, _stride > YZW(void) const
Definition vctFixedSizeVectorBase.h:703
ThisType & ElementwiseMaxOf(const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
Definition vctFixedSizeVectorBase.h:860
reference operator[](size_type index)
Definition vctFixedSizeVectorBase.h:169
ThisType & ElementwiseMin(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition vctFixedSizeVectorBase.h:922
Definition vctForwardDeclarations.h:89
Define common container related types based on the properties of a fixed size container.
Definition vctFixedSizeVectorTraits.h:46
vctFixedStrideVectorIterator< _elementType, -_stride > reverse_iterator
Definition vctFixedSizeVectorTraits.h:59
vctFixedStrideVectorIterator< _elementType, _stride > iterator
Definition vctFixedSizeVectorTraits.h:52
vctFixedStrideVectorConstIterator< _elementType, -_stride > const_reverse_iterator
Definition vctFixedSizeVectorTraits.h:62
vctFixedStrideVectorConstIterator< _elementType, _stride > const_iterator
Definition vctFixedSizeVectorTraits.h:55
Returns the sum of the two InputType object.
Definition vctStoreBackBinaryOperations.h:76
#define CMN_ASSERT(expr)
Definition cmnAssert.h:97
Declaration of cmnDeSerializer and functions cmnDeSerializeRaw.
#define CISST_THROW(exceptionParameter)
Somewhat portable compilation warning message. This works with very recent versions of gcc (4....
Definition cmnPortability.h:559
void cmnThrow(const _exceptionType &except, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_ERROR)
Definition cmnThrow.h:76
vctFixedSizeVectorRef()
An implementation of the ``abstract'' vctFixedSizeVectorBase.
Definition vctFixedSizeVectorRef.h:59
size_t size_type
Definition vctContainerTraits.h:35
ptrdiff_t stride_type
Definition vctContainerTraits.h:37
const_pointer Pointer(index_type rowIndex, index_type colIndex) const
Definition vctDynamicConstMatrixBase.h:306
vctDynamicConstMatrixBase< _matrixOwnerType, _elementType > ThisType
Definition vctDynamicConstMatrixBase.h:86
void vctFixedSizeVectorBaseAssignDynamicConstVectorBase(vctFixedSizeVectorBase< _size, _stride, _elementType, _dataPtrType > &fixedSizeVector, const vctDynamicConstVectorBase< _vectorOwnerType, _elementType > &dynamicVector)
Definition vctDynamicConstVectorBase.h:1144
Declaration of vctFixedSizeConstVectorBase.
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
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