Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
fub::layout_right::mapping< Extents > Class Template Reference

#include <mdspan.hpp>

Public Member Functions

constexpr mapping ()=default
 
constexpr mapping (const mapping &)=default
 
constexpr mapping (mapping &&)=default
 
mappingoperator= (const mapping &) noexcept=default
 
mappingoperator= (mapping &&) noexcept=default
 
constexpr mapping (const Extents &extents)
 
constexpr const Extentsextents () const noexcept
 
constexpr std::ptrdiff_t required_span_size () const noexcept
 
template<typename... IndexType, typename = std::enable_if_t<conjunction< std::is_convertible<IndexType, std::ptrdiff_t>...>::value>, typename = std::enable_if_t<(sizeof...(IndexType) == Extents::rank())>>
constexpr std::ptrdiff_t operator() (IndexType... indices) const noexcept
 
constexpr std::ptrdiff_t stride (std::size_t r) const noexcept
 
constexpr bool is_unique () const noexcept
 
constexpr bool is_contiguous () const noexcept
 
constexpr bool is_strided () const noexcept
 
template<class OtherExtents >
constexpr bool operator== (const mapping< OtherExtents > &other) const noexcept
 
template<class OtherExtents >
constexpr bool operator!= (const mapping< OtherExtents > &other) const noexcept
 

Static Public Member Functions

static constexpr bool is_always_unique () noexcept
 
static constexpr bool is_always_contiguous () noexcept
 
static constexpr bool is_always_strided () noexcept
 

Private Member Functions

template<std::size_t... Is, typename... IndexType>
constexpr std::ptrdiff_t DoMapping_ (index_sequence< Is... >, IndexType... indices) const noexcept
 

Constructor & Destructor Documentation

◆ mapping() [1/4]

template<typename Extents >
constexpr fub::layout_right::mapping< Extents >::mapping ( )
constexprdefault

◆ mapping() [2/4]

template<typename Extents >
constexpr fub::layout_right::mapping< Extents >::mapping ( const mapping< Extents > &  )
constexprdefault

◆ mapping() [3/4]

template<typename Extents >
constexpr fub::layout_right::mapping< Extents >::mapping ( mapping< Extents > &&  )
constexprdefault

◆ mapping() [4/4]

template<typename Extents >
constexpr fub::layout_right::mapping< Extents >::mapping ( const Extents extents)
inlineconstexpr

Member Function Documentation

◆ DoMapping_()

template<typename Extents >
template<std::size_t... Is, typename... IndexType>
constexpr std::ptrdiff_t fub::layout_right::mapping< Extents >::DoMapping_ ( index_sequence< Is... >  ,
IndexType...  indices 
) const
inlineconstexprprivatenoexcept

◆ extents()

template<typename Extents >
constexpr const Extents& fub::layout_right::mapping< Extents >::extents ( ) const
inlineconstexprnoexcept

◆ is_always_contiguous()

template<typename Extents >
static constexpr bool fub::layout_right::mapping< Extents >::is_always_contiguous ( )
inlinestaticconstexprnoexcept

◆ is_always_strided()

template<typename Extents >
static constexpr bool fub::layout_right::mapping< Extents >::is_always_strided ( )
inlinestaticconstexprnoexcept

◆ is_always_unique()

template<typename Extents >
static constexpr bool fub::layout_right::mapping< Extents >::is_always_unique ( )
inlinestaticconstexprnoexcept

◆ is_contiguous()

template<typename Extents >
constexpr bool fub::layout_right::mapping< Extents >::is_contiguous ( ) const
inlineconstexprnoexcept

◆ is_strided()

template<typename Extents >
constexpr bool fub::layout_right::mapping< Extents >::is_strided ( ) const
inlineconstexprnoexcept

◆ is_unique()

template<typename Extents >
constexpr bool fub::layout_right::mapping< Extents >::is_unique ( ) const
inlineconstexprnoexcept

◆ operator!=()

template<typename Extents >
template<class OtherExtents >
constexpr bool fub::layout_right::mapping< Extents >::operator!= ( const mapping< OtherExtents > &  other) const
inlineconstexprnoexcept

◆ operator()()

template<typename Extents >
template<typename... IndexType, typename = std::enable_if_t<conjunction< std::is_convertible<IndexType, std::ptrdiff_t>...>::value>, typename = std::enable_if_t<(sizeof...(IndexType) == Extents::rank())>>
constexpr std::ptrdiff_t fub::layout_right::mapping< Extents >::operator() ( IndexType...  indices) const
inlineconstexprnoexcept

◆ operator=() [1/2]

template<typename Extents >
mapping& fub::layout_right::mapping< Extents >::operator= ( const mapping< Extents > &  )
defaultnoexcept

◆ operator=() [2/2]

template<typename Extents >
mapping& fub::layout_right::mapping< Extents >::operator= ( mapping< Extents > &&  )
defaultnoexcept

◆ operator==()

template<typename Extents >
template<class OtherExtents >
constexpr bool fub::layout_right::mapping< Extents >::operator== ( const mapping< OtherExtents > &  other) const
inlineconstexprnoexcept

◆ required_span_size()

template<typename Extents >
constexpr std::ptrdiff_t fub::layout_right::mapping< Extents >::required_span_size ( ) const
inlineconstexprnoexcept

◆ stride()

template<typename Extents >
constexpr std::ptrdiff_t fub::layout_right::mapping< Extents >::stride ( std::size_t  r) const
inlineconstexprnoexcept

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