tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
layout_transpose< Layout >::mapping< Extents > Struct Template Reference

#include <layout_transpose.hpp>

Public Types

using extents_type = Extents
 
using layout_type = layout_transpose
 
using size_type = typename extents_type::size_type
 

Public Member Functions

constexpr mapping (nested_mapping_t const &map)
 
constexpr auto extents () const noexcept(noexcept(_nestedMapping.extents())) -> extents_type
 
constexpr auto is_contiguous () const noexcept(noexcept(_nestedMapping.is_contiguous())) -> bool
 
constexpr auto is_strided () const noexcept(noexcept(_nestedMapping.is_strided())) -> bool
 
constexpr auto is_unique () const noexcept(noexcept(_nestedMapping.is_unique())) -> bool
 
constexpr auto nested_mapping () const -> nested_mapping_t
 
template<typename IndexType, typename... Indices>
constexpr auto operator() (Indices... rest, IndexType i, IndexType j) const noexcept(noexcept(_nestedMapping(rest..., j, i))) -> typename Extents::size_type
 
constexpr auto required_span_size () const noexcept(noexcept(_nestedMapping.required_span_size()))
 
constexpr auto stride (size_t r) const noexcept(noexcept(_nestedMapping.stride(r))) -> size_type requires(is_always_strided())
 

Static Public Member Functions

static constexpr auto is_always_contiguous () -> bool
 
static constexpr auto is_always_strided () -> bool
 
static constexpr auto is_always_unique () -> bool
 

Friends

template<typename OtherExtents>
requires (Extents::rank() == OtherExtents::rank())
constexpr auto operator== (mapping const &lhs, mapping< OtherExtents > const &rhs) noexcept -> bool
 

Member Typedef Documentation

◆ extents_type

template<typename Layout>
template<typename Extents>
using extents_type = Extents

◆ layout_type

template<typename Layout>
template<typename Extents>
using layout_type = layout_transpose

◆ size_type

template<typename Layout>
template<typename Extents>
using size_type = typename extents_type::size_type

Constructor & Destructor Documentation

◆ mapping()

template<typename Layout>
template<typename Extents>
mapping ( nested_mapping_t const & map)
inlineexplicitconstexpr

Member Function Documentation

◆ extents()

template<typename Layout>
template<typename Extents>
auto extents ( ) const -> extents_type
inlinenodiscardconstexprnoexcept

◆ is_always_contiguous()

template<typename Layout>
template<typename Extents>
constexpr auto is_always_contiguous ( ) -> bool
inlinestaticnodiscardconstexpr

◆ is_always_strided()

template<typename Layout>
template<typename Extents>
constexpr auto is_always_strided ( ) -> bool
inlinestaticnodiscardconstexpr

◆ is_always_unique()

template<typename Layout>
template<typename Extents>
constexpr auto is_always_unique ( ) -> bool
inlinestaticnodiscardconstexpr

◆ is_contiguous()

template<typename Layout>
template<typename Extents>
auto is_contiguous ( ) const -> bool
inlinenodiscardconstexprnoexcept

◆ is_strided()

template<typename Layout>
template<typename Extents>
auto is_strided ( ) const -> bool
inlinenodiscardconstexprnoexcept

◆ is_unique()

template<typename Layout>
template<typename Extents>
auto is_unique ( ) const -> bool
inlinenodiscardconstexprnoexcept

◆ nested_mapping()

template<typename Layout>
template<typename Extents>
auto nested_mapping ( ) const -> nested_mapping_t
inlinenodiscardconstexpr

◆ operator()()

template<typename Layout>
template<typename Extents>
template<typename IndexType, typename... Indices>
auto operator() ( Indices... rest,
IndexType i,
IndexType j ) const -> typename Extents::size_type
inlinenodiscardconstexprnoexcept

◆ required_span_size()

template<typename Layout>
template<typename Extents>
auto required_span_size ( ) const
inlinenodiscardconstexprnoexcept

◆ stride()

template<typename Layout>
template<typename Extents>
auto stride ( size_t r) const -> size_type requires(is_always_strided())
inlinenodiscardconstexprnoexcept

Friends And Related Symbol Documentation

◆ operator==

template<typename Layout>
template<typename Extents>
template<typename OtherExtents>
requires (Extents::rank() == OtherExtents::rank())
auto operator== ( mapping< Extents > const & lhs,
mapping< OtherExtents > const & rhs ) -> bool
friend

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