di 0.1.0
Loading...
Searching...
No Matches
di::vocab::LayoutRight::Mapping< Extents > Class Template Reference

#include <di/vocab/md/layout_right.h>

Public Types

using ExtentsType = Extents
using SizeType = typename ExtentsType::SizeType
using RankType = typename ExtentsType::RankType
using LayoutType = LayoutRight

Public Member Functions

 Mapping ()=default
 Mapping (Mapping const &)=default
 Mapping (Mapping &&)=default
constexpr Mapping (ExtentsType const &extents)
template<concepts::Extents OtherExtents>
requires (concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
constexpr explicit (!concepts::ConvertibleTo< OtherExtents, ExtentsType >) Mapping(Mapping< OtherExtents > const &extents)
template<concepts::Extents OtherExtents>
requires (ExtentsType::rank() <= 1 && concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
constexpr explicit (!concepts::ConvertibleTo< OtherExtents, ExtentsType >) Mapping(LayoutLeft
template<concepts::Extents OtherExtents>
requires (concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
constexpr explicit (ExtentsType::rank() > 0) Mapping(LayoutStride
auto operator= (Mapping const &) -> Mapping &=default
constexpr auto extents () const -> ExtentsType const &
constexpr auto required_span_size () const -> SizeType
template<typename... Indices>
requires (sizeof...(Indices) == ExtentsType::rank() && (concepts::ConvertibleTo<Indices, SizeType> && ...))
constexpr auto operator() (Indices... indices) const -> SizeType
constexpr auto stride (RankType i) const -> SizeType

Static Public Member Functions

static constexpr auto is_always_unique () -> bool
static constexpr auto is_always_exhaustive () -> bool
static constexpr auto is_always_strided () -> bool
static constexpr auto is_unique () -> bool
static constexpr auto is_exhaustive () -> bool
static constexpr auto is_strided () -> bool

Friends

template<typename OtherExtents>
requires (Extents::rank() == OtherExtents::rank())
constexpr friend auto operator== (Mapping const &a, Mapping< OtherExtents > const &b) -> bool

Member Typedef Documentation

◆ ExtentsType

template<typename Extents>
using di::vocab::LayoutRight::Mapping< Extents >::ExtentsType = Extents

◆ LayoutType

template<typename Extents>
using di::vocab::LayoutRight::Mapping< Extents >::LayoutType = LayoutRight

◆ RankType

template<typename Extents>
using di::vocab::LayoutRight::Mapping< Extents >::RankType = typename ExtentsType::RankType

◆ SizeType

template<typename Extents>
using di::vocab::LayoutRight::Mapping< Extents >::SizeType = typename ExtentsType::SizeType

Constructor & Destructor Documentation

◆ Mapping() [1/4]

template<typename Extents>
di::vocab::LayoutRight::Mapping< Extents >::Mapping ( )
default

◆ Mapping() [2/4]

template<typename Extents>
di::vocab::LayoutRight::Mapping< Extents >::Mapping ( Mapping< Extents > const & )
default

◆ Mapping() [3/4]

template<typename Extents>
di::vocab::LayoutRight::Mapping< Extents >::Mapping ( Mapping< Extents > && )
default

◆ Mapping() [4/4]

template<typename Extents>
di::vocab::LayoutRight::Mapping< Extents >::Mapping ( ExtentsType const & extents)
inlineconstexpr

Member Function Documentation

◆ explicit() [1/3]

template<typename Extents>
template<concepts::Extents OtherExtents>
requires (ExtentsType::rank() <= 1 && concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
di::vocab::LayoutRight::Mapping< Extents >::explicit ( !concepts::ConvertibleTo< OtherExtents, ExtentsType > )
inlineconstexpr

◆ explicit() [2/3]

template<typename Extents>
template<concepts::Extents OtherExtents>
requires (concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
di::vocab::LayoutRight::Mapping< Extents >::explicit ( !concepts::ConvertibleTo< OtherExtents, ExtentsType > ) const &
inlineconstexpr

◆ explicit() [3/3]

template<typename Extents>
template<concepts::Extents OtherExtents>
requires (concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
di::vocab::LayoutRight::Mapping< Extents >::explicit ( ExtentsType::rank() ,
0  )
inlineconstexpr

◆ extents()

template<typename Extents>
auto di::vocab::LayoutRight::Mapping< Extents >::extents ( ) const->ExtentsTypeconst &
inlineconstexpr

◆ is_always_exhaustive()

template<typename Extents>
constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_always_exhaustive ( ) ->bool
inlinestaticconstexpr

◆ is_always_strided()

template<typename Extents>
constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_always_strided ( ) ->bool
inlinestaticconstexpr

◆ is_always_unique()

template<typename Extents>
constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_always_unique ( ) ->bool
inlinestaticconstexpr

◆ is_exhaustive()

template<typename Extents>
constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_exhaustive ( ) ->bool
inlinestaticconstexpr

◆ is_strided()

template<typename Extents>
constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_strided ( ) ->bool
inlinestaticconstexpr

◆ is_unique()

template<typename Extents>
constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_unique ( ) ->bool
inlinestaticconstexpr

◆ operator()()

template<typename Extents>
template<typename... Indices>
requires (sizeof...(Indices) == ExtentsType::rank() && (concepts::ConvertibleTo<Indices, SizeType> && ...))
auto di::vocab::LayoutRight::Mapping< Extents >::operator() ( Indices... indices) const->SizeType
inlineconstexpr

◆ operator=()

template<typename Extents>
auto di::vocab::LayoutRight::Mapping< Extents >::operator= ( Mapping< Extents > const & ) ->Mapping &=default
default

◆ required_span_size()

template<typename Extents>
auto di::vocab::LayoutRight::Mapping< Extents >::required_span_size ( ) const->SizeType
inlineconstexpr

◆ stride()

template<typename Extents>
auto di::vocab::LayoutRight::Mapping< Extents >::stride ( RankType i) const->SizeType
inlineconstexpr

◆ operator==

template<typename Extents>
template<typename OtherExtents>
requires (Extents::rank() == OtherExtents::rank())
friend auto operator== ( Mapping< Extents > const & a,
Mapping< OtherExtents > const & b )->bool
friend

The documentation for this class was generated from the following files: