20#ifndef _vctDynamicVectorBase_h
21#define _vctDynamicVectorBase_h
38template <
class _resultVectorOwnerType,
class _matrixOwnerType,
class _vectorOwnerType,
class _elementType>
45template <
class _resultVectorOwnerType,
class _vectorOwnerType,
class _matrixOwnerType,
class _elementType>
60template <
class _vectorOwnerType,
typename _elementType>
92 return this->
Vector.begin();
104 return this->
Vector.rbegin();
110 return this->
Vector.rend();
156 return this->
Vector.Pointer(index);
160 const_pointer
Pointer(index_type index = 0)
const {
182 return this->
at(index);
200 const_reference
Element(index_type index)
const {
210 vctDynamicVectorLoopEngines::
211 VioSi<typename vctStoreBackBinaryOperations<value_type>::SecondOperand>::
241 template <
class __vectorOwnerType>
246 vctDynamicVectorLoopEngines::
248 typename __vectorOwnerType::value_type>::Identity>::
262 template <
class __vectorOwnerType>
264 size_type length, size_type startPositionThis = 0, size_type startPositionOther = 0) {
278 template <
class __vectorOwnerType,
typename __elementType>
280 vctDynamicVectorLoopEngines::
282 typename __vectorOwnerType::value_type>::Identity>::
287 template <
class __vectorOwnerType,
typename __elementType>
289 return this->
Assign(other);
292 template <
size_type __size, str
ide_type __str
ide,
class __elementType,
class __dataPtrType>
295 vctDynamicVectorLoopEngines::
296 VoVi<typename vctUnaryOperations<value_type, __elementType>::Identity>::
326 template <
class __vectorOwnerType,
typename __elementType>
328 return this->
Assign(other);
331 template <
size_type __size, str
ide_type __str
ide,
class __elementType,
class __dataPtrType>
334 return this->
Assign(other);
398 template <
class __vectorOwnerType>
400 bool performSafetyChecks =
true)
406 template <
size_type __size, str
ide_type __str
ide,
class __dataPtrType>
408 bool performSafetyChecks =
true)
431 vctDynamicVectorLoopEngines::
432 VoVi< typename vctUnaryOperations<value_type>::Identity >::
451 const size_type
size = this->size();
453 cmnThrow(std::runtime_error(
"vctDynamicVector: Assign from va_list requires size >= 2"));
455 this->
at(0) = element0;
456 this->
at(1) = element1;
458 va_start(nextArg, element1);
459 for (index_type i = 2; i <
size; ++i) {
473 template <
class __vectorOwnerType,
class __elementType>
475 __elementType lastElement) {
477 vctDynamicVectorLoopEngines::
478 VoVi<typename vctUnaryOperations<value_type, __elementType>::Identity>::
479 Run(firstElements, otherVector);
480 (*this)[otherVector.size()] =
value_type(lastElement);
504 return BaseType::X();
517 return BaseType::Y();
530 return BaseType::Z();
542 return BaseType::W();
591 return BaseType::XY();
596 return BaseType::XZ();
601 return BaseType::XW();
606 return BaseType::YZ();
611 return BaseType::YW();
616 return BaseType::ZW();
638 return BaseType::XYZ();
643 return BaseType::YZW();
658 return BaseType::XYZW();
665 if ((startPosition +
size) > this->size()) {
666 cmnThrow(std::out_of_range(
"vctDynamicConstVectorBase::Ref: reference is out of range"));
673 return BaseType::Ref(
size, startPosition);
682 template <
class __inputVectorOwner,
class __indexVectorOwner>
694 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
702 (*this)[0] = inputVector1[1] * inputVector2[2] - inputVector1[2] * inputVector2[1];
703 (*this)[1] = inputVector1[2] * inputVector2[0] - inputVector1[0] * inputVector2[2];
704 (*this)[2] = inputVector1[0] * inputVector2[1] - inputVector1[1] * inputVector2[0];
727 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
730 vctDynamicVectorLoopEngines::
731 VoViVi< typename vctBinaryOperations<value_type>::Addition >
732 ::Run(*
this, vector1, vector2);
737 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
740 vctDynamicVectorLoopEngines::
741 VoViVi< typename vctBinaryOperations<value_type>::Subtraction >
742 ::Run(*
this, vector1, vector2);
747 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
750 vctDynamicVectorLoopEngines::
751 VoViVi< typename vctBinaryOperations<value_type>::Multiplication >
752 ::Run(*
this, vector1, vector2);
757 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
760 vctDynamicVectorLoopEngines::
761 VoViVi< typename vctBinaryOperations<value_type>::Division >
762 ::Run(*
this, vector1, vector2);
767 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
770 vctDynamicVectorLoopEngines::
771 VoViVi< typename vctBinaryOperations<value_type>::Minimum >
772 ::Run(*
this, vector1, vector2);
777 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
780 vctDynamicVectorLoopEngines::
781 VoViVi< typename vctBinaryOperations<value_type>::Maximum >
782 ::Run(*
this, vector1, vector2);
787 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
790 vctDynamicVectorLoopEngines::
791 VoViVi< typename vctBinaryOperations<value_type>::ClipIn >
792 ::Run(*
this, boundVector, vector);
815 template <
class __vectorOwnerType>
817 vctDynamicVectorLoopEngines::
818 VioVi<typename vctStoreBackBinaryOperations<value_type>::Addition >::
819 Run(*
this, otherVector);
824 template <
class __vectorOwnerType>
826 vctDynamicVectorLoopEngines::
827 VioVi< typename vctStoreBackBinaryOperations<value_type>::Subtraction >::
828 Run(*
this, otherVector);
833 template <
class __vectorOwnerType>
835 vctDynamicVectorLoopEngines::
836 VioVi< typename vctStoreBackBinaryOperations<value_type>::Multiplication >::
837 Run(*
this, otherVector);
842 template <
class __vectorOwnerType>
844 vctDynamicVectorLoopEngines::
845 VioVi< typename vctStoreBackBinaryOperations<value_type>::Division >::
846 Run(*
this, otherVector);
851 template <
class __vectorOwnerType>
853 vctDynamicVectorLoopEngines::
854 VioVi< typename vctStoreBackBinaryOperations<value_type>::Minimum >::
855 Run(*
this, otherVector);
860 template <
class __vectorOwnerType>
862 vctDynamicVectorLoopEngines::
863 VioVi< typename vctStoreBackBinaryOperations<value_type>::Maximum >::
864 Run(*
this, otherVector);
869 template <
class __vectorOwnerType>
871 vctDynamicVectorLoopEngines::
872 VioVi< typename vctStoreBackBinaryOperations<value_type>::Minimum >::
873 Run(*
this, upperBoundVector);
878 template <
class __vectorOwnerType>
880 vctDynamicVectorLoopEngines::
881 VioVi< typename vctStoreBackBinaryOperations<value_type>::Maximum >::
882 Run(*
this, lowerBoundVector);
887 template <
class __vectorOwnerType>
889 vctDynamicVectorLoopEngines::
890 VioVi< typename vctStoreBackBinaryOperations<value_type>::ClipIn >::
891 Run(*
this, boundVector);
896 template <
class __vectorOwnerType>
898 return this->
Add(otherVector);
902 template <
class __vectorOwnerType>
914 template <
class __vectorOwnerType>
916 vctDynamicVectorLoopEngines::
917 VioVio<typename vctStoreBackBinaryOperations<value_type>::Swap >::
918 Run(*
this, otherVector);
938 template <
class __vectorOwnerType>
941 vctDynamicVectorLoopEngines::
942 VoViSi< typename vctBinaryOperations<value_type>::Addition >::
943 Run(*
this, vector, scalar);
948 template <
class __vectorOwnerType>
951 vctDynamicVectorLoopEngines::
952 VoViSi< typename vctBinaryOperations<value_type>::Subtraction >::
953 Run(*
this, vector, scalar);
958 template <
class __vectorOwnerType>
961 vctDynamicVectorLoopEngines::
962 VoViSi< typename vctBinaryOperations<value_type>::Multiplication >::
963 Run(*
this, vector, scalar);
968 template <
class __vectorOwnerType>
971 vctDynamicVectorLoopEngines::
972 VoViSi< typename vctBinaryOperations<value_type>::Division >::
973 Run(*
this, vector, scalar);
978 template <
class __vectorOwnerType>
981 vctDynamicVectorLoopEngines::
982 VoViSi<typename vctBinaryOperations<value_type>::Minimum>::
983 Run(*
this, vector, upperBound);
988 template <
class __vectorOwnerType>
991 vctDynamicVectorLoopEngines::
992 VoViSi< typename vctBinaryOperations<value_type>::Maximum >::
993 Run(*
this, vector, lowerBound);
998 template <
class __vectorOwnerType>
1001 vctDynamicVectorLoopEngines::
1002 VoViSi< typename vctBinaryOperations<value_type>::ClipIn >::
1003 Run(*
this, vector, bound);
1025 template <
class __vectorOwnerType>
1028 vctDynamicVectorLoopEngines::
1029 VoSiVi< typename vctBinaryOperations<value_type>::Addition >::
1030 Run(*
this, scalar, vector);
1035 template <
class __vectorOwnerType>
1038 vctDynamicVectorLoopEngines::
1039 VoSiVi< typename vctBinaryOperations<value_type>::Subtraction >::
1040 Run(*
this, scalar, vector);
1045 template <
class __vectorOwnerType>
1048 vctDynamicVectorLoopEngines::
1049 VoSiVi< typename vctBinaryOperations<value_type>::Multiplication >::
1050 Run(*
this, scalar, vector);
1055 template <
class __vectorOwnerType>
1058 vctDynamicVectorLoopEngines::
1059 VoSiVi< typename vctBinaryOperations<value_type>::Division >::
1060 Run(*
this, scalar, vector);
1065 template <
class __vectorOwnerType>
1068 vctDynamicVectorLoopEngines::
1069 VoSiVi< typename vctBinaryOperations<value_type>::Minimum >::
1070 Run(*
this, upperBound, vector);
1075 template <
class __vectorOwnerType>
1078 vctDynamicVectorLoopEngines::
1079 VoSiVi< typename vctBinaryOperations<value_type>::Maximum >::
1080 Run(*
this, lowerBound, vector);
1085 template <
class __vectorOwnerType>
1088 vctDynamicVectorLoopEngines::
1089 VoSiVi< typename vctBinaryOperations<value_type>::ClipIn >::
1090 Run(*
this, bound, vector);
1113 vctDynamicVectorLoopEngines::
1114 VioSi< typename vctStoreBackBinaryOperations<value_type>::Addition >::
1121 vctDynamicVectorLoopEngines::
1122 VioSi< typename vctStoreBackBinaryOperations<value_type>::Subtraction >::
1129 vctDynamicVectorLoopEngines::
1130 VioSi< typename vctStoreBackBinaryOperations<value_type>::Multiplication >::
1137 vctDynamicVectorLoopEngines::
1138 VioSi< typename vctStoreBackBinaryOperations<value_type>::Division >::
1145 vctDynamicVectorLoopEngines::
1146 VioSi< typename vctStoreBackBinaryOperations<value_type>::Minimum >::
1147 Run(*
this, upperBound);
1153 vctDynamicVectorLoopEngines::
1154 VioSi< typename vctStoreBackBinaryOperations<value_type>::Maximum >::
1155 Run(*
this, lowerBound);
1161 vctDynamicVectorLoopEngines::
1162 VioSi< typename vctStoreBackBinaryOperations<value_type>::ClipIn >::
1169 return this->
Add(scalar);
1184 return this->
Divide(scalar);
1188 template <
class __vectorOwnerType>
1192 vctDynamicVectorLoopEngines::
1196 Run(*
this, scalar, otherVector);
1200 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
1204 vctDynamicVectorLoopEngines::
1208 Run(*
this, vector1, vector2);
1228 template <
class __matrixOwnerType,
class __vectorOwnerType>
1245 template <
class __vectorOwnerType,
class __matrixOwnerType>
1293 template <
class __vectorOwnerType>
1295 vctDynamicVectorLoopEngines::
1296 VoVi<typename vctUnaryOperations<value_type>::AbsValue>::
1297 Run(*
this, otherVector);
1302 template <
class __vectorOwnerType>
1304 vctDynamicVectorLoopEngines::
1305 VoVi<typename vctUnaryOperations<value_type>::Negation>::
1306 Run(*
this, otherVector);
1311 template <
class __vectorOwnerType>
1313 vctDynamicVectorLoopEngines::
1314 VoVi<typename vctUnaryOperations<value_type>::Floor>::
1315 Run(*
this, otherVector);
1320 template <
class __vectorOwnerType>
1322 vctDynamicVectorLoopEngines::
1323 VoVi<typename vctUnaryOperations<value_type>::Ceil>::
1324 Run(*
this, otherVector);
1329 template <
class __vectorOwnerType>
1331 *
this = otherVector;
1349 vctDynamicVectorLoopEngines::
1350 Vio<typename vctStoreBackUnaryOperations<value_type>::MakeAbs>::
1357 vctDynamicVectorLoopEngines::
1358 Vio<typename vctStoreBackUnaryOperations<value_type>::MakeNegation>::
1365 vctDynamicVectorLoopEngines::
1366 Vio<typename vctStoreBackUnaryOperations<value_type>::MakeFloor>::
1373 vctDynamicVectorLoopEngines::
1374 Vio<typename vctStoreBackUnaryOperations<value_type>::MakeCeil>::
1384 cmnThrow(std::runtime_error(
"Division by quasi zero detected in vctDynamicVector NormalizedSelf()"));
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:145
Definition vctForwardDeclarations.h:119
Dynamic vector referencing existing memory (const).
Definition vctDynamicConstVectorRef.h:79
reverse_iterator rbegin(void)
Definition vctDynamicNArrayBase.h:117
const OwnerType & Owner(void) const
Definition vctDynamicNArrayBase.h:143
SliceRefType operator[](size_type index)
Definition vctDynamicNArrayBase.h:320
iterator end(void)
Definition vctDynamicNArrayBase.h:104
OwnerType::reverse_iterator reverse_iterator
Definition vctDynamicNArrayBase.h:62
OwnerType::const_reverse_iterator const_reverse_iterator
Definition vctDynamicNArrayBase.h:63
iterator begin(void)
Definition vctDynamicNArrayBase.h:91
OwnerType::const_iterator const_iterator
Definition vctDynamicNArrayBase.h:61
reference at(size_type metaIndex) CISST_THROW(std
Definition vctDynamicNArrayBase.h:184
reverse_iterator rend(void)
Definition vctDynamicNArrayBase.h:130
reference Element(const nsize_type &coordinates)
Definition vctDynamicNArrayBase.h:239
reference operator()(const nsize_type &coordinates) CISST_THROW(std
Definition vctDynamicNArrayBase.h:220
pointer Pointer(void)
Definition vctDynamicNArrayBase.h:168
OwnerType::iterator iterator
Definition vctDynamicNArrayBase.h:60
Definition vctDynamicVectorBase.h:1274
vctDynamicVectorRef< value_type > Type
Definition vctDynamicVectorBase.h:1276
Definition vctDynamicVectorBase.h:62
ThisType & ElementwiseDivide(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:843
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
ThisType & ForceAssign(const vctFixedSizeConstVectorBase< __size, __stride, __elementType, __dataPtrType > &other)
Definition vctDynamicVectorBase.h:332
pointer Pointer(index_type index=0)
Definition vctDynamicVectorBase.h:155
ThisType & AddElementwiseProductOf(const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &vector1, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &vector2)
Definition vctDynamicVectorBase.h:1201
vctDynamicVectorRef< _elementType > XY(void)
Definition vctDynamicVectorBase.h:549
reverse_iterator rbegin(void)
Definition vctDynamicVectorBase.h:103
ThisType & SumOf(const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &vector1, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &vector2)
Definition vctDynamicVectorBase.h:728
value_type SetAll(const value_type value)
Definition vctDynamicVectorBase.h:209
ThisType & SumOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector, const value_type scalar)
Definition vctDynamicVectorBase.h:939
ThisType & SwapElementsWith(vctDynamicVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:915
iterator end(void)
Definition vctDynamicVectorBase.h:97
ThisType & RatioOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector, const value_type scalar)
Definition vctDynamicVectorBase.h:969
value_type & X(void)
Definition vctDynamicVectorBase.h:497
ThisType & CeilSelf(void)
Definition vctDynamicVectorBase.h:1372
BaseType::const_reverse_iterator const_reverse_iterator
Definition vctDynamicVectorBase.h:77
ThisType & DifferenceOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector, const value_type scalar)
Definition vctDynamicVectorBase.h:949
ThisType & ConcatenationOf(const vctDynamicConstVectorBase< __vectorOwnerType, __elementType > &otherVector, __elementType lastElement)
Definition vctDynamicVectorBase.h:474
ThisType & AbsOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:1294
ThisType & DifferenceOf(const value_type scalar, const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector)
Definition vctDynamicVectorBase.h:1036
ThisType & SumOf(const value_type scalar, const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector)
Definition vctDynamicVectorBase.h:1026
ThisType & operator*=(const value_type scalar)
Definition vctDynamicVectorBase.h:1178
ThisType & NegationSelf(void)
Definition vctDynamicVectorBase.h:1356
vctDynamicVectorRef< _elementType > XZ(void)
Definition vctDynamicVectorBase.h:556
ThisType & operator-=(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:903
VectorOwnerType & Owner(void)
Definition vctDynamicVectorBase.h:148
bool Zeros(void)
Definition vctDynamicVectorBase.h:225
vctDynamicVectorRef< _elementType > XYZ(void)
Definition vctDynamicVectorBase.h:624
ThisType & Assign(const value_type *elements)
Definition vctDynamicVectorBase.h:429
ThisType & FloorSelf(void)
Definition vctDynamicVectorBase.h:1364
reference operator[](index_type index)
Definition vctDynamicVectorBase.h:135
ThisType & ProductOf(const value_type scalar, const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector)
Definition vctDynamicVectorBase.h:1046
ThisType & operator/=(const value_type scalar)
Definition vctDynamicVectorBase.h:1183
ThisType & ElementwiseMin(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:852
ThisType & NegationOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:1303
bool FastCopyOf(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &source, bool performSafetyChecks=true) CISST_THROW(std
Definition vctDynamicVectorBase.h:399
const_pointer Pointer(index_type index=0) const
Definition vctDynamicVectorBase.h:160
ThisType & Assign(value_type element0, value_type element1,...) CISST_THROW(std
Definition vctDynamicVectorBase.h:450
ThisType & Multiply(const value_type scalar)
Definition vctDynamicVectorBase.h:1128
vctDynamicConstVectorRef< _elementType > XW(void) const
Definition vctDynamicVectorBase.h:600
const_reference Element(index_type index) const
Definition vctDynamicVectorBase.h:200
_vectorOwnerType VectorOwnerType
Definition vctDynamicVectorBase.h:72
reference at(index_type index) CISST_THROW(std
Definition vctDynamicVectorBase.h:170
vctDynamicConstVectorRef< _elementType > XZ(void) const
Definition vctDynamicVectorBase.h:595
const VectorOwnerType & Owner(void) const
Definition vctDynamicVectorBase.h:145
ThisType & ClippedAboveOf(const value_type upperBound, const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector)
Definition vctDynamicVectorBase.h:1066
void SelectFrom(const vctDynamicConstVectorBase< __inputVectorOwner, _elementType > &input, const vctDynamicConstVectorBase< __indexVectorOwner, index_type > &index)
Definition vctDynamicVectorBase.h:683
BaseType::iterator iterator
Definition vctDynamicVectorBase.h:74
ThisType & DifferenceOf(const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &vector1, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &vector2)
Definition vctDynamicVectorBase.h:738
ThisType & ClipAbove(const value_type upperBound)
Definition vctDynamicVectorBase.h:1144
BaseType::CopyType CopyType
Definition vctDynamicVectorBase.h:79
ThisType & Subtract(const value_type scalar)
Definition vctDynamicVectorBase.h:1120
vctDynamicConstVectorRef< _elementType > ZW(void) const
Definition vctDynamicVectorBase.h:615
vctDynamicConstVectorRef< _elementType > Ref(const size_type size, const size_type startPosition=0) const CISST_THROW(std
Definition vctDynamicVectorBase.h:672
ThisType & ElementwiseMultiply(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:834
ThisType & ClippedAboveOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector, const value_type upperBound)
Definition vctDynamicVectorBase.h:979
ThisType & ClipIn(const value_type bound)
Definition vctDynamicVectorBase.h:1160
void CrossProductOf(const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &inputVector1, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &inputVector2)
Definition vctDynamicVectorBase.h:695
TypeTraits::VaArgPromotion ElementVaArgPromotion
Definition vctDynamicVectorBase.h:85
vctDynamicConstVectorBase< _vectorOwnerType, _elementType > BaseType
Definition vctDynamicVectorBase.h:70
ThisType & ClipBelow(const value_type lowerBound)
Definition vctDynamicVectorBase.h:1152
vctDynamicConstVectorRef< _elementType > YW(void) const
Definition vctDynamicVectorBase.h:610
vctDynamicVectorRef< _elementType > Ref(const size_type size, const size_type startPosition=0) CISST_THROW(std
Definition vctDynamicVectorBase.h:664
const_reference operator[](index_type index) const
Definition vctDynamicVectorBase.h:140
ThisType & NormalizedSelf(void) CISST_THROW(std
Definition vctDynamicVectorBase.h:1379
const_iterator end(void) const
Definition vctDynamicVectorBase.h:119
value_type & W(void)
Definition vctDynamicVectorBase.h:535
vctDynamicConstVectorRef< _elementType > YZ(void) const
Definition vctDynamicVectorBase.h:605
reference Element(index_type index)
Definition vctDynamicVectorBase.h:195
ThisType & ElementwiseClipAbove(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &upperBoundVector)
Definition vctDynamicVectorBase.h:870
ThisType & FloorOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:1312
ThisType & ElementwiseMinOf(const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &vector1, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &vector2)
Definition vctDynamicVectorBase.h:768
ThisType & ClippedBelowOf(const value_type lowerBound, const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector)
Definition vctDynamicVectorBase.h:1076
const_iterator begin(void) const
Definition vctDynamicVectorBase.h:114
ThisType & Assign(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &other)
Definition vctDynamicVectorBase.h:242
ThisType & ClippedInOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector, const value_type bound)
Definition vctDynamicVectorBase.h:999
ThisType & ProductOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &inputMatrix, const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &inputVector)
Definition vctDynamicVectorBase.h:1229
ThisType & AddProductOf(const value_type scalar, const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:1189
const value_type & Z(void) const
Definition vctDynamicVectorBase.h:529
const value_type & Y(void) const
Definition vctDynamicVectorBase.h:516
ThisType & Divide(const value_type scalar)
Definition vctDynamicVectorBase.h:1136
value_type & Y(void)
Definition vctDynamicVectorBase.h:510
ThisType & ElementwiseClippedInOf(const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &boundVector, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &vector)
Definition vctDynamicVectorBase.h:788
ThisType & ProductOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector, const value_type scalar)
Definition vctDynamicVectorBase.h:959
bool FastCopyOf(const vctFixedSizeConstVectorBase< __size, __stride, value_type, __dataPtrType > &source, bool performSafetyChecks=true) CISST_THROW(std
Definition vctDynamicVectorBase.h:407
const_reverse_iterator rend(void) const
Definition vctDynamicVectorBase.h:129
ThisType & ElementwiseRatioOf(const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &vector1, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &vector2)
Definition vctDynamicVectorBase.h:758
vctDynamicConstVectorRef< _elementType > XY(void) const
Definition vctDynamicVectorBase.h:590
ThisType & ProductOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &inputVector, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &inputMatrix)
Definition vctDynamicVectorBase.h:1246
iterator begin(void)
Definition vctDynamicVectorBase.h:91
reverse_iterator rend(void)
Definition vctDynamicVectorBase.h:109
ThisType & ClippedBelowOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector, const value_type lowerBound)
Definition vctDynamicVectorBase.h:989
ThisType & ElementwiseProductOf(const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &vector1, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &vector2)
Definition vctDynamicVectorBase.h:748
ThisType & AbsSelf(void)
Definition vctDynamicVectorBase.h:1348
ThisType & ElementwiseClipIn(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &boundVector)
Definition vctDynamicVectorBase.h:888
const value_type & X(void) const
Definition vctDynamicVectorBase.h:503
ThisType & ElementwiseClipBelow(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &lowerBoundVector)
Definition vctDynamicVectorBase.h:879
ThisType & ForceAssign(const vctDynamicConstVectorBase< __vectorOwnerType, __elementType > &other)
Definition vctDynamicVectorBase.h:327
ThisType & ClippedInOf(const value_type bound, const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector)
Definition vctDynamicVectorBase.h:1086
const value_type & W(void) const
Definition vctDynamicVectorBase.h:541
ThisType & ElementwiseMaxOf(const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &vector1, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &vector2)
Definition vctDynamicVectorBase.h:778
vctDynamicVectorRef< _elementType > YZ(void)
Definition vctDynamicVectorBase.h:570
vctDynamicVectorRef< _elementType > XW(void)
Definition vctDynamicVectorBase.h:563
ThisType & Add(const value_type scalar)
Definition vctDynamicVectorBase.h:1112
ThisType & RatioOf(const value_type scalar, const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &vector)
Definition vctDynamicVectorBase.h:1056
ThisType & Assign(const vctFixedSizeConstVectorBase< __size, __stride, __elementType, __dataPtrType > &other)
Definition vctDynamicVectorBase.h:293
vctDynamicVectorRef< _elementType > ZW(void)
Definition vctDynamicVectorBase.h:584
ThisType & operator+=(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:897
vctDynamicVectorRef< _elementType > XYZW(void)
Definition vctDynamicVectorBase.h:651
vctDynamicConstVectorRef< _elementType > XYZW(void) const
Definition vctDynamicVectorBase.h:657
BaseType::VectorValueType VectorValueType
Definition vctDynamicVectorBase.h:80
ThisType & Assign(const vctDynamicConstVectorBase< __vectorOwnerType, __elementType > &other)
Definition vctDynamicVectorBase.h:279
BaseType::reverse_iterator reverse_iterator
Definition vctDynamicVectorBase.h:75
ThisType & Assign(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &other, size_type length, size_type startPositionThis=0, size_type startPositionOther=0)
Definition vctDynamicVectorBase.h:263
vctDynamicVectorRef< _elementType > YW(void)
Definition vctDynamicVectorBase.h:577
value_type & Z(void)
Definition vctDynamicVectorBase.h:523
BaseType::const_iterator const_iterator
Definition vctDynamicVectorBase.h:76
vctDynamicVectorRef< _elementType > YZW(void)
Definition vctDynamicVectorBase.h:631
vctDynamicVectorBase ThisType
Definition vctDynamicVectorBase.h:68
class cmnTypeTraits< value_type > TypeTraits
Definition vctDynamicVectorBase.h:84
vctDynamicConstVectorRef< _elementType > YZW(void) const
Definition vctDynamicVectorBase.h:642
ThisType & Add(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:816
reference operator()(index_type index) CISST_THROW(std
Definition vctDynamicVectorBase.h:181
vctDynamicConstVectorRef< _elementType > XYZ(void) const
Definition vctDynamicVectorBase.h:637
const_reference at(index_type index) const CISST_THROW(std
Definition vctDynamicVectorBase.h:176
const_reverse_iterator rbegin(void) const
Definition vctDynamicVectorBase.h:124
friend class vctDynamicVectorLoopEngines
Definition vctDynamicVectorBase.h:64
ThisType & CeilOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:1321
ThisType & ElementwiseMax(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:861
ThisType & Subtract(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector)
Definition vctDynamicVectorBase.h:825
ThisType & NormalizedOf(const vctDynamicConstVectorBase< __vectorOwnerType, _elementType > &otherVector) CISST_THROW(std
Definition vctDynamicVectorBase.h:1330
ThisType & operator=(const vctDynamicConstVectorBase< __vectorOwnerType, __elementType > &other)
Definition vctDynamicVectorBase.h:288
static void Run(_outputVectorType &output, const _inputVectorType &input, const _indexVectorType &index)
Definition vctDynamicVectorLoopEngines.h:1092
Dynamic vector referencing existing memory.
Definition vctDynamicVectorRef.h:78
vctDynamicVectorRef()
Definition vctDynamicVectorRef.h:91
static bool VectorCopy(_destinationVectorType &destination, const _sourceVectorType &source, bool performSafetyChecks)
Definition vctFastCopy.h:161
A template for a fixed length vector with fixed spacing in memory.
Definition vctFixedSizeConstVectorBase.h:108
Returns the sum of the two InputType object.
Definition vctStoreBackBinaryOperations.h:76
Define unary operations on an object as classes.
Definition vctUnaryOperations.h:56
#define CMN_ASSERT(expr)
Definition cmnAssert.h:97
#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
size_type size(void) const
Definition vctDynamicConstMatrixBase.h:228
bool IsCompact(void) const
Definition vctDynamicConstMatrixBase.h:641
NormType Norm(void) const
Definition vctDynamicConstMatrixBase.h:467
void ThrowUnlessValidIndex(size_type index) const CISST_THROW(std
Definition vctDynamicConstMatrixBase.h:171
bool FastCopyCompatible(const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &source) const
Definition vctDynamicConstMatrixBase.h:677
difference_type stride(dimension_type dimension) const
Definition vctDynamicConstNArrayBase.h:325
Declaration of vctDynamicConstVectorBase.
OwnerType Vector
Definition vctDynamicConstVectorBase.h:126
Declaration of vctDynamicConstVectorRef.
void vctMultiplyMatrixVector(vctDynamicVectorBase< _resultVectorOwnerType, _elementType > &result, const vctDynamicConstMatrixBase< _matrixOwnerType, _elementType > &matrix, const vctDynamicConstVectorBase< _vectorOwnerType, _elementType > &vector)
Definition vctDynamicMatrixRef.h:394
void vctMultiplyVectorMatrix(vctDynamicVectorBase< _resultVectorOwnerType, _elementType > &result, const vctDynamicConstVectorBase< _vectorOwnerType, _elementType > &vector, const vctDynamicConstMatrixBase< _matrixOwnerType, _elementType > &matrix)
Definition vctDynamicMatrixRef.h:409
Declaration of vctStoreBackBinaryOperations.
Declaration of vctStoreBackUnaryOperations.