22 #ifndef _vctDynamicNArray_h
23 #define _vctDynamicNArray_h
121 template<
class _elementType, vct::
size_type _dimension>
123 public vctDynamicNArrayBase<vctDynamicNArrayOwner<_elementType, _dimension>, _elementType, _dimension>
145 this->
NArray.SetSize(sizes);
152 this->
NArray.SetSize(sizes);
170 this->
Assign(otherNArray);
172 template <
class _otherNArrayOwnerType>
176 this->
Assign(otherNArray);
184 template <
class _otherNArrayOwnerType,
typename _otherNArrayElementType>
188 this->
Assign(otherNArray);
197 template <
class __nArrayOwnerType,
typename __elementType>
201 this->
Assign(otherNArray);
214 this->
Assign(otherNArray);
238 template <
class __nArrayOwnerType,
typename __elementType>
241 return this->
Assign(other);
249 this->
NArray.SetSize(sizes);
270 template <
class _elementType, vct::
size_type _dimension>
286 this->
NArray.Own(sizes, nonConstOther.
NArray.Release());
292 template <
class _elementType, vct::
size_type _dimension>
299 const nsize_type sizes = other.
sizes();
305 template <
class _elementType, vct::
size_type _dimension>
313 const nsize_type sizes = other.
sizes();
314 this->NArray.clear();
327 template <
class _nArrayOwnerType1,
class _nArrayOwnerType2,
class _elementType, vct::
size_type _dimension>
332 typedef _elementType value_type;
334 resultStorage.
Add(inputNArray2);
339 template <
class _nArrayOwnerType1,
class _nArrayOwnerType2,
class _elementType, vct::
size_type _dimension>
344 typedef _elementType value_type;
346 resultStorage.
Subtract(inputNArray2);
361 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
364 const _elementType & inputScalar)
366 typedef _elementType value_type;
368 resultStorage.
Add(inputScalar);
373 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
376 const _elementType & inputScalar)
378 typedef _elementType value_type;
380 resultStorage.
Subtract(inputScalar);
385 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
388 const _elementType & inputScalar)
390 typedef _elementType value_type;
392 resultStorage.
Multiply(inputScalar);
397 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
400 const _elementType & inputScalar)
402 typedef _elementType value_type;
404 resultStorage.
Divide(inputScalar);
418 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
423 typedef _elementType value_type;
425 resultStorage.
SumOf(inputScalar, inputNArray);
430 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
435 typedef _elementType value_type;
442 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
447 typedef _elementType value_type;
449 resultStorage.
ProductOf(inputScalar, inputNArray);
454 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
459 typedef _elementType value_type;
461 resultStorage.
RatioOf(inputScalar, inputNArray);
473 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
477 typedef _elementType value_type;
487 template <
class _nArrayOwnerType1,
class _nArrayOwnerType2,
class _elementType, vct::
size_type _dimension>
492 typedef _elementType value_type;
494 resultStorage.
ProductOf(inputNArray1, inputNArray2);
505 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
509 typedef _elementType value_type;
512 NoNi<typename vctUnaryOperations<value_type>::AbsValue>::
513 Run(resultStorage, *
this);
518 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
522 typedef _elementType value_type;
525 NoNi<typename vctUnaryOperations<value_type>::Negation>::
526 Run(resultStorage, *
this);
531 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
535 typedef _elementType value_type;
538 NoNi<typename vctUnaryOperations<value_type>::Floor>::
539 Run(resultStorage, *
this);
544 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
548 typedef _elementType value_type;
551 NoNi<typename vctUnaryOperations<value_type>::Ceil>::
552 Run(resultStorage, *
this);
557 template <
class _nArrayOwnerType,
class __nArrayOwnerType,
class _elementType,
565 NoNiNi<_elementOperationType>::Run(result, nArray1, nArray2);
570 template <
class _nArrayOwnerType,
class _elementType,
class _elementOperationType, vct::
size_type _dimension>
573 const _elementType & scalar)
577 NoNiSi<_elementOperationType>::Run(result, nArray, scalar);
583 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
590 slice.
SliceOf(input, dimension, index);
595 template <
class _nArrayOwnerType,
class _elementType>
596 inline _elementType &
604 template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
611 slice.
SliceOf(input, dimension, index);
616 template <
class _nArrayOwnerType,
class _elementType>
617 inline const _elementType &
627 #endif // _vctDynamicNArray_h
size_t index_type
Definition: vctContainerTraits.h:36
VCT_NARRAY_TRAITS_TYPEDEFS(_dimension)
vctReturnDynamicNArray< _elementType, _dimension > operator*(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &inputNArray, const _elementType &inputScalar)
Definition: vctDynamicNArray.h:387
ThisType & Divide(const value_type scalar)
Definition: vctDynamicNArrayBase.h:938
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
Definition: vctDynamicNArray.h:271
ThisType & Add(const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray)
Definition: vctDynamicNArrayBase.h:657
ThisType & SumOf(const vctDynamicConstNArrayBase< __nArrayOwnerType1, value_type, DIMENSION > &nArray1, const vctDynamicConstNArrayBase< __nArrayOwnerType2, value_type, DIMENSION > &nArray2)
Definition: vctDynamicNArrayBase.h:573
An nArray object of dynamic size.
Definition: vctDynamicNArray.h:122
const nsize_type & sizes(void) const
Definition: vctDynamicConstNArrayBase.h:308
ThisType & ProductOf(const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &nArray, const value_type scalar)
Definition: vctDynamicNArrayBase.h:769
void SliceOf(const vctDynamicConstNArrayBase< __ownerType, value_type, DIMENSION+1 > &otherNArray, dimension_type dimension, size_type index)
Definition: vctDynamicConstNArrayRef.h:256
const _elementType & vctDynamicNArrayConstElementSlice(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, 1 > &input, vct::index_type index)
Definition: vctDynamicNArray.h:618
vctReturnDynamicNArray(const BaseType &other)
Definition: vctDynamicNArray.h:280
Container class for the dynamic nArray engines.
Definition: vctDynamicNArrayLoopEngines.h:43
vctDynamicNArray< _elementType, _dimension > BaseType
Definition: vctDynamicNArray.h:278
Definition: vctDynamicConstNArrayBase.h:155
vctDynamicNArray(const ThisType &otherNArray)
Definition: vctDynamicNArray.h:166
NArrayReturnType Abs(void) const
Definition: vctDynamicNArray.h:507
ThisType & Subtract(const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray)
Definition: vctDynamicNArrayBase.h:667
vctDynamicConstNArrayRef< _elementType, _dimension-1 > vctDynamicNArrayConstNArraySlice(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &input, vct::size_type dimension, vct::index_type index)
Definition: vctDynamicNArray.h:606
ThisType & ForceAssign(const vctDynamicConstNArrayBase< __nArrayOwnerType, __elementType, _dimension > &other)
Definition: vctDynamicNArray.h:239
vctDynamicNArray(const nsize_type &sizes)
Definition: vctDynamicNArray.h:143
size_t size_type
Definition: vctContainerTraits.h:35
Declaration of vctDynamicNArrayOwner.
vctDynamicNArray(const vctDynamicConstNArrayBase< _otherNArrayOwnerType, value_type, _dimension > &otherNArray)
Definition: vctDynamicNArray.h:173
Dynamic nArray referencing existing memory (const)
Definition: vctDynamicConstNArrayRef.h:89
Implementation of a fixed-size vector using template metaprogramming.
Definition: vctFixedSizeVector.h:52
ThisType & RatioOf(const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &nArray, const value_type scalar)
Definition: vctDynamicNArrayBase.h:780
vctDynamicNArray(const vctDynamicConstNArrayBase< _otherNArrayOwnerType, _otherNArrayElementType, _dimension > &otherNArray)
Definition: vctDynamicNArray.h:185
ThisType & operator=(const vctDynamicConstNArrayBase< __nArrayOwnerType, __elementType, _dimension > &otherNArray)
Definition: vctDynamicNArray.h:198
value_type * Release(void)
Definition: vctDynamicNArrayOwner.h:234
VCT_NARRAY_TRAITS_TYPEDEFS(_dimension)
Declaration of vctDynamicNArrayRef.
vctReturnDynamicNArray< bool, _dimension > vctDynamicNArrayElementwiseCompareNArray(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &nArray1, const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &nArray2)
Definition: vctDynamicNArray.h:560
NArrayReturnType Ceil(void) const
Definition: vctDynamicNArray.h:546
ThisType & Assign(const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &other)
Definition: vctDynamicNArrayBase.h:374
reference Element(const nsize_type &coordinates)
Definition: vctDynamicNArrayBase.h:241
Declaration of vctDynamicNArrayBase.
vctDynamicNArrayRef< _elementType, _dimension-1 > vctDynamicNArrayNArraySlice(vctDynamicNArrayBase< _nArrayOwnerType, _elementType, _dimension > &input, vct::size_type dimension, vct::index_type index)
Definition: vctDynamicNArray.h:585
Dynamic nArray referencing existing memory.
Definition: vctDynamicNArrayRef.h:87
vctDynamicNArrayBase< vctDynamicNArrayOwner< _elementType, _dimension >, _elementType, _dimension > BaseType
Definition: vctDynamicNArray.h:133
const_reference Element(const nsize_type &coordinates) const
Definition: vctDynamicConstNArrayBase.h:455
vctDynamicNArray()
Definition: vctDynamicNArray.h:137
vctReturnDynamicNArray< _elementType, _dimension > operator+(const vctDynamicConstNArrayBase< _nArrayOwnerType1, _elementType, _dimension > &inputNArray1, const vctDynamicConstNArrayBase< _nArrayOwnerType2, _elementType, _dimension > &inputNArray2)
Definition: vctDynamicNArray.h:329
vctReturnDynamicNArray< _elementType, _dimension > operator/(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &inputNArray, const _elementType &inputScalar)
Definition: vctDynamicNArray.h:399
Definition: vctDynamicNArrayBase.h:42
size_type size(void) const
Definition: vctDynamicConstNArrayBase.h:302
NArrayReturnType Floor(void) const
Definition: vctDynamicNArray.h:533
void SetSize(const nsize_type &sizes)
Definition: vctDynamicNArray.h:247
OwnerType NArray
Definition: vctDynamicConstNArrayBase.h:227
vctReturnDynamicNArray< bool, _dimension > vctDynamicNArrayElementwiseCompareScalar(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &nArray, const _elementType &scalar)
Definition: vctDynamicNArray.h:572
value_type SetAll(const value_type value)
Definition: vctDynamicNArrayBase.h:341
ThisType & NegationOf(const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray)
Definition: vctDynamicNArrayBase.h:1039
vctDynamicNArray< _elementType, _dimension > ThisType
Definition: vctDynamicNArray.h:134
vctReturnDynamicNArray< _elementType, _dimension > operator-(const vctDynamicConstNArrayBase< _nArrayOwnerType1, _elementType, _dimension > &inputNArray1, const vctDynamicConstNArrayBase< _nArrayOwnerType2, _elementType, _dimension > &inputNArray2)
Definition: vctDynamicNArray.h:341
NArrayReturnType Negation(void) const
Definition: vctDynamicNArray.h:520
_elementType & vctDynamicNArrayElementSlice(vctDynamicNArrayBase< _nArrayOwnerType, _elementType, 1 > &input, vct::index_type index)
Definition: vctDynamicNArray.h:597
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
ThisType & Multiply(const value_type scalar)
Definition: vctDynamicNArrayBase.h:929
vctDynamicNArray(const nsize_type &sizes, value_type value)
Definition: vctDynamicNArray.h:150
ThisType & DifferenceOf(const vctDynamicConstNArrayBase< __nArrayOwnerType1, value_type, DIMENSION > &nArray1, const vctDynamicConstNArrayBase< __nArrayOwnerType2, value_type, DIMENSION > &nArray2)
Definition: vctDynamicNArrayBase.h:584
void SliceOf(vctDynamicNArrayBase< __ownerType, _elementType, DIMENSION+1 > &otherNArray, dimension_type dimension, size_type index)
Definition: vctDynamicNArrayRef.h:248