|
using | ConstViewType = NDArrayView< std::add_const_t< ValueType >, DeviceType, IndexerType > |
| Compatible constant NDArrayView type.
|
|
using | DeviceType = Device |
| Type of the device used for running operations on the array.
|
|
using | IndexerType = Indexer |
| Type of the N-dimensional indexer, NDArrayIndexer.
|
|
using | IndexType = typename Indexer::IndexType |
| Type of indices used for addressing the array elements.
|
|
using | OverlapsType = typename Indexer::OverlapsType |
| Sequence of integers representing the overlaps in each dimension of a distributed N-dimensional array.
|
|
using | PermutationType = typename Indexer::PermutationType |
| Permutation that is applied to indices when accessing the array elements.
|
|
using | SizesHolderType = typename Indexer::SizesHolderType |
| Type of the underlying object which represents the sizes of the N-dimensional array.
|
|
using | StorageArray = Array |
| Type of the underlying one-dimensional array storing the elements.
|
|
using | ValueType = typename Array::ValueType |
| Type of the values stored in the array.
|
|
using | ViewType = NDArrayView< ValueType, DeviceType, IndexerType > |
| Compatible NDArrayView type.
|
|
|
| NDArrayStorage ()=default |
| Constructs an empty storage with zero size.
|
|
| NDArrayStorage (const NDArrayStorage &)=default |
| Copy constructor (makes a deep copy).
|
|
| NDArrayStorage (NDArrayStorage &&) noexcept=default |
| Move constructor for initialization from rvalues.
|
|
template<typename Device2 = DeviceType, typename Func > |
void | forAll (Func f, const typename Device2::LaunchConfiguration &launch_configuration=typename Device2::LaunchConfiguration{}) const |
| Evaluates the function f in parallel for all elements of the array.
|
|
template<typename Device2 = DeviceType, typename SkipBegins , typename SkipEnds , typename Func > |
void | forBoundary (const SkipBegins &skipBegins, const SkipEnds &skipEnds, Func f, const typename Device2::LaunchConfiguration &launch_configuration=typename Device2::LaunchConfiguration{}) const |
| Evaluates the function f in parallel for all elements of the array outside the N-dimensional interval [skipBegins, skipEnds) .
|
|
template<typename Device2 = DeviceType, typename Func > |
void | forBoundary (Func f, const typename Device2::LaunchConfiguration &launch_configuration=typename Device2::LaunchConfiguration{}) const |
| Evaluates the function f in parallel for all boundary elements of the array.
|
|
template<typename Device2 = DeviceType, typename Begins , typename Ends , typename Func > |
void | forInterior (const Begins &begins, const Ends &ends, Func f, const typename Device2::LaunchConfiguration &launch_configuration=typename Device2::LaunchConfiguration{}) const |
| Evaluates the function f in parallel for all elements of the array inside the N-dimensional interval [begins, ends) .
|
|
template<typename Device2 = DeviceType, typename Func > |
void | forInterior (Func f, const typename Device2::LaunchConfiguration &launch_configuration=typename Device2::LaunchConfiguration{}) const |
| Evaluates the function f in parallel for all internal elements of the array.
|
|
__cuda_callable__ ConstViewType | getConstView () const |
| Returns a non-modifiable view of the array.
|
|
__cuda_callable__ ValueType * | getData () |
| Returns a raw pointer to the data.
|
|
__cuda_callable__ std::add_const_t< ValueType > * | getData () const |
| Returns a const-qualified raw pointer to the data.
|
|
template<typename... IndexTypes> |
ValueType | getElement (IndexTypes &&... indices) const |
| A "safe" accessor for array elements.
|
|
__cuda_callable__ const IndexerType & | getIndexer () const |
| Returns a const-qualified reference to the underlying indexer.
|
|
StorageArray & | getStorageArray () |
| Returns a reference to the underlying storage array.
|
|
const StorageArray & | getStorageArray () const |
| Returns a constant reference to the underlying storage array.
|
|
template<std::size_t... Dimensions, typename... IndexTypes> |
__cuda_callable__ auto | getSubarrayView (IndexTypes &&... indices) |
| Returns a modifiable view of a subarray.
|
|
__cuda_callable__ ViewType | getView () |
| Returns a modifiable view of the array.
|
|
bool | operator!= (const NDArrayStorage &other) const |
| Compares the array with another N-dimensional array.
|
|
template<typename... IndexTypes> |
__cuda_callable__ ValueType & | operator() (IndexTypes &&... indices) |
| Accesses an element of the array.
|
|
template<typename... IndexTypes> |
__cuda_callable__ const ValueType & | operator() (IndexTypes &&... indices) const |
| Accesses an element of the array.
|
|
NDArrayStorage & | operator= (const NDArrayStorage &other)=default |
| Copy-assignment operator for deep-copying data from another array. Mismatched sizes cause reallocations.
|
|
template<typename OtherArray > |
NDArrayStorage & | operator= (const OtherArray &other) |
| Templated copy-assignment operator for deep-copying data from another array.
|
|
NDArrayStorage & | operator= (NDArrayStorage &&) noexcept(false)=default |
| Move-assignment operator for acquiring data from rvalues.
|
|
bool | operator== (const NDArrayStorage &other) const |
| Compares the array with another N-dimensional array.
|
|
__cuda_callable__ ValueType & | operator[] (IndexType index) |
| Accesses an element in a one-dimensional array.
|
|
__cuda_callable__ const ValueType & | operator[] (IndexType index) const |
| Accesses an element in a one-dimensional array.
|
|
void | reset () |
| Resets the array to the empty state.
|
|
void | setLike (const NDArrayStorage &other) |
| Sets sizes of the array to the sizes of an existing array.
|
|
void | setSize (const SizesHolderType &sizes) |
| Sets sizes of the array using an instance of SizesHolder.
|
|
template<typename... IndexTypes> |
void | setSizes (IndexTypes &&... sizes) |
| Sets sizes of the array using raw integers.
|
|
void | setValue (ValueType value) |
| Sets all elements of the array to given value.
|
|
template<typename
Array, typename Indexer, typename Device = typename Array::DeviceType>
class TNL::Containers::NDArrayStorage< Array, Indexer, Device >
Base storage class for NDArray, StaticNDArray and SlicedNDArray.
- Template Parameters
-
Type | of the underlying one-dimensional array for storing the elements. |
Type | of the N-dimensional indexer, NDArrayIndexer. |
Type | of the device used for running operations on the array. |
Note that the class inherits from the Indexer
, i.e. NDArrayIndexer.
See also the Users' Guide.