AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy > Class Template Reference

Models a set whose elements can be defined as strided offsets of the position, possibly with a level of indirection. More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/develop/src/axom/slam/OrderedSet.hpp>

Inheritance diagram for axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >:

Classes

class  OrderedSetIterator
 An stl-compliant random iterator type for an ordered set. More...
 
class  SetBuilder
 Helper class for constructing an ordered set. More...
 

Public Types

using PositionType = PosType
 
using ElementType = ElemType
 
using SizePolicyType = SizePolicy
 
using OffsetPolicyType = OffsetPolicy
 
using StridePolicyType = StridePolicy
 
using IndirectionPolicyType = IndirectionPolicy
 
using SubsettingPolicyType = SubsettingPolicy
 
using ModularIntType = ModularInt< SizePolicy >
 
using PositionSet = OrderedSet< PositionType >
 
using const_iterator = OrderedSetIterator< ElementType, true >
 
using const_iterator_pair = std::pair< const_iterator, const_iterator >
 
using iterator = OrderedSetIterator< ElementType, false >
 
using iterator_pair = std::pair< iterator, iterator >
 
using ConcreteSet = ConvertibleOrderedSet< IndirectionPolicy, policies::ConcreteInterface >
 
using VirtualSet = ConvertibleOrderedSet< IndirectionPolicy, policies::VirtualInterface >
 
using IndexType = IntType
 
using ShapeType = IntType
 
using IndirectionResult = slam::DefaultElementType
 
using ConstIndirectionResult = const slam::DefaultElementType
 
using IndirectionBufferType = struct { }
 
using IndirectionPtrType = IndirectionBufferType *
 
using ParentSetType = const Set<>
 

Public Member Functions

 OrderedSet (PositionType size=SizePolicyType::DEFAULT_VALUE, PositionType offset=OffsetPolicyType::DEFAULT_VALUE, PositionType stride=StridePolicyType::DEFAULT_VALUE)
 
AXOM_HOST_DEVICE OrderedSet (const SetBuilder &builder)
 
template<typename OtherIndirectionPolicy , typename OtherInterfaceType >
 operator OrderedSet< PosType, ElemType, SizePolicyType, OffsetPolicyType, StridePolicyType, OtherIndirectionPolicy, SubsettingPolicyType, OtherInterfaceType > () const
 Converts this OrderedSet to an OrderedSet of another indirection policy and/or interface policy. More...
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
iterator_pair range ()
 
const_iterator_pair range () const
 
AXOM_HOST_DEVICE IndirectionPolicy::ConstIndirectionResult operator[] (PositionType pos) const
 Given a position in the Set, return a position in the larger index space. More...
 
AXOM_HOST_DEVICE IndirectionPolicy::IndirectionResult operator[] (PositionType pos)
 
ElementType at (PositionType pos) const
 
AXOM_HOST_DEVICE PositionType size () const
 
AXOM_HOST_DEVICE bool empty () const
 
bool isValid (bool verboseOutput=false) const
 
bool isSubset () const
 
bool isValidIndex (PositionType pos) const
 checks whether the given position (index) is valid. More...
 
PositionSet positions () const
 returns a PositionSet over the set's positions More...
 
AXOM_HOST_DEVICE slam::DefaultPositionTypesize ()
 
slam::DefaultPositionType operator() () const
 
slam::DefaultPositionTypeoperator() ()
 
AXOM_HOST_DEVICE IntType offset () const
 
IntType operator() () const
 
AXOM_HOST_DEVICE IntType stride () const
 
AXOM_HOST_DEVICE IntType shape () const
 
IntType operator() () const
 
AXOM_HOST_DEVICE void setStride (IntType AXOM_DEBUG_PARAM(val))
 
AXOM_HOST_DEVICE IndirectionResult indirection (slam::DefaultPositionType pos) const
 
AXOM_HOST_DEVICE IndirectionResult operator() (slam::DefaultPositionType pos) const
 
AXOM_HOST_DEVICE IndirectionBufferTypeptr ()
 
bool hasIndirection () const
 
bool isValid (slam::DefaultPositionType, slam::DefaultPositionType, slam::DefaultPositionType, bool) const
 
const ParentSetTypeparentSet () const
 
template<typename OrderedSetIt >
bool isValid (OrderedSetIt, OrderedSetIt, bool) const
 

Static Public Member Functions

static constexpr IntType DefaultSize ()
 

Static Public Attributes

static constexpr IntType DEFAULT_VALUE = INT_VAL
 
static const IntType DEFAULT_VALUE = INT_VAL
 
static const bool IS_COMPILE_TIME = true
 
constexpr static int NumDims = 1
 
static constexpr bool DeviceAccessible
 
static AXOM_SLAM_EXPORT const NullSet s_nullSet
 
OrderedSet_Size_Policies

A few default policies for the size of an OrderedSet

static const slam::DefaultPositionType DEFAULT_VALUE
 

Protected Attributes

slam::DefaultPositionType m_sz
 

Friends

template<typename OtherPosType , typename OtherElemType , typename OtherSizePolicy , typename OtherOffsetPolicy , typename OtherStridePolicy , typename OtherIndirectionPolicy , typename OtherSubsettingPolicy , typename OtherInterfacePolicy >
struct OrderedSet
 

Detailed Description

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
class axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >

Models a set whose elements can be defined as strided offsets of the position, possibly with a level of indirection.

In an OrderedSet, the element at position pos can be defined as: static_cast<ElementType>( indirection[ pos * stride + offset ] )

Member Typedef Documentation

◆ PositionType

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::PositionType = PosType

◆ ElementType

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::ElementType = ElemType

◆ SizePolicyType

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::SizePolicyType = SizePolicy

◆ OffsetPolicyType

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::OffsetPolicyType = OffsetPolicy

◆ StridePolicyType

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::StridePolicyType = StridePolicy

◆ IndirectionPolicyType

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::IndirectionPolicyType = IndirectionPolicy

◆ SubsettingPolicyType

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::SubsettingPolicyType = SubsettingPolicy

◆ ModularIntType

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::ModularIntType = ModularInt<SizePolicy>

◆ PositionSet

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::PositionSet = OrderedSet<PositionType>

◆ const_iterator

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::const_iterator = OrderedSetIterator<ElementType, true>

◆ const_iterator_pair

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::const_iterator_pair = std::pair<const_iterator, const_iterator>

◆ iterator

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::iterator = OrderedSetIterator<ElementType, false>

◆ iterator_pair

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::iterator_pair = std::pair<iterator, iterator>

◆ ConcreteSet

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::ConcreteSet = ConvertibleOrderedSet<IndirectionPolicy, policies::ConcreteInterface>

◆ VirtualSet

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
using axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::VirtualSet = ConvertibleOrderedSet<IndirectionPolicy, policies::VirtualInterface>

◆ IndexType

template<typename IntType , IntType INT_VAL>
using axom::slam::policies::CompileTimeStride< IntType, INT_VAL >::IndexType = IntType
inherited

◆ ShapeType

template<typename IntType , IntType INT_VAL>
using axom::slam::policies::CompileTimeStride< IntType, INT_VAL >::ShapeType = IntType
inherited

◆ IndirectionResult

◆ ConstIndirectionResult

◆ IndirectionBufferType

◆ IndirectionPtrType

◆ ParentSetType

Constructor & Destructor Documentation

◆ OrderedSet() [1/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::OrderedSet ( PositionType  size = SizePolicyType::DEFAULT_VALUE,
PositionType  offset = OffsetPolicyType::DEFAULT_VALUE,
PositionType  stride = StridePolicyType::DEFAULT_VALUE 
)
inline

◆ OrderedSet() [2/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
AXOM_HOST_DEVICE axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::OrderedSet ( const SetBuilder builder)
inline

Member Function Documentation

◆ operator OrderedSet< PosType, ElemType, SizePolicyType, OffsetPolicyType, StridePolicyType, OtherIndirectionPolicy, SubsettingPolicyType, OtherInterfaceType >()

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
template<typename OtherIndirectionPolicy , typename OtherInterfaceType >
axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::operator OrderedSet< PosType, ElemType, SizePolicyType, OffsetPolicyType, StridePolicyType, OtherIndirectionPolicy, SubsettingPolicyType, OtherInterfaceType > ( ) const
inline

Converts this OrderedSet to an OrderedSet of another indirection policy and/or interface policy.

◆ begin() [1/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
iterator axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::begin ( )
inline

◆ begin() [2/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
const_iterator axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::begin ( ) const
inline

◆ end() [1/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
iterator axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::end ( )
inline

◆ end() [2/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
const_iterator axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::end ( ) const
inline

◆ range() [1/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
iterator_pair axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::range ( )
inline

◆ range() [2/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
const_iterator_pair axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::range ( ) const
inline

◆ operator[]() [1/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
AXOM_HOST_DEVICE IndirectionPolicy::ConstIndirectionResult axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::operator[] ( PositionType  pos) const
inline

Given a position in the Set, return a position in the larger index space.

◆ operator[]() [2/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
AXOM_HOST_DEVICE IndirectionPolicy::IndirectionResult axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::operator[] ( PositionType  pos)
inline

◆ at()

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
ElementType axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::at ( PositionType  pos) const
inline

◆ size() [1/2]

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
AXOM_HOST_DEVICE PositionType axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::size ( ) const
inline

◆ empty()

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
AXOM_HOST_DEVICE bool axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::empty ( ) const
inline

◆ isValid() [1/3]

template<typename PosType , typename ElemType , typename SizePolicy , typename OffsetPolicy , typename StridePolicy , typename IndirectionPolicy , typename SubsettingPolicy , typename InterfacePolicy >
bool axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::isValid ( bool  verboseOutput = false) const

◆ isSubset()

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
bool axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::isSubset ( ) const
inline

◆ isValidIndex()

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
bool axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::isValidIndex ( PositionType  pos) const
inline

checks whether the given position (index) is valid.

An index pos is valid when \( 0 \le pos < size() \)

Returns
true if the position is valid, false otherwise

References axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::size().

◆ positions()

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
PositionSet axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::positions ( ) const
inline

returns a PositionSet over the set's positions

This can be used to simplify code to loop through the elements of a set.

References axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::size().

◆ size() [2/2]

◆ operator()() [1/5]

◆ operator()() [2/5]

◆ offset()

template<typename IntType , IntType INT_VAL>
AXOM_HOST_DEVICE IntType axom::slam::policies::CompileTimeOffset< IntType, INT_VAL >::offset ( ) const
inlineinherited

◆ operator()() [3/5]

template<typename IntType , IntType INT_VAL>
IntType axom::slam::policies::CompileTimeOffset< IntType, INT_VAL >::operator() ( ) const
inlineinherited

◆ DefaultSize()

template<typename IntType , IntType INT_VAL>
static constexpr IntType axom::slam::policies::CompileTimeStride< IntType, INT_VAL >::DefaultSize ( )
inlinestaticconstexprinherited

◆ stride()

template<typename IntType , IntType INT_VAL>
AXOM_HOST_DEVICE IntType axom::slam::policies::CompileTimeStride< IntType, INT_VAL >::stride ( ) const
inlineinherited

◆ shape()

template<typename IntType , IntType INT_VAL>
AXOM_HOST_DEVICE IntType axom::slam::policies::CompileTimeStride< IntType, INT_VAL >::shape ( ) const
inlineinherited

◆ operator()() [4/5]

template<typename IntType , IntType INT_VAL>
IntType axom::slam::policies::CompileTimeStride< IntType, INT_VAL >::operator() ( ) const
inlineinherited

◆ setStride()

template<typename IntType , IntType INT_VAL>
AXOM_HOST_DEVICE void axom::slam::policies::CompileTimeStride< IntType, INT_VAL >::setStride ( IntType   AXOM_DEBUG_PARAMval)
inlineinherited

References SLIC_ASSERT_MSG.

◆ indirection()

◆ operator()() [5/5]

◆ ptr()

◆ hasIndirection()

bool axom::slam::policies::NoIndirection< slam::DefaultPositionType , slam::DefaultElementType >::hasIndirection ( ) const
inlineinherited

◆ isValid() [2/3]

◆ parentSet()

const ParentSetType* axom::slam::policies::NoSubset::parentSet ( ) const
inlineinherited

◆ isValid() [3/3]

template<typename OrderedSetIt >
bool axom::slam::policies::NoSubset::isValid ( OrderedSetIt  ,
OrderedSetIt  ,
bool   
) const
inlineinherited

Friends And Related Function Documentation

◆ OrderedSet

template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType, typename SizePolicy = policies::RuntimeSize<PosType>, typename OffsetPolicy = policies::ZeroOffset<PosType>, typename StridePolicy = policies::StrideOne<PosType>, typename IndirectionPolicy = policies::NoIndirection<PosType, ElemType>, typename SubsettingPolicy = policies::NoSubset, typename InterfacePolicy = policies::VirtualInterface>
template<typename OtherPosType , typename OtherElemType , typename OtherSizePolicy , typename OtherOffsetPolicy , typename OtherStridePolicy , typename OtherIndirectionPolicy , typename OtherSubsettingPolicy , typename OtherInterfacePolicy >
friend struct OrderedSet
friend

Member Data Documentation

◆ DEFAULT_VALUE [1/3]

◆ m_sz

◆ DEFAULT_VALUE [2/3]

template<typename IntType , IntType INT_VAL>
constexpr IntType axom::slam::policies::CompileTimeOffset< IntType, INT_VAL >::DEFAULT_VALUE = INT_VAL
staticconstexprinherited

◆ DEFAULT_VALUE [3/3]

template<typename IntType , IntType INT_VAL>
const IntType axom::slam::policies::CompileTimeStride< IntType, INT_VAL >::DEFAULT_VALUE = INT_VAL
staticinherited

◆ IS_COMPILE_TIME

template<typename IntType , IntType INT_VAL>
const bool axom::slam::policies::CompileTimeStride< IntType, INT_VAL >::IS_COMPILE_TIME = true
staticinherited

◆ NumDims

template<typename IntType , IntType INT_VAL>
constexpr static int axom::slam::policies::CompileTimeStride< IntType, INT_VAL >::NumDims = 1
staticconstexprinherited

◆ DeviceAccessible

constexpr bool axom::slam::policies::NoIndirection< slam::DefaultPositionType , slam::DefaultElementType >::DeviceAccessible
staticconstexprinherited

◆ s_nullSet

AXOM_SLAM_EXPORT const NullSet axom::slam::policies::NoSubset::s_nullSet
staticinherited

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