Low-Level Abstraction of Memory Access
llama::mapping::PermuteArrayIndex< Mapping, Permutation > Struct Template Reference

#include <PermuteArrayIndex.hpp>

+ Inheritance diagram for llama::mapping::PermuteArrayIndex< Mapping, Permutation >:
+ Collaboration diagram for llama::mapping::PermuteArrayIndex< Mapping, Permutation >:

Public Types

using Inner = Mapping
 

Public Member Functions

constexpr PermuteArrayIndex ()=default
 
 PermuteArrayIndex (Mapping mapping)
 
template<typename... Args>
 PermuteArrayIndex (Args &&... innerArgs)
 
template<std::size_t... RCs>
constexpr auto blobNrAndOffset (ArrayIndex ai, RecordCoord< RCs... > rc={}) const -> NrAndOffset< size_type >
 
template<std::size_t... RCs, typename Blobs >
auto compute (ArrayIndex ai, RecordCoord< RCs... > rc, Blobs &blobs) const -> decltype(auto)
 

Detailed Description

template<typename Mapping, std::size_t... Permutation>
struct llama::mapping::PermuteArrayIndex< Mapping, Permutation >

Meta mapping permuting the array indices before forwarding to another mapping. The array extents are not changed.

Template Parameters
PermutationThe pack of integrals describing the permutation of the array indices. The inner mapping will be called with an ArrayIndex{ai[Permutation]...}.

Definition at line 16 of file PermuteArrayIndex.hpp.

Member Typedef Documentation

◆ Inner

template<typename Mapping , std::size_t... Permutation>
using llama::mapping::PermuteArrayIndex< Mapping, Permutation >::Inner = Mapping

Definition at line 23 of file PermuteArrayIndex.hpp.

Constructor & Destructor Documentation

◆ PermuteArrayIndex() [1/3]

template<typename Mapping , std::size_t... Permutation>
constexpr llama::mapping::PermuteArrayIndex< Mapping, Permutation >::PermuteArrayIndex ( )
constexprdefault

◆ PermuteArrayIndex() [2/3]

template<typename Mapping , std::size_t... Permutation>
llama::mapping::PermuteArrayIndex< Mapping, Permutation >::PermuteArrayIndex ( Mapping  mapping)
inlineexplicit

Definition at line 28 of file PermuteArrayIndex.hpp.

◆ PermuteArrayIndex() [3/3]

template<typename Mapping , std::size_t... Permutation>
template<typename... Args>
llama::mapping::PermuteArrayIndex< Mapping, Permutation >::PermuteArrayIndex ( Args &&...  innerArgs)
inlineexplicit

Definition at line 33 of file PermuteArrayIndex.hpp.

Member Function Documentation

◆ blobNrAndOffset()

template<typename Mapping , std::size_t... Permutation>
template<std::size_t... RCs>
constexpr auto llama::mapping::PermuteArrayIndex< Mapping, Permutation >::blobNrAndOffset ( ArrayIndex  ai,
RecordCoord< RCs... >  rc = {} 
) const -> NrAndOffset<size_type>
inlineconstexpr

Definition at line 43 of file PermuteArrayIndex.hpp.

◆ compute()

template<typename Mapping , std::size_t... Permutation>
template<std::size_t... RCs, typename Blobs >
auto llama::mapping::PermuteArrayIndex< Mapping, Permutation >::compute ( ArrayIndex  ai,
RecordCoord< RCs... >  rc,
Blobs blobs 
) const -> decltype(auto)
inline

Definition at line 50 of file PermuteArrayIndex.hpp.


The documentation for this struct was generated from the following file: