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...
#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/latest/src/axom/slam/ProductSet.hpp>
Inherits policies::BivariateSetInterface< policies::VirtualInterface, slam::Set<>, slam::Set<> >.
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
class axom::slam::ProductSet< SetType1, SetType2, InterfaceType >
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.
Users should refer to the BivariateSet documentation for descriptions of the different indexing names (SparseIndex, DenseIndex, FlatIndex).
- See also
- BivariateSet
◆ RangeSetType
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ FirstSetType
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ SecondSetType
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ PositionType
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ ElementType
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ ProductSetType
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ IteratorType
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ ConcreteSet
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ VirtualSet
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ OtherSet
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ SubsetType
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ ProductSet() [1/3]
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ ProductSet() [2/3]
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ ProductSet() [3/3]
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
Constructor taking in pointers of two Sets.
- Parameters
-
set1 | Pointer to the first Set. |
set2 | Pointer to the second Set. |
◆ findElementIndex()
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
Return the element SparseIndex. Since ProductSet is the full Cartesian product of the two sets, the SparseIndex is the same as its DenseIndex, which is the same as the pos2 parameter.
- Parameters
-
pos1 | The first set position. |
pos2 | The second set position. |
- Returns
- The element's SparseIndex, which is the same as pos2
◆ findElementFlatIndex() [1/2]
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
Returns an element's FlatIndex given its DenseIndex. Since ProductSet is the full Cartesian product of the two sets, an element's FlatIndex is equal to pos1*secondSetSize()+pos2
.
- Parameters
-
pos1 | The first set position. |
pos2 | The second set position. |
- Returns
- The element's FlatIndex.
◆ findElementFlatIndex() [2/2]
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ flatToSecondIndex()
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ flatToFirstIndex()
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ getElements()
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
Return all elements from the second set associated with position pos1 in the first set.
- Parameters
-
pos1 | The first set position that specifies the row. |
- Returns
- An OrderedSet of the elements in the row.
References SLIC_ASSERT.
◆ at()
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ size() [1/2]
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ size() [2/2]
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ begin()
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
Return an iterator to the first pair of set elements in the relation.
◆ end()
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ elementRangeSet()
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ isValidIndex()
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
◆ isValid()
template<typename SetType1 = slam::Set<>, typename SetType2 = slam::Set<>, typename InterfaceType = policies::VirtualInterface>
The documentation for this class was generated from the following file:
- /home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/latest/src/axom/slam/ProductSet.hpp