22#ifndef _vctDynamicNArray_h
23#define _vctDynamicNArray_h
121template<
class _elementType, vct::
size_type _dimension>
123 public vctDynamicNArrayBase<vctDynamicNArrayOwner<_elementType, _dimension>, _elementType, _dimension>
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);
270template <
class _elementType, vct::
size_type _dimension>
285 const nsize_type
sizes = other.sizes();
286 this->
NArray.Own(
sizes, nonConstOther.NArray.Release());
292template <
class _elementType, vct::
size_type _dimension>
299 const nsize_type
sizes = other.sizes();
300 this->
NArray.Own(
sizes, nonConstOther.NArray.Release());
305template <
class _elementType, vct::
size_type _dimension>
313 const nsize_type
sizes = other.sizes();
315 this->
NArray.Own(
sizes, nonConstOther.NArray.Release());
327template <
class _nArrayOwnerType1,
class _nArrayOwnerType2,
class _elementType, vct::
size_type _dimension>
334 resultStorage.Add(inputNArray2);
339template <
class _nArrayOwnerType1,
class _nArrayOwnerType2,
class _elementType, vct::
size_type _dimension>
346 resultStorage.Subtract(inputNArray2);
361template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
364 const _elementType & inputScalar)
368 resultStorage.Add(inputScalar);
373template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
376 const _elementType & inputScalar)
380 resultStorage.Subtract(inputScalar);
385template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
388 const _elementType & inputScalar)
392 resultStorage.Multiply(inputScalar);
397template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
400 const _elementType & inputScalar)
404 resultStorage.Divide(inputScalar);
418template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
425 resultStorage.SumOf(inputScalar, inputNArray);
430template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
437 resultStorage.DifferenceOf(inputScalar, inputNArray);
442template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
449 resultStorage.ProductOf(inputScalar, inputNArray);
454template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
461 resultStorage.RatioOf(inputScalar, inputNArray);
473template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
479 resultStorage.NegationOf(inputNArray);
487template <
class _nArrayOwnerType1,
class _nArrayOwnerType2,
class _elementType, vct::
size_type _dimension>
494 resultStorage.ProductOf(inputNArray1, inputNArray2);
505template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
512 NoNi<typename vctUnaryOperations<value_type>::AbsValue>::
513 Run(resultStorage, *
this);
518template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
525 NoNi<typename vctUnaryOperations<value_type>::Negation>::
526 Run(resultStorage, *
this);
531template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
538 NoNi<typename vctUnaryOperations<value_type>::Floor>::
539 Run(resultStorage, *
this);
544template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
551 NoNi<typename vctUnaryOperations<value_type>::Ceil>::
552 Run(resultStorage, *
this);
557template <
class _nArrayOwnerType,
class __nArrayOwnerType,
class _elementType,
565 NoNiNi<_elementOperationType>::Run(result, nArray1, nArray2);
570template <
class _nArrayOwnerType,
class _elementType,
class _elementOperationType, vct::
size_type _dimension>
573 const _elementType & scalar)
577 NoNiSi<_elementOperationType>::Run(result, nArray, scalar);
583template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
595template <
class _nArrayOwnerType,
class _elementType>
604template <
class _nArrayOwnerType,
class _elementType, vct::
size_type _dimension>
616template <
class _nArrayOwnerType,
class _elementType>
617inline const _elementType &
Definition vctForwardDeclarations.h:171
Dynamic nArray referencing existing memory (const).
Definition vctDynamicConstNArrayRef.h:91
void SliceOf(const vctDynamicConstNArrayBase< __ownerType, value_type, DIMENSION+1 > &otherNArray, dimension_type dimension, size_type index)
Definition vctDynamicConstNArrayRef.h:256
Definition vctDynamicNArrayBase.h:41
reference Element(const nsize_type &coordinates)
Definition vctDynamicNArrayBase.h:239
Definition vctForwardDeclarations.h:183
Container class for the dynamic nArray engines.
Definition vctDynamicNArrayLoopEngines.h:42
Dynamic nArray referencing existing memory.
Definition vctDynamicNArrayRef.h:89
void SliceOf(vctDynamicNArrayBase< __ownerType, _elementType, DIMENSION+1 > &otherNArray, dimension_type dimension, size_type index)
Definition vctDynamicNArrayRef.h:248
Implementation of a fixed-size vector using template metaprogramming.
Definition vctFixedSizeVector.h:54
Definition vctDynamicNArray.h:272
vctDynamicNArray< value_type, _dimension > BaseType
Definition vctDynamicNArray.h:278
VCT_NARRAY_TRAITS_TYPEDEFS(_dimension)
vctReturnDynamicNArray(const BaseType &other)
Definition vctDynamicNArray.h:280
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
size_t size_type
Definition vctContainerTraits.h:35
size_t index_type
Definition vctContainerTraits.h:36
#define VCT_CONTAINER_TRAITS_TYPEDEFS(type)
Definition vctContainerTraits.h:50
#define VCT_NARRAY_TRAITS_TYPEDEFS(dimension)
Definition vctContainerTraits.h:68
const nsize_type & sizes(void) const
Definition vctDynamicConstMatrixBase.h:233
vctDynamicConstMatrixBase< _matrixOwnerType, _elementType > ThisType
Definition vctDynamicConstMatrixBase.h:86
_elementType & vctDynamicNArrayElementSlice(vctDynamicNArrayBase< _nArrayOwnerType, _elementType, 1 > &input, vct::index_type index)
Definition vctDynamicNArray.h:597
const _elementType & vctDynamicNArrayConstElementSlice(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, 1 > &input, vct::index_type index)
Definition vctDynamicNArray.h:618
vctDynamicConstNArrayRef< _elementType, _dimension - 1 > vctDynamicNArrayConstNArraySlice(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &input, vct::size_type dimension, vct::index_type index)
Definition vctDynamicNArray.h:606
vctReturnDynamicNArray< bool, _dimension > vctDynamicNArrayElementwiseCompareNArray(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &nArray1, const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &nArray2)
Definition vctDynamicNArray.h:560
vctDynamicNArrayRef< _elementType, _dimension - 1 > vctDynamicNArrayNArraySlice(vctDynamicNArrayBase< _nArrayOwnerType, _elementType, _dimension > &input, vct::size_type dimension, vct::index_type index)
Definition vctDynamicNArray.h:585
dimension_type dimension(void) const
Definition vctDynamicConstNArrayBase.h:331
vctReturnDynamicNArray< bool, _dimension > vctDynamicNArrayElementwiseCompareScalar(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &nArray, const _elementType &scalar)
Definition vctDynamicNArray.h:572
OwnerType NArray
Definition vctDynamicConstNArrayBase.h:226
ThisType & ForceAssign(const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &other)
Definition vctDynamicMatrix.h:306
void SetSize(size_type rows, size_type cols, bool storageOrder)
Definition vctDynamicMatrix.h:364
ThisType & operator=(const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &otherMatrix)
Definition vctDynamicMatrix.h:255
vctReturnDynamicNArray< _elementType, _dimension > operator*(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &inputNArray, const _elementType &inputScalar)
Definition vctDynamicNArray.h:387
vctDynamicNArray()
Definition vctDynamicNArray.h:137
vctDynamicNArrayBase< vctDynamicNArrayOwner< _elementType, _dimension >, _elementType, _dimension > BaseType
Definition vctDynamicNArray.h:133
vctReturnDynamicNArray< _elementType, _dimension > operator/(const vctDynamicConstNArrayBase< _nArrayOwnerType, _elementType, _dimension > &inputNArray, const _elementType &inputScalar)
Definition vctDynamicNArray.h:399
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< _nArrayOwnerType1, _elementType, _dimension > &inputNArray1, const vctDynamicConstNArrayBase< _nArrayOwnerType2, _elementType, _dimension > &inputNArray2)
Definition vctDynamicNArray.h:341
Declaration of vctDynamicNArrayBase.
Declaration of vctDynamicNArrayOwner.
Declaration of vctDynamicNArrayRef.