Models a set whose elements can be defined as strided offsets of the position, possibly with a level of indirection.
More...
|
| 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::DefaultPositionType & | size () |
|
slam::DefaultPositionType | operator() () const |
|
slam::DefaultPositionType & | operator() () |
|
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 IndirectionBufferType * | ptr () |
|
bool | hasIndirection () const |
|
bool | isValid (slam::DefaultPositionType, slam::DefaultPositionType, slam::DefaultPositionType, bool) const |
|
const ParentSetType * | parentSet () const |
|
template<typename OrderedSetIt > |
bool | isValid (OrderedSetIt, OrderedSetIt, bool) const |
|
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 ] )
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 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 |
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 |
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 |
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 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 |
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 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>
References axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::begin(), and axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::end().
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>
References axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::begin(), and axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::end().
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>
Given a position in the Set, return a position in the larger index space.
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 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 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 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 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 |
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 |
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 |
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 |
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 >