AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::slam::RelationSet< RelationType > Class Template Referenceabstract

Models a Set whose elements are derived from a relation, one element per fromSet and toSet pair in the relation. More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.5.0/src/axom/slam/RelationSet.hpp>

Inheritance diagram for axom::slam::RelationSet< RelationType >:

Public Types

using PositionType = typename RelationType::SetPosition
 
using ElementType = typename RelationType::SetElement
 
using RelationSubset = typename RelationType::RelationSubset
 
using BivariateSetType = BivariateSet< PositionType, ElementType >
 
using SetType = typename BivariateSetType::SetType
 
using OrderedSetType = typename BivariateSetType::OrderedSetType
 
using SizePolicyType = policies::RuntimeSize< RelationType::SetPosition >
 
using OffsetPolicyType = policies::ZeroOffset< RelationType::SetPosition >
 
using StridePolicyType = policies::StrideOne< RelationType::SetPosition >
 
using IndirectionPolicyType = policies::NoIndirection< RelationType::SetPosition, RelationType::SetElement >
 
using SubsettingPolicyType = policies::NoSubset
 
using ModularIntType = ModularInt< policies::RuntimeSize< RelationType::SetPosition > >
 
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 IndirectionResult = RelationType::SetElement
 
using ConstIndirectionResult = const RelationType::SetElement
 
using IndirectionBufferType = struct { }
 
using ParentSetType = const Set<>
 

Public Member Functions

 RelationSet ()
 
 RelationSet (RelationType *relation)
 Constructor taking in the relation this BivariateSet is based on. More...
 
PositionType findElementIndex (PositionType pos1, PositionType pos2) const override
 Searches for the SparseIndex of the element given its DenseIndex. If the element (i,j) is the kth non-zero in the row, then findElementIndex(i,j) returns k. If element(i,j) does not exist (such as the case of a zero in a sparse matrix), then INVALID_POS is returned. More...
 
PositionType findElementFlatIndex (PositionType s1, PositionType s2) const override
 Search for the FlatIndex of the element given its DenseIndex. More...
 
PositionType findElementFlatIndex (PositionType pos1) const override
 Given the from-set index pos1, return the FlatIndex of the first existing to-set element in the relation pair, or INVALID_POS if this row contains no elements. More...
 
const OrderedSetType getElements (PositionType s1) const override
 A set of elements with the given first set index. More...
 
ElementType at (PositionType pos) const override
 
RelationType * getRelation () const
 Returns the relation pointer. More...
 
PositionType totalSize () const
 Return the size of the relation. More...
 
PositionType size (PositionType pos) const override
 Return the size of a row, which is the number of to-set elements associated with the given from-set index. More...
 
bool isValid (bool verboseOutput=false) const override
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
iterator_pair range ()
 
const_iterator_pair range () const
 
policies::NoIndirection< RelationType::SetPosition, RelationType::SetElement > ::ConstIndirectionResult operator[] (PositionType pos) const
 Given a position in the Set, return a position in the larger index space. More...
 
policies::NoIndirection< RelationType::SetPosition, RelationType::SetElement > ::IndirectionResult operator[] (PositionType pos)
 
ElementType at (PositionType pos) const
 Random access to the entities of the set. More...
 
RelationType::SetPosition & size ()
 
bool empty () const
 Checks if there are any elements in the set – equivalent to: set.size() == 0. More...
 
bool isValid (RelationType::SetPosition, RelationType::SetPosition, RelationType::SetPosition, bool) const
 
template<typename OrderedSetIt >
bool isValid (OrderedSetIt, OrderedSetIt, bool) const
 
bool isSubset () const
 Determines if the Set is a Subset of another set. More...
 
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...
 
RelationType::SetPosition operator() () const
 
RelationType::SetPosition & operator() ()
 
RelationType::SetPosition operator() () const
 
const RelationType::SetPosition operator() () const
 
IndirectionResult operator() (RelationType::SetPosition pos) const
 
RelationType::SetPosition offset () const
 
const RelationType::SetPosition stride () const
 
void setStride (RelationType::SetPosition AXOM_DEBUG_PARAM(val))
 
IndirectionResult indirection (RelationType::SetPosition pos) const
 
IndirectionBufferTypedata ()
 
bool hasIndirection () const
 
const ParentSetTypeparentSet () const
 
virtual PositionType findElementIndex (PositionType pos1, PositionType pos2) const=0
 Searches for the SparseIndex of the element given its DenseIndex. If the element (i,j) is the kth non-zero in the row, then findElementIndex(i,j) returns k. If element (i,j) does not exist (such as the case of a zero in a sparse matrix), then INVALID_POS is returned. More...
 
virtual PositionType findElementFlatIndex (PositionType pos1, PositionType pos2) const=0
 Search for the FlatIndex of the element given its DenseIndex. More...
 
virtual PositionType findElementFlatIndex (PositionType pos1) const=0
 Searches for the first existing element given the row index (first set position). More...
 
virtual PositionType size (PositionType pos1) const=0
 Number of elements of the BivariateSet whose first index is pos. More...
 
PositionType firstSetSize () const
 Size of the first set. More...
 
PositionType secondSetSize () const
 Size of the second set. More...
 
virtual const SetTypegetFirstSet () const
 Returns pointer to the first set. More...
 
virtual const SetTypegetSecondSet () const
 Returns pointer to the second set. More...
 
virtual ElementType at (PositionType pos) const=0
 Returns the element at the given FlatIndex pos. More...
 
virtual const OrderedSetType getElements (PositionType s1) const=0
 A set of elements with the given first set index. More...
 
virtual void verifyPosition (PositionType s1, PositionType s2) const=0
 

Static Public Attributes

static const NullSet s_nullSet
 
static const PositionType INVALID_POS
 
static const NullSet< RelationType::SetPosition, RelationType::SetElement > s_nullSet
 
OrderedSet_Size_Policies

A few default policies for the size of an OrderedSet

static const RelationType::SetPosition DEFAULT_VALUE
 
OrderedSet_Offset_Policies

A few default policies for the offset of an OrderedSet

static const RelationType::SetPosition DEFAULT_VALUE
 
OrderedSet_Stride_Policies

A few default policies for the stride of an OrderedSet

static const RelationType::SetPosition DEFAULT_VALUE
 

Protected Attributes

RelationType::SetPosition m_sz
 
const SetTypem_set1
 
const SetTypem_set2
 

Detailed Description

template<typename RelationType>
class axom::slam::RelationSet< RelationType >

Models a Set whose elements are derived from a relation, one element per fromSet and toSet pair in the relation.

RelationSet models a subset of the Cartesian product of two sets. Users should refer to the BivariateSet documentation for descriptions of the different indexing names (SparseIndex, DenseIndex, FlatIndex).

Template Parameters
RelationThe Relation type that this set uses.
See also
BivariateSet

Member Typedef Documentation

◆ PositionType

template<typename RelationType >
using axom::slam::RelationSet< RelationType >::PositionType = typename RelationType::SetPosition

◆ ElementType

template<typename RelationType >
using axom::slam::RelationSet< RelationType >::ElementType = typename RelationType::SetElement

◆ RelationSubset

template<typename RelationType >
using axom::slam::RelationSet< RelationType >::RelationSubset = typename RelationType::RelationSubset

◆ BivariateSetType

template<typename RelationType >
using axom::slam::RelationSet< RelationType >::BivariateSetType = BivariateSet<PositionType, ElementType>

◆ SetType

template<typename RelationType >
using axom::slam::RelationSet< RelationType >::SetType = typename BivariateSetType::SetType

◆ OrderedSetType

template<typename RelationType >
using axom::slam::RelationSet< RelationType >::OrderedSetType = typename BivariateSetType::OrderedSetType

◆ SizePolicyType

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::SizePolicyType = policies::RuntimeSize<RelationType::SetPosition >
inherited

◆ OffsetPolicyType

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::OffsetPolicyType = policies::ZeroOffset<RelationType::SetPosition >
inherited

◆ StridePolicyType

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::StridePolicyType = policies::StrideOne<RelationType::SetPosition >
inherited

◆ IndirectionPolicyType

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::IndirectionPolicyType = policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement >
inherited

◆ SubsettingPolicyType

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::SubsettingPolicyType = policies::NoSubset
inherited

◆ ModularIntType

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::ModularIntType = ModularInt<policies::RuntimeSize<RelationType::SetPosition > >
inherited

◆ PositionSet

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::PositionSet = OrderedSet<PositionType>
inherited

◆ const_iterator

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::const_iterator = OrderedSetIterator<ElementType, true>
inherited

◆ const_iterator_pair

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::const_iterator_pair = std::pair<const_iterator, const_iterator>
inherited

◆ iterator

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::iterator = OrderedSetIterator<ElementType, false>
inherited

◆ iterator_pair

using axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::iterator_pair = std::pair<iterator, iterator>
inherited

◆ IndirectionResult

using axom::slam::policies::NoIndirection< RelationType::SetPosition , RelationType::SetElement >::IndirectionResult = RelationType::SetElement
inherited

◆ ConstIndirectionResult

using axom::slam::policies::NoIndirection< RelationType::SetPosition , RelationType::SetElement >::ConstIndirectionResult = const RelationType::SetElement
inherited

◆ IndirectionBufferType

using axom::slam::policies::NoIndirection< RelationType::SetPosition , RelationType::SetElement >::IndirectionBufferType = struct { }
inherited

◆ ParentSetType

Constructor & Destructor Documentation

◆ RelationSet() [1/2]

template<typename RelationType >
axom::slam::RelationSet< RelationType >::RelationSet ( )
inline

◆ RelationSet() [2/2]

template<typename RelationType >
axom::slam::RelationSet< RelationType >::RelationSet ( RelationType *  relation)
inline

Constructor taking in the relation this BivariateSet is based on.

Precondition
relation pointer must not be a null pointer

References SLIC_ASSERT.

Member Function Documentation

◆ findElementIndex() [1/2]

template<typename RelationType >
PositionType axom::slam::RelationSet< RelationType >::findElementIndex ( PositionType  pos1,
PositionType  pos2 
) const
inlineoverride

Searches for the SparseIndex of the element given its DenseIndex. If the element (i,j) is the kth non-zero in the row, then findElementIndex(i,j) returns k. If element(i,j) does not exist (such as the case of a zero in a sparse matrix), then INVALID_POS is returned.

Warning
This function can be slow, since a linear search is performed on the row each time.
Parameters
pos1The first set position.
pos2The second set position.
Returns
The DenseIndex of the given element, or INVALID_POS if such element is missing from the set.
Precondition
0 <= pos1 <= set1.size() && 0 <= pos2 <= size2.size()

References axom::slam::BivariateSet< RelationType::SetPosition, RelationType::SetElement >::INVALID_POS.

◆ findElementFlatIndex() [1/4]

template<typename RelationType >
PositionType axom::slam::RelationSet< RelationType >::findElementFlatIndex ( PositionType  s1,
PositionType  s2 
) const
inlineoverride

Search for the FlatIndex of the element given its DenseIndex.

Warning
This function can be slow, since a linear search is performed on the row each time.
Parameters
pos1The first set position.
pos2The second set position.
Returns
The element's FlatIndex
Precondition
0 <= pos1 <= set1.size() && 0 <= pos2 <= size2.size()

References axom::slam::BivariateSet< RelationType::SetPosition, RelationType::SetElement >::INVALID_POS.

◆ findElementFlatIndex() [2/4]

template<typename RelationType >
PositionType axom::slam::RelationSet< RelationType >::findElementFlatIndex ( PositionType  pos1) const
inlineoverride

Given the from-set index pos1, return the FlatIndex of the first existing to-set element in the relation pair, or INVALID_POS if this row contains no elements.

Parameters
pos1Index into the from-set.
pos2Index into the to-set.
Returns
The FlatIndex of the first existing to-set element.

References axom::slam::BivariateSet< RelationType::SetPosition, RelationType::SetElement >::INVALID_POS.

◆ getElements() [1/2]

template<typename RelationType >
const OrderedSetType axom::slam::RelationSet< RelationType >::getElements ( PositionType  s1) const
inlineoverride

A set of elements with the given first set index.

Parameters
s1The first set index.
Returns
An OrderedSet containing the elements in the row.
Precondition
0 <= pos1 <= set1.size()

◆ at() [1/3]

template<typename RelationType >
ElementType axom::slam::RelationSet< RelationType >::at ( PositionType  pos) const
inlineoverride

◆ getRelation()

template<typename RelationType >
RelationType* axom::slam::RelationSet< RelationType >::getRelation ( ) const
inline

Returns the relation pointer.

◆ totalSize()

template<typename RelationType >
PositionType axom::slam::RelationSet< RelationType >::totalSize ( ) const
inline

Return the size of the relation.

◆ size() [1/3]

template<typename RelationType >
PositionType axom::slam::RelationSet< RelationType >::size ( PositionType  pos) const
inlineoverride

Return the size of a row, which is the number of to-set elements associated with the given from-set index.

Parameters
posThe from-set position.

Referenced by axom::slam::RelationSet< RelationType >::isValid().

◆ isValid() [1/3]

◆ begin() [1/2]

iterator axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::begin ( )
inlineinherited

◆ begin() [2/2]

const_iterator axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::begin ( ) const
inlineinherited

◆ end() [1/2]

iterator axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::end ( )
inlineinherited

◆ end() [2/2]

const_iterator axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::end ( ) const
inlineinherited

◆ range() [1/2]

iterator_pair axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::range ( )
inlineinherited

◆ range() [2/2]

const_iterator_pair axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::range ( ) const
inlineinherited

◆ operator[]() [1/2]

policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > ::ConstIndirectionResult axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::operator[] ( PositionType  pos) const
inlineinherited

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

◆ operator[]() [2/2]

policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > ::IndirectionResult axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::operator[] ( PositionType  pos)
inlineinherited

◆ at() [2/3]

ElementType axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::at ( PositionType  pos) const
inlinevirtualinherited

Random access to the entities of the set.

Parameters
Theindex of the desired element
Returns
The value of the element at the given position
Precondition
The position must be less than the number of elements in the set ( size() )
Note
Concrete realizations of Set also support subscript operator – operator[].
How are we planning to handle indexes that are out or range (accidentally)? Are we planning to handle indexes that are intentionally out of range (e.g. to indicate a problem, or a missing element etc..)?

Implements axom::slam::Set< RelationType::SetPosition, RelationType::SetElement >.

◆ size() [2/3]

RelationType::SetPosition & axom::slam::policies::RuntimeSize< RelationType::SetPosition >::size ( )
inlineinherited

◆ empty()

bool axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::empty ( ) const
inlinevirtualinherited

Checks if there are any elements in the set – equivalent to: set.size() == 0.

Implements axom::slam::Set< RelationType::SetPosition, RelationType::SetElement >.

◆ isValid() [2/3]

bool axom::slam::policies::NoIndirection< RelationType::SetPosition , RelationType::SetElement >::isValid ( RelationType::SetPosition  ,
RelationType::SetPosition  ,
RelationType::SetPosition  ,
bool   
) const
inlineinherited

◆ isValid() [3/3]

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

◆ isSubset()

bool axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::isSubset ( ) const
inlinevirtualinherited

Determines if the Set is a Subset of another set.

Returns
true if the set is a subset of another set, otherwise false.

Implements axom::slam::Set< RelationType::SetPosition, RelationType::SetElement >.

◆ isValidIndex()

bool axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::isValidIndex ( PositionType  pos) const
inlineinherited

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

◆ positions()

PositionSet axom::slam::OrderedSet< RelationType::SetPosition , RelationType::SetElement , policies::RuntimeSize<RelationType::SetPosition > , policies::ZeroOffset<RelationType::SetPosition > , policies::StrideOne<RelationType::SetPosition > , policies::NoIndirection<RelationType::SetPosition , RelationType::SetElement > , policies::NoSubset >::positions ( ) const
inlineinherited

returns a PositionSet over the set's positions

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

◆ operator()() [1/5]

RelationType::SetPosition axom::slam::policies::RuntimeSize< RelationType::SetPosition >::operator() ( ) const
inlineinherited

◆ operator()() [2/5]

RelationType::SetPosition & axom::slam::policies::RuntimeSize< RelationType::SetPosition >::operator() ( )
inlineinherited

◆ operator()() [3/5]

RelationType::SetPosition axom::slam::policies::ZeroOffset< RelationType::SetPosition >::operator() ( ) const
inlineinherited

◆ operator()() [4/5]

const RelationType::SetPosition axom::slam::policies::StrideOne< RelationType::SetPosition >::operator() ( ) const
inlineinherited

◆ operator()() [5/5]

IndirectionResult axom::slam::policies::NoIndirection< RelationType::SetPosition , RelationType::SetElement >::operator() ( RelationType::SetPosition  pos) const
inlineinherited

◆ offset()

RelationType::SetPosition axom::slam::policies::ZeroOffset< RelationType::SetPosition >::offset ( ) const
inlineinherited

◆ stride()

const RelationType::SetPosition axom::slam::policies::StrideOne< RelationType::SetPosition >::stride ( ) const
inlineinherited

◆ setStride()

void axom::slam::policies::StrideOne< RelationType::SetPosition >::setStride ( RelationType::SetPosition  AXOM_DEBUG_PARAMval)
inlineinherited

◆ indirection()

IndirectionResult axom::slam::policies::NoIndirection< RelationType::SetPosition , RelationType::SetElement >::indirection ( RelationType::SetPosition  pos) const
inlineinherited

◆ data()

IndirectionBufferType* axom::slam::policies::NoIndirection< RelationType::SetPosition , RelationType::SetElement >::data ( )
inlineinherited

◆ hasIndirection()

bool axom::slam::policies::NoIndirection< RelationType::SetPosition , RelationType::SetElement >::hasIndirection ( ) const
inlineinherited

◆ parentSet()

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

◆ findElementIndex() [2/2]

virtual PositionType axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::findElementIndex ( PositionType  pos1,
PositionType  pos2 
) const
pure virtualinherited

Searches for the SparseIndex of the element given its DenseIndex. If the element (i,j) is the kth non-zero in the row, then findElementIndex(i,j) returns k. If element (i,j) does not exist (such as the case of a zero in a sparse matrix), then INVALID_POS is returned.

Parameters
pos1The first set position.
pos2The second set position.
Returns
The DenseIndex of the given element, or INVALID_POS if such element is missing from the set.
Precondition
0 <= pos1 <= set1.size() && 0 <= pos2 <= size2.size()

◆ findElementFlatIndex() [3/4]

virtual PositionType axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::findElementFlatIndex ( PositionType  pos1,
PositionType  pos2 
) const
pure virtualinherited

Search for the FlatIndex of the element given its DenseIndex.

Parameters
pos1The first set position.
pos2The second set position.
Returns
The element's FlatIndex
Precondition
0 <= pos1 <= set1.size() && 0 <= pos2 <= size2.size()

◆ findElementFlatIndex() [4/4]

virtual PositionType axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::findElementFlatIndex ( PositionType  pos1) const
pure virtualinherited

Searches for the first existing element given the row index (first set position).

Parameters
pos1The first set position.
Returns
The found element's FlatIndex.
Precondition
0 <= pos1 <= set1.size()

◆ size() [3/3]

virtual PositionType axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::size ( PositionType  pos1) const
pure virtualinherited

Number of elements of the BivariateSet whose first index is pos.

Precondition
0 <= pos1 <= set1.size()

◆ firstSetSize()

PositionType axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::firstSetSize ( ) const
inlineinherited

◆ secondSetSize()

PositionType axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::secondSetSize ( ) const
inlineinherited

◆ getFirstSet()

virtual const SetType* axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::getFirstSet ( ) const
inlinevirtualinherited

Returns pointer to the first set.

References axom::slam::BivariateSet< PosType, ElemType >::m_set1.

◆ getSecondSet()

virtual const SetType* axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::getSecondSet ( ) const
inlinevirtualinherited

◆ at() [3/3]

virtual ElementType axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::at ( PositionType  pos) const
pure virtualinherited

Returns the element at the given FlatIndex pos.

◆ getElements() [2/2]

virtual const OrderedSetType axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::getElements ( PositionType  s1) const
pure virtualinherited

A set of elements with the given first set index.

Parameters
s1The first set index.
Returns
An OrderedSet containing the elements
Precondition
0 <= pos1 <= set1.size()

◆ verifyPosition()

virtual void axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::verifyPosition ( PositionType  s1,
PositionType  s2 
) const
pure virtualinherited

Member Data Documentation

◆ DEFAULT_VALUE [1/3]

const RelationType::SetPosition axom::slam::policies::RuntimeSize< RelationType::SetPosition >::DEFAULT_VALUE
staticinherited

◆ DEFAULT_VALUE [2/3]

const RelationType::SetPosition axom::slam::policies::ZeroOffset< RelationType::SetPosition >::DEFAULT_VALUE
staticinherited

◆ DEFAULT_VALUE [3/3]

const RelationType::SetPosition axom::slam::policies::StrideOne< RelationType::SetPosition >::DEFAULT_VALUE
staticinherited

◆ m_sz

RelationType::SetPosition axom::slam::policies::RuntimeSize< RelationType::SetPosition >::m_sz
protectedinherited

◆ s_nullSet [1/2]

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

◆ INVALID_POS

const PositionType axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::INVALID_POS
staticinherited

◆ s_nullSet [2/2]

const NullSet< RelationType::SetPosition , RelationType::SetElement > axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::s_nullSet
staticinherited

◆ m_set1

const SetType* axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::m_set1
protectedinherited

◆ m_set2

const SetType* axom::slam::BivariateSet< RelationType::SetPosition , RelationType::SetElement >::m_set2
protectedinherited

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