|
|
using | ConstViewType = NDArrayView< std::add_const_t< ValueType >, DeviceType, IndexerType, PermutationType > |
| | 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 = Permutation |
| | Permutation that determines the internal memory layout of the N-dimensional array.
|
|
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 | StridesHolderType = typename Indexer::StridesHolderType |
| | Type of the underlying object which represents the strides of the N-dimensional array.
|
|
using | ValueType = typename Array::ValueType |
| | Type of the values stored in the array.
|
|
using | ViewType = NDArrayView< ValueType, DeviceType, IndexerType, PermutationType > |
| | 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 Permutation, typename Device = typename Array::DeviceType>
class TNL::Containers::NDArrayStorage< Array, Indexer, Permutation, Device >
Base storage class for NDArray and StaticNDArray.
- 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.