|
AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Namespaces | |
| detail | |
| policies | |
| traits | |
| util | |
Classes | |
| class | BitSet |
| A bitset class. More... | |
| class | BivariateMap |
| A Map for BivariateSet. It associates a constant number of values to every element in a BivariateSet (as determined by StridePolicy). More... | |
| class | BivariateSetIterator |
| Implements a forward iterator concept on a BivariateSet type. More... | |
| class | BivariateSet |
| Abstract class that models a set whose elements are indexed by two indices. Each element in a BivariateSet is equivalent to an ordered pair containing a row and column index, similar to indexing in a matrix. More... | |
| class | NullBivariateSet |
| A Null BivariateSet class. Same as the NullSet for Set class. More... | |
| class | DynamicConstantRelation |
| A relation class with constant cardinality that supports adding, removing and modifying set relations. More... | |
| class | DynamicMap |
| A slam map class that supports adding and removing entries. More... | |
| class | DynamicSet |
| A Set class that supports dynamically adding and removing set items. More... | |
| class | DynamicVariableRelation |
| class | FieldRegistry |
| Simple container for fields of type DataType w/ minimal error checking. More... | |
| class | Map |
| A Map class that associates a constant number of values to every element in a set. More... | |
| class | MapBase |
| A base class specifying methods that support operations of a Map, associating value(s) to each element in a Set. MapBase can be used as a base class pointer to a templated Map object. More... | |
| class | ModularInt |
| This class is a wrapper around an int and encapsulates modular arithmetic with a given modulus. More... | |
| class | NullSet |
| An indexed set (a tuple) of entities in a simulation. More... | |
| class | OrderedSet |
| Models a set whose elements can be defined as strided offsets of the position, possibly with a level of indirection. More... | |
| class | ProductSet |
| Models a set whose element is the Cartesian product of two sets. The number of elements in this set is the product of the sizes of the two input sets. More... | |
| class | GenericRangeSet |
| Models a set whose elements belong to a contiguous range \( \in [lowerIndex,upperIndex) \). More... | |
| class | Relation |
| class | RelationSet |
| Models a Set whose elements are derived from a relation, one element per fromSet and toSet pair in the relation. More... | |
| class | Set |
| Abstract base class for a Set of entities in a simulation. More... | |
| class | StaticRelation |
| class | SubMap |
| The SubMap class provides an API to easily traverse a subset of a Map. More... | |
Typedefs | |
| template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType> | |
| using | CArrayIndirectionSet = OrderedSet< PosType, ElemType, policies::RuntimeSize< PosType >, policies::ZeroOffset< PosType >, policies::StrideOne< PosType >, policies::CArrayIndirection< PosType, ElemType > > |
| Alias template for an OrderedSet with indirection over a C array. More... | |
| template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType> | |
| using | VectorIndirectionSet = OrderedSet< PosType, ElemType, policies::RuntimeSize< PosType >, policies::ZeroOffset< PosType >, policies::StrideOne< PosType >, policies::STLVectorIndirection< PosType, ElemType > > |
| Alias template for an OrderedSet with indirection over an stl vector. More... | |
| template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType> | |
| using | ArrayIndirectionSet = OrderedSet< PosType, ElemType, policies::RuntimeSize< PosType >, policies::ZeroOffset< PosType >, policies::StrideOne< PosType >, policies::ArrayIndirection< PosType, ElemType > > |
| Alias template for an OrderedSet with indirection over an axom::Array. More... | |
| template<typename PosType = slam::DefaultPositionType, typename ElemType = slam::DefaultElementType> | |
| using | ArrayViewIndirectionSet = OrderedSet< PosType, ElemType, policies::RuntimeSize< PosType >, policies::ZeroOffset< PosType >, policies::StrideOne< PosType >, policies::ArrayViewIndirection< PosType, ElemType > > |
| Alias template for an OrderedSet with indirection over an axom::ArrayView. More... | |
| template<typename P = slam::DefaultPositionType, typename E = slam::DefaultElementType> | |
| using | PositionSet = GenericRangeSet< P, E, policies::ZeroOffset< P > > |
| template<typename P = slam::DefaultPositionType, typename E = slam::DefaultElementType> | |
| using | RangeSet = GenericRangeSet< P, E > |
| using | DefaultPositionType = axom::IndexType |
| using | DefaultElementType = axom::IndexType |
Functions | |
| BitSet | operator| (const BitSet &lhs, const BitSet &rhs) |
| Union operator for two bit sets. More... | |
| BitSet | operator& (const BitSet &lhs, const BitSet &rhs) |
| Intersection operator for two bit sets. More... | |
| BitSet | operator^ (const BitSet &lhs, const BitSet &rhs) |
| Exclusive or (xor) operator for two bit sets. More... | |
| BitSet | operator- (const BitSet &lhs, const BitSet &rhs) |
| Set difference operator for two bit sets. More... | |
| template<typename SetType , typename T , typename PosType = typename SetType::PositionType> | |
| auto | make_map (const SetType *set, PosType stride, axom::ArrayView< T > data) |
| Make a strided SLAM map backed by ArrayView storage. More... | |
| template<typename SetType , typename T , typename PosType = typename SetType::PositionType> | |
| auto | make_map (const SetType *set, axom::ArrayView< T > data) |
| Make a stride-one SLAM map backed by ArrayView storage. More... | |
| template<typename SetType , typename T , typename PosType = typename SetType::PositionType> | |
| auto | make_map (const SetType *set, PosType stride, T *data) |
| Make a strided SLAM map backed by a raw pointer buffer. More... | |
| template<typename SetType , typename T , typename PosType = typename SetType::PositionType> | |
| auto | make_map (const SetType *set, T *data) |
| Make a stride-one SLAM map backed by a raw pointer buffer. More... | |
| template<int STRIDE, typename SetType , typename T , typename PosType = typename SetType::PositionType> | |
| auto | make_map_ct (const SetType *set, axom::ArrayView< T > data) |
| Make a compile-time strided SLAM map backed by ArrayView storage. More... | |
| template<int STRIDE, typename SetType , typename T , typename PosType = typename SetType::PositionType> | |
| auto | make_map_ct (const SetType *set, T *data) |
| Make a compile-time strided SLAM map backed by a raw pointer buffer. More... | |
| template<typename SizePolicy > | |
| constexpr ModularInt< SizePolicy > | operator+ (const ModularInt< SizePolicy > &zn, const int n) |
| template<typename SizePolicy > | |
| constexpr ModularInt< SizePolicy > | operator+ (const int n, const ModularInt< SizePolicy > &zn) |
| template<typename SizePolicy > | |
| constexpr ModularInt< SizePolicy > | operator- (const ModularInt< SizePolicy > &zn, const int n) |
| template<typename SizePolicy > | |
| constexpr ModularInt< SizePolicy > | operator- (const int n, const ModularInt< SizePolicy > &zn) |
| template<typename SizePolicy > | |
| constexpr ModularInt< SizePolicy > | operator* (const ModularInt< SizePolicy > &zn, const int n) |
| template<typename SizePolicy > | |
| constexpr ModularInt< SizePolicy > | operator* (const int n, const ModularInt< SizePolicy > &zn) |
| template<typename P1 , typename E1 , typename P2 , typename E2 > | |
| bool | operator== (const Set< P1, E1 > &set1, const Set< P2, E2 > &set2) |
| General equality operator for two sets. More... | |
| template<typename P1 , typename E1 , typename P2 , typename E2 > | |
| bool | operator!= (const Set< P1, E1 > &set1, const Set< P2, E2 > &set2) |
| Set inequality operator. More... | |
Relation construction helpers | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_variable_relation (FromSet *fromSet, ToSet *toSet, std::vector< PosType > &begins, std::vector< ElemType > &indices) |
| Make a static, variable-cardinality (CSR) relation from fromSet to toSet, backed by std::vector storage for its begins and indices. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_variable_relation (FromSet &fromSet, ToSet &toSet, std::vector< PosType > &begins, std::vector< ElemType > &indices) |
| Reference overload for make_variable_relation (std::vector-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_variable_relation (FromSet *fromSet, ToSet *toSet, PosType *begins, PosType beginsSize, ElemType *indices, PosType indicesSize) |
| Make a static, variable-cardinality (CSR) relation backed by C array storage. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_variable_relation (FromSet &fromSet, ToSet &toSet, PosType *begins, PosType beginsSize, ElemType *indices, PosType indicesSize) |
| Reference overload for make_variable_relation (C-array-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_variable_relation (FromSet *fromSet, ToSet *toSet, axom::ArrayView< PosType > begins, axom::ArrayView< ElemType > indices) |
| Make a static, variable-cardinality (CSR) relation backed by ArrayView storage. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_variable_relation (FromSet &fromSet, ToSet &toSet, axom::ArrayView< PosType > begins, axom::ArrayView< ElemType > indices) |
| Reference overload for make_variable_relation (ArrayView-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_variable_relation (FromSet *fromSet, ToSet *toSet, axom::Array< PosType > &begins, axom::Array< ElemType > &indices) |
| Make a static, variable-cardinality (CSR) relation backed by axom::Array storage. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_variable_relation (FromSet &fromSet, ToSet &toSet, axom::Array< PosType > &begins, axom::Array< ElemType > &indices) |
| Reference overload for make_variable_relation (axom::Array-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation (FromSet *fromSet, ToSet *toSet, PosType stride, std::vector< ElemType > &indices) |
| Make a static, constant-cardinality relation with a runtime stride, backed by std::vector indices. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation (FromSet &fromSet, ToSet &toSet, PosType stride, std::vector< ElemType > &indices) |
| Reference overload for make_constant_relation (std::vector-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation (FromSet *fromSet, ToSet *toSet, PosType stride, ElemType *indices, PosType indicesSize) |
| Make a static, constant-cardinality relation with a runtime stride, backed by C array indices. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation (FromSet &fromSet, ToSet &toSet, PosType stride, ElemType *indices, PosType indicesSize) |
| Reference overload for make_constant_relation (C-array-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation (FromSet *fromSet, ToSet *toSet, PosType stride, axom::ArrayView< ElemType > indices) |
| Make a static, constant-cardinality relation with a runtime stride, backed by ArrayView indices. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation (FromSet &fromSet, ToSet &toSet, PosType stride, axom::ArrayView< ElemType > indices) |
| Reference overload for make_constant_relation (ArrayView-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation (FromSet *fromSet, ToSet *toSet, PosType stride, axom::Array< ElemType > &indices) |
| Make a static, constant-cardinality relation with a runtime stride, backed by axom::Array indices. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation (FromSet &fromSet, ToSet &toSet, PosType stride, axom::Array< ElemType > &indices) |
| Reference overload for make_constant_relation (axom::Array-backed). More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation_ct (FromSet *fromSet, ToSet *toSet, ElemType *indices, PosType indicesSize) |
| Make a static, constant-cardinality relation with a compile-time stride, backed by C array indices. More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation_ct (FromSet &fromSet, ToSet &toSet, ElemType *indices, PosType indicesSize) |
| Reference overload for make_constant_relation_ct (C-array-backed). More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation_ct (FromSet *fromSet, ToSet *toSet, std::vector< ElemType > &indices) |
| Make a static, constant-cardinality relation with a compile-time stride, backed by std::vector indices. More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation_ct (FromSet &fromSet, ToSet &toSet, std::vector< ElemType > &indices) |
| Reference overload for make_constant_relation_ct (std::vector-backed). More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation_ct (FromSet *fromSet, ToSet *toSet, axom::ArrayView< ElemType > indices) |
| Make a static, constant-cardinality relation with a compile-time stride, backed by ArrayView indices. More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation_ct (FromSet &fromSet, ToSet &toSet, axom::ArrayView< ElemType > indices) |
| Reference overload for make_constant_relation_ct (ArrayView-backed). More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation_ct (FromSet *fromSet, ToSet *toSet, axom::Array< ElemType > &indices) |
| Make a static, constant-cardinality relation with a compile-time stride, backed by axom::Array indices. More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | make_constant_relation_ct (FromSet &fromSet, ToSet &toSet, axom::Array< ElemType > &indices) |
| Reference overload for make_constant_relation_ct (axom::Array-backed). More... | |
Set construction helpers | |
Construct a SLAM set while deducing its policy stack from the buffer or range. PosType defaults to slam's default position type and may be supplied explicitly as the leading template argument. | |
| template<typename PosType = DefaultPositionType, typename ElemType = DefaultElementType> | |
| RangeSet< PosType, ElemType > | make_range_set (axom::type_identity_t< PosType > size) |
| Make a contiguous range set \([0, size)\). More... | |
| template<typename PosType = DefaultPositionType, typename ElemType = DefaultElementType> | |
| RangeSet< PosType, ElemType > | make_range_set (axom::type_identity_t< PosType > lower, axom::type_identity_t< PosType > upper) |
| Make a contiguous range set \([lower, upper)\). More... | |
| template<typename PosType = DefaultPositionType, typename T > | |
| ArrayViewIndirectionSet< PosType, T > | make_indirection_set (axom::ArrayView< T > view) |
| Make an indirection set whose elements indirect through an axom::ArrayView. More... | |
| template<typename PosType = DefaultPositionType, typename T > | |
| VectorIndirectionSet< PosType, T > | make_indirection_set (std::vector< T > &vec) |
| Make an indirection set whose elements indirect through an std::vector. More... | |
| template<typename PosType = DefaultPositionType, typename T , int DIM, MemorySpace SPACE, typename StoragePolicy > | |
| ArrayViewIndirectionSet< PosType, T > | make_indirection_set (axom::Array< T, DIM, SPACE, StoragePolicy > &arr) |
| Make an indirection set whose elements indirect through an axom::Array's flat storage. More... | |
| template<typename PosType = DefaultPositionType, typename T > | |
| CArrayIndirectionSet< PosType, T > | make_indirection_set (T *data, axom::type_identity_t< PosType > size) |
| Make an indirection set whose elements indirect through a C array. More... | |
| using axom::slam::CArrayIndirectionSet = typedef OrderedSet<PosType, ElemType, policies::RuntimeSize<PosType>, policies::ZeroOffset<PosType>, policies::StrideOne<PosType>, policies::CArrayIndirection<PosType, ElemType> > |
Alias template for an OrderedSet with indirection over a C array.
| PosType | The position type for indexing into the set |
| ElemType | The type for the set's elements |
| using axom::slam::VectorIndirectionSet = typedef OrderedSet<PosType, ElemType, policies::RuntimeSize<PosType>, policies::ZeroOffset<PosType>, policies::StrideOne<PosType>, policies::STLVectorIndirection<PosType, ElemType> > |
Alias template for an OrderedSet with indirection over an stl vector.
| PosType | The position type for indexing into the set |
| ElemType | The type for the set's elements |
| using axom::slam::ArrayIndirectionSet = typedef OrderedSet<PosType, ElemType, policies::RuntimeSize<PosType>, policies::ZeroOffset<PosType>, policies::StrideOne<PosType>, policies::ArrayIndirection<PosType, ElemType> > |
Alias template for an OrderedSet with indirection over an axom::Array.
| PosType | The position type for indexing into the set |
| ElemType | The type for the set's elements |
| using axom::slam::ArrayViewIndirectionSet = typedef OrderedSet<PosType, ElemType, policies::RuntimeSize<PosType>, policies::ZeroOffset<PosType>, policies::StrideOne<PosType>, policies::ArrayViewIndirection<PosType, ElemType> > |
Alias template for an OrderedSet with indirection over an axom::ArrayView.
| PosType | The position type for indexing into the set |
| ElemType | The type for the set's elements |
| using axom::slam::PositionSet = typedef GenericRangeSet<P, E, policies::ZeroOffset<P> > |
| using axom::slam::RangeSet = typedef GenericRangeSet<P, E> |
| using axom::slam::DefaultPositionType = typedef axom::IndexType |
| using axom::slam::DefaultElementType = typedef axom::IndexType |
Union operator for two bit sets.
| lhs | The first bitset |
| rhs | The second bitset |
Intersection operator for two bit sets.
| lhs | The first bitset |
| rhs | The second bitset |
Exclusive or (xor) operator for two bit sets.
| lhs | The first bitset |
| rhs | The second bitset |
Set difference operator for two bit sets.
| lhs | The first bitset |
| rhs | The second bitset |
| auto axom::slam::make_map | ( | const SetType * | set, |
| PosType | stride, | ||
| axom::ArrayView< T > | data | ||
| ) |
Make a strided SLAM map backed by ArrayView storage.
| set | pointer to the map's set (must outlive the map) |
| stride | runtime stride (#values per set element) |
| data | backing storage as an ArrayView (must outlive the map) |
data.size() == set->size() * stride. The view must be sized to back every element of the set at the given stride; this is checked in debug builds. References axom::slam::detail::check_map_view_size().
| auto axom::slam::make_map | ( | const SetType * | set, |
| axom::ArrayView< T > | data | ||
| ) |
Make a stride-one SLAM map backed by ArrayView storage.
data.size() == set->size(). The view must be sized to back every element of the set; this is checked in debug builds. References axom::slam::detail::check_map_view_size().
| auto axom::slam::make_map | ( | const SetType * | set, |
| PosType | stride, | ||
| T * | data | ||
| ) |
Make a strided SLAM map backed by a raw pointer buffer.
This overload wraps the buffer as an ArrayView with length set->size() * stride and returns an ArrayView-backed map.
References make_map(), and axom::slam::detail::map_storage_size().
| auto axom::slam::make_map | ( | const SetType * | set, |
| T * | data | ||
| ) |
Make a stride-one SLAM map backed by a raw pointer buffer.
References make_map(), and axom::slam::detail::map_storage_size().
| auto axom::slam::make_map_ct | ( | const SetType * | set, |
| axom::ArrayView< T > | data | ||
| ) |
Make a compile-time strided SLAM map backed by ArrayView storage.
| STRIDE | number of values per set element |
data.size() == set->size() * STRIDE. The view must be sized to back every element of the set at the compile-time stride; this is checked in debug builds. References axom::slam::detail::check_map_view_size().
| auto axom::slam::make_map_ct | ( | const SetType * | set, |
| T * | data | ||
| ) |
Make a compile-time strided SLAM map backed by a raw pointer buffer.
This overload wraps the buffer as an ArrayView with length set->size() * STRIDE and returns an ArrayView-backed map.
References axom::slam::detail::map_storage_size().
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
| auto axom::slam::make_variable_relation | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| std::vector< PosType > & | begins, | ||
| std::vector< ElemType > & | indices | ||
| ) |
Make a static, variable-cardinality (CSR) relation from fromSet to toSet, backed by std::vector storage for its begins and indices.
The from/to set types are deduced from the pointers. The begins offsets and flat indices (to-set positions) are taken from begins and indices (which must outlive the relation). The relation uses STL-vector indirection.
| fromSet | pointer to the from-set (must outlive the relation) |
| toSet | pointer to the to-set (must outlive the relation) |
| begins | the per-from-element begin offsets (size == fromSet->size()+1) |
| indices | the flat to-set indices |
References axom::slam::detail::check_variable_relation_size().
| auto axom::slam::make_variable_relation | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| std::vector< PosType > & | begins, | ||
| std::vector< ElemType > & | indices | ||
| ) |
Reference overload for make_variable_relation (std::vector-backed).
References make_variable_relation().
| auto axom::slam::make_variable_relation | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| PosType * | begins, | ||
| PosType | beginsSize, | ||
| ElemType * | indices, | ||
| PosType | indicesSize | ||
| ) |
Make a static, variable-cardinality (CSR) relation backed by C array storage.
| fromSet | pointer to the from-set (must outlive the relation) |
| toSet | pointer to the to-set (must outlive the relation) |
| begins | pointer to begin offsets (size == fromSet->size()+1; must outlive the relation) |
| beginsSize | number of begin offsets |
| indices | pointer to flat indices (must outlive the relation) |
| indicesSize | number of indices |
References axom::slam::detail::check_variable_relation_size().
| auto axom::slam::make_variable_relation | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| PosType * | begins, | ||
| PosType | beginsSize, | ||
| ElemType * | indices, | ||
| PosType | indicesSize | ||
| ) |
Reference overload for make_variable_relation (C-array-backed).
References make_variable_relation().
| auto axom::slam::make_variable_relation | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| axom::ArrayView< PosType > | begins, | ||
| axom::ArrayView< ElemType > | indices | ||
| ) |
Make a static, variable-cardinality (CSR) relation backed by ArrayView storage.
| fromSet | pointer to the from-set (must outlive the relation) |
| toSet | pointer to the to-set (must outlive the relation) |
| begins | array view of begin offsets (size == fromSet->size()+1) |
| indices | array view of flat indices |
References axom::slam::detail::check_variable_relation_size(), and axom::ArrayView< T, DIM, SPACE >::size().
| auto axom::slam::make_variable_relation | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| axom::ArrayView< PosType > | begins, | ||
| axom::ArrayView< ElemType > | indices | ||
| ) |
Reference overload for make_variable_relation (ArrayView-backed).
References make_variable_relation().
| auto axom::slam::make_variable_relation | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| axom::Array< PosType > & | begins, | ||
| axom::Array< ElemType > & | indices | ||
| ) |
Make a static, variable-cardinality (CSR) relation backed by axom::Array storage.
| fromSet | pointer to the from-set (must outlive the relation) |
| toSet | pointer to the to-set (must outlive the relation) |
| begins | array of begin offsets (size == fromSet->size()+1; must outlive the relation) |
| indices | array of flat indices (to-set positions; must outlive the relation) |
References axom::slam::detail::check_variable_relation_size(), and axom::Array< T, DIM, SPACE, StoragePolicy >::size().
| auto axom::slam::make_variable_relation | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| axom::Array< PosType > & | begins, | ||
| axom::Array< ElemType > & | indices | ||
| ) |
Reference overload for make_variable_relation (axom::Array-backed).
References make_variable_relation().
| auto axom::slam::make_constant_relation | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| PosType | stride, | ||
| std::vector< ElemType > & | indices | ||
| ) |
Make a static, constant-cardinality relation with a runtime stride, backed by std::vector indices.
| fromSet | pointer to the from-set (must outlive the relation) |
| toSet | pointer to the to-set (must outlive the relation) |
| stride | number of to-set elements per from-set element |
| indices | flat indices (size == fromSet->size() * stride; must outlive the relation) |
References axom::slam::detail::check_constant_relation_size().
| auto axom::slam::make_constant_relation | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| PosType | stride, | ||
| std::vector< ElemType > & | indices | ||
| ) |
Reference overload for make_constant_relation (std::vector-backed).
References make_constant_relation().
| auto axom::slam::make_constant_relation | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| PosType | stride, | ||
| ElemType * | indices, | ||
| PosType | indicesSize | ||
| ) |
Make a static, constant-cardinality relation with a runtime stride, backed by C array indices.
References axom::slam::detail::check_constant_relation_size().
| auto axom::slam::make_constant_relation | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| PosType | stride, | ||
| ElemType * | indices, | ||
| PosType | indicesSize | ||
| ) |
Reference overload for make_constant_relation (C-array-backed).
References make_constant_relation().
| auto axom::slam::make_constant_relation | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| PosType | stride, | ||
| axom::ArrayView< ElemType > | indices | ||
| ) |
Make a static, constant-cardinality relation with a runtime stride, backed by ArrayView indices.
References axom::slam::detail::check_constant_relation_size(), and axom::ArrayView< T, DIM, SPACE >::size().
| auto axom::slam::make_constant_relation | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| PosType | stride, | ||
| axom::ArrayView< ElemType > | indices | ||
| ) |
Reference overload for make_constant_relation (ArrayView-backed).
References make_constant_relation().
| auto axom::slam::make_constant_relation | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| PosType | stride, | ||
| axom::Array< ElemType > & | indices | ||
| ) |
Make a static, constant-cardinality relation with a runtime stride, backed by axom::Array indices.
References axom::slam::detail::check_constant_relation_size(), and axom::Array< T, DIM, SPACE, StoragePolicy >::size().
| auto axom::slam::make_constant_relation | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| PosType | stride, | ||
| axom::Array< ElemType > & | indices | ||
| ) |
Reference overload for make_constant_relation (axom::Array-backed).
References make_constant_relation().
| auto axom::slam::make_constant_relation_ct | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| ElemType * | indices, | ||
| PosType | indicesSize | ||
| ) |
Make a static, constant-cardinality relation with a compile-time stride, backed by C array indices.
| STRIDE | number of to-set elements per from-set element |
References axom::slam::detail::check_constant_relation_size().
| auto axom::slam::make_constant_relation_ct | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| ElemType * | indices, | ||
| PosType | indicesSize | ||
| ) |
Reference overload for make_constant_relation_ct (C-array-backed).
| auto axom::slam::make_constant_relation_ct | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| std::vector< ElemType > & | indices | ||
| ) |
Make a static, constant-cardinality relation with a compile-time stride, backed by std::vector indices.
References axom::slam::detail::check_constant_relation_size().
| auto axom::slam::make_constant_relation_ct | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| std::vector< ElemType > & | indices | ||
| ) |
Reference overload for make_constant_relation_ct (std::vector-backed).
| auto axom::slam::make_constant_relation_ct | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| axom::ArrayView< ElemType > | indices | ||
| ) |
Make a static, constant-cardinality relation with a compile-time stride, backed by ArrayView indices.
References axom::slam::detail::check_constant_relation_size(), and axom::ArrayView< T, DIM, SPACE >::size().
| auto axom::slam::make_constant_relation_ct | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| axom::ArrayView< ElemType > | indices | ||
| ) |
Reference overload for make_constant_relation_ct (ArrayView-backed).
| auto axom::slam::make_constant_relation_ct | ( | FromSet * | fromSet, |
| ToSet * | toSet, | ||
| axom::Array< ElemType > & | indices | ||
| ) |
Make a static, constant-cardinality relation with a compile-time stride, backed by axom::Array indices.
References axom::slam::detail::check_constant_relation_size(), and axom::Array< T, DIM, SPACE, StoragePolicy >::size().
| auto axom::slam::make_constant_relation_ct | ( | FromSet & | fromSet, |
| ToSet & | toSet, | ||
| axom::Array< ElemType > & | indices | ||
| ) |
Reference overload for make_constant_relation_ct (axom::Array-backed).
|
inline |
General equality operator for two sets.
Two sets are considered equal if they have the same number of elements and their ordered indices agree.
References axom::slam::Set< PosType, ElemType >::at(), and axom::slam::Set< PosType, ElemType >::size().
|
inline |
Set inequality operator.
| RangeSet<PosType, ElemType> axom::slam::make_range_set | ( | axom::type_identity_t< PosType > | size | ) |
Make a contiguous range set \([0, size)\).
| size | the number of elements |
| RangeSet<PosType, ElemType> axom::slam::make_range_set | ( | axom::type_identity_t< PosType > | lower, |
| axom::type_identity_t< PosType > | upper | ||
| ) |
Make a contiguous range set \([lower, upper)\).
| lower | the first element of the range |
| upper | one past the last element of the range |
| ArrayViewIndirectionSet<PosType, T> axom::slam::make_indirection_set | ( | axom::ArrayView< T > | view | ) |
Make an indirection set whose elements indirect through an axom::ArrayView.
The element type is deduced from view; the set is device-capable (ArrayView indirection is host-device). The set's size matches the view.
| view | the backing array view |
References axom::ArrayView< T, DIM, SPACE >::size().
| VectorIndirectionSet<PosType, T> axom::slam::make_indirection_set | ( | std::vector< T > & | vec | ) |
Make an indirection set whose elements indirect through an std::vector.
The element type is deduced from vec. The set's size matches the vector.
| vec | the backing vector (must outlive the set) |
| ArrayViewIndirectionSet<PosType, T> axom::slam::make_indirection_set | ( | axom::Array< T, DIM, SPACE, StoragePolicy > & | arr | ) |
Make an indirection set whose elements indirect through an axom::Array's flat storage.
The element type is deduced from arr; the set is device-capable because it stores an ArrayView over the array's flat storage. The set's size matches the array.
The set exposes the array in flatIndex order: element i resolves to arr.data()[i * arr.minStride()], matching axom::Array's own flat-index contract (see axom::ArrayBase::flatIndex). The flat ArrayView is therefore valid for any layout axom::Array produces, including multidimensional row-major arrays. For the common 1D case (axom::Array<T> / DIM == 1) the storage is always contiguous with unit stride, so the set indexes the buffer directly.
| arr | the backing array (its storage must outlive the set and not be reallocated) |
References axom::Array< T, DIM, SPACE, StoragePolicy >::data(), axom::ArrayBase< T, DIM, ArrayType >::minStride(), axom::Array< T, DIM, SPACE, StoragePolicy >::size(), and axom::ArrayView< T, DIM, SPACE >::size().
| CArrayIndirectionSet<PosType, T> axom::slam::make_indirection_set | ( | T * | data, |
| axom::type_identity_t< PosType > | size | ||
| ) |
Make an indirection set whose elements indirect through a C array.
| data | pointer to the backing buffer (must outlive the set) |
| size | the number of elements |