Dune Core Modules (unstable)

Dune::Std::layout_right::mapping< Extents > Class Template Reference

A layout mapping where the rightmost extent has stride 1. More...

#include <dune/common/std/layout_right.hh>

Public Member Functions

constexpr mapping () noexcept=default
 The default construction is possible for default constructible extents.
 
constexpr mapping (const mapping &) noexcept=default
 Copy constructor for the mapping.
 
constexpr mapping (const extents_type &e) noexcept
 Construct the mapping with from given extents.
 
template<class OtherExtents , std::enable_if_t< std::is_constructible_v< extents_type, OtherExtents >, int > = 0>
constexpr mapping (const mapping< OtherExtents > &m) noexcept
 Construct the mapping from another mapping with a different extents type.
 
template<class OtherExtents , class E = extents_type, std::enable_if_t<(E::rank()<=1), int > = 0, std::enable_if_t< std::is_constructible_v< extents_type, OtherExtents >, int > = 0>
constexpr mapping (const layout_left::mapping< OtherExtents > &m) noexcept
 Construct the mapping from a layout_left.
 
template<class OtherExtents , std::enable_if_t< std::is_constructible_v< extents_type, OtherExtents >, int > = 0>
constexpr mapping (const layout_stride::mapping< OtherExtents > &m)
 Construct the mapping from a layout_stride.
 
constexpr mappingoperator= (const mapping &) noexcept=default
 Copy-assignment for the mapping.
 
template<class... Indices, std::enable_if_t<(sizeof...(Indices)==extents_type::rank()), int > = 0, std::enable_if_t<(std::is_convertible_v< Indices, index_type > &&...), int > = 0, std::enable_if_t<(std::is_nothrow_constructible_v< Indices, index_type > &&...), int > = 0>
constexpr index_type operator() (Indices... ii) const noexcept
 Compute the offset i3 + E(3)*(i2 + E(2)*(i1 + E(1)*i0))
 
constexpr index_type operator() () const noexcept
 The default offset for rank-0 tensors is 0.
 
template<class E = extents_type, std::enable_if_t<(E::rank() > 0), int > = 0>
constexpr index_type stride (rank_type i) const noexcept
 The stride is the product of the extents E(n)*E(n-1)*...*E(i+1)
 

Detailed Description

template<class Extents>
class Dune::Std::layout_right::mapping< Extents >

A layout mapping where the rightmost extent has stride 1.


The documentation for this class was generated from the following files:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Jul 15, 22:36, 2024)