Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::MaskedAccessor< T, N, mask, Accessor > Class Template Reference

Get a masked accessor into a contiguous accessor. More...

#include <MaskedAccessor.hpp>

Internal data

storage< Accessor > accessor_
constexpr MaskedAccessor (const Accessor &accessor)
 Constructor from a given accessor.
constexpr MaskedAccessor (Accessor &&accessor)
 Constructor from a given accessor.
constexpr MaskedAccessor (const MaskedAccessor< T, N, mask, Accessor > &other)
 Shallow copy constructor.
constexpr MaskedAccessor (MaskedAccessor< T, N, mask, Accessor > &&other)
 Shallow move constructor.
constexpr decltype(auto) operator[] (size_t idx)
 Element access operator.
constexpr decltype(auto) operator[] (size_t idx) const

Detailed Description

template<typename T, size_t N, Kokkos::Array< bool, N > mask, ValidAccessor< T > Accessor>
class mundy::MaskedAccessor< T, N, mask, Accessor >

Concept: Sometimes we'd like to access a subset of a contiguous accessor as through it were a contiguous but without copying the underlying data. This class provides a way to do that. For example, we might want to mask-off every other value.

Template Parameters
TThe type of the elements
NThe size of the accessor
AccessorThe type of the contiguous accessor

Constructor & Destructor Documentation

◆ MaskedAccessor() [1/4]

template<typename T, size_t N, Kokkos::Array< bool, N > mask, ValidAccessor< T > Accessor>
mundy::MaskedAccessor< T, N, mask, Accessor >::MaskedAccessor ( const Accessor & accessor)
inlineexplicitconstexpr

◆ MaskedAccessor() [2/4]

template<typename T, size_t N, Kokkos::Array< bool, N > mask, ValidAccessor< T > Accessor>
mundy::MaskedAccessor< T, N, mask, Accessor >::MaskedAccessor ( Accessor && accessor)
inlineexplicitconstexpr

◆ MaskedAccessor() [3/4]

template<typename T, size_t N, Kokkos::Array< bool, N > mask, ValidAccessor< T > Accessor>
mundy::MaskedAccessor< T, N, mask, Accessor >::MaskedAccessor ( const MaskedAccessor< T, N, mask, Accessor > & other)
inlineconstexpr

◆ MaskedAccessor() [4/4]

template<typename T, size_t N, Kokkos::Array< bool, N > mask, ValidAccessor< T > Accessor>
mundy::MaskedAccessor< T, N, mask, Accessor >::MaskedAccessor ( MaskedAccessor< T, N, mask, Accessor > && other)
inlineconstexpr

Member Function Documentation

◆ operator[]() [1/2]

template<typename T, size_t N, Kokkos::Array< bool, N > mask, ValidAccessor< T > Accessor>
decltype(auto) mundy::MaskedAccessor< T, N, mask, Accessor >::operator[] ( size_t idx)
inlineconstexpr
Parameters
[in]idxThe index of the element.

◆ operator[]() [2/2]

template<typename T, size_t N, Kokkos::Array< bool, N > mask, ValidAccessor< T > Accessor>
decltype(auto) mundy::MaskedAccessor< T, N, mask, Accessor >::operator[] ( size_t idx) const
inlineconstexpr

Member Data Documentation

◆ accessor_

template<typename T, size_t N, Kokkos::Array< bool, N > mask, ValidAccessor< T > Accessor>
storage<Accessor> mundy::MaskedAccessor< T, N, mask, Accessor >::accessor_