template<typename TArrayExtents, typename TRecordDim, typename TSelectorForMapping1, template< typename... > typename MappingTemplate1, template< typename... > typename MappingTemplate2, bool SeparateBlobs = false>
struct llama::mapping::Split< TArrayExtents, TRecordDim, TSelectorForMapping1, MappingTemplate1, MappingTemplate2, SeparateBlobs >
Mapping which splits off a part of the record dimension and maps it differently then the rest.
- Template Parameters
-
TSelectorForMapping1 | Selects a part of the record dimension to be mapped by MappingTemplate1. Can be a RecordCoord, a type list of RecordCoords, a type list of tags (selecting one field), or a type list of type list of tags (selecting one field per sub list). dimension to be mapped differently. |
MappingTemplate1 | The mapping used for the selected part of the record dimension. |
MappingTemplate2 | The mapping used for the not selected part of the record dimension. |
SeparateBlobs | If true, both pieces of the record dimension are mapped to separate blobs. |
Definition at line 107 of file Split.hpp.
template<typename TArrayExtents , typename TRecordDim , typename TSelectorForMapping1 , template< typename... > typename MappingTemplate1, template< typename... > typename MappingTemplate2, bool SeparateBlobs = false>
template<typename... Args1, typename... Args2>
constexpr llama::mapping::Split< TArrayExtents, TRecordDim, TSelectorForMapping1, MappingTemplate1, MappingTemplate2, SeparateBlobs >::Split |
( |
std::tuple< Args1... > |
mappingArgs1, |
|
|
std::tuple< Args2... > |
mappingArgs2 |
|
) |
| |
|
inlineconstexpr |
template<typename TArrayExtents , typename TRecordDim , typename TSelectorForMapping1 , template< typename... > typename MappingTemplate1, template< typename... > typename MappingTemplate2, bool SeparateBlobs = false>
template<std::size_t... RecordCoords>
template<typename TArrayExtents , typename TRecordDim , typename TSelectorForMapping1 , template< typename... > typename MappingTemplate1, template< typename... > typename MappingTemplate2, bool SeparateBlobs = false>
constexpr auto llama::mapping::Split< TArrayExtents, TRecordDim, TSelectorForMapping1, MappingTemplate1, MappingTemplate2, SeparateBlobs >::blobSize |
( |
[[maybe_unused] ] size_type |
i | ) |
const -> size_type
|
|
inlineconstexpr |
template<typename TArrayExtents , typename TRecordDim , typename TSelectorForMapping1 , template< typename... > typename MappingTemplate1, template< typename... > typename MappingTemplate2, bool SeparateBlobs = false>
template<std::size_t... RecordCoords, typename Blobs >
template<typename TArrayExtents , typename TRecordDim , typename TSelectorForMapping1 , template< typename... > typename MappingTemplate1, template< typename... > typename MappingTemplate2, bool SeparateBlobs = false>
template<std::size_t... RecordCoords>
static constexpr auto llama::mapping::Split< TArrayExtents, TRecordDim, TSelectorForMapping1, MappingTemplate1, MappingTemplate2, SeparateBlobs >::isComputed |
( |
RecordCoord< RecordCoords... > |
| ) |
-> bool
|
|
inlinestaticconstexpr |
template<typename TArrayExtents , typename TRecordDim , typename TSelectorForMapping1 , template< typename... > typename MappingTemplate1, template< typename... > typename MappingTemplate2, bool SeparateBlobs = false>
constexpr std::size_t llama::mapping::Split< TArrayExtents, TRecordDim, TSelectorForMapping1, MappingTemplate1, MappingTemplate2, SeparateBlobs >::blobCount = SeparateBlobs ? Mapping1::blobCount + Mapping2::blobCount : 1 |
|
staticconstexpr |