AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol > Class Template Reference

A Map for BivariateSet. It associates a constant number of values to every element in a BivariateSet (as determined by StridePolicy). More...

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

Inheritance diagram for axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >:

Classes

class  FlatIterator
 
class  RangeIterator
 An iterator type for a BivariateMap, iterating over elements in an associated BivariateSet. More...
 

Public Types

using DataType = T
 
using BivariateSetType = BSet
 
using IndirectionPolicy = IndPol
 
using StridePolicyType = StrPol
 
using SetPosition = typename BSet::PositionType
 
using SetElement = typename BSet::ElementType
 
using ElementShape = typename StridePolicyType::ShapeType
 
using SetType = typename slam::RangeSet< SetPosition, SetElement >::ConcreteSet
 
using MapType = Map< DataType, SetType, IndPol, StrPol, IfacePol >
 
using OrderedSetType = typename BSet::SubsetType
 
using ValueType = typename IndirectionPolicy::IndirectionResult
 
using ConstValueType = typename IndirectionPolicy::ConstIndirectionResult
 
using PointerType = std::remove_reference_t< ValueType > *
 
using ConstPointerType = std::remove_reference_t< ConstValueType > *
 
using BivariateMapType = BivariateMap< DataType, BSet, IndPol, StrPol, IfacePol >
 
using iterator = FlatIterator< false >
 
using const_iterator = FlatIterator< true >
 
using range_iterator = RangeIterator< false >
 
using const_range_iterator = RangeIterator< true >
 
using SubMapType = SubMap< BivariateMapType, SetType, IfacePol >
 
using ConstSubMapType = const SubMap< const BivariateMapType, SetType, IfacePol >
 
using SubMapIterator = typename SubMapType::iterator
 
using ConstSubMapIterator = typename ConstSubMapType::iterator
 
using SubMapRangeIterator = typename SubMapType::range_iterator
 
using ConstSubMapRangeIterator = typename ConstSubMapType::range_iterator
 
using NullBivariateSetType = NullBivariateSet< typename BSet::FirstSetType, typename BSet::SecondSetType >
 
using ConcreteMap = BivariateMap< T, BSet, IndPol, StrPol, policies::ConcreteInterface >
 
using VirtualMap = BivariateMap< T, BSet, IndPol, StrPol, policies::VirtualInterface >
 
using IndexType = IntType
 
using ShapeType = IntType
 

Public Member Functions

 BivariateMap (const BivariateSetType *bSet=&s_nullBiSet, DataType defaultValue=DataType(), ElementShape shape=StridePolicyType::DefaultSize(), int allocatorID=axom::getDefaultAllocatorID())
 Constructor for a BivariateMap. More...
 
template<typename UBSet , typename Enable = typename std::enable_if< !std::is_abstract<BivariateSetType>::value && std::is_base_of<BivariateSetType, UBSet>::value>::type>
 BivariateMap (const UBSet &bSet, DataType defaultValue=DataType(), ElementShape shape=StridePolicyType::DefaultSize(), int allocatorID=axom::getDefaultAllocatorID())
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
 BivariateMap (const BivariateSetType *bSet, typename MapType::OrderedMap data, ElementShape shape=StridePolicyType::DefaultSize())
 Constructor for BivariateMap using a BivariateSet passed by-value and data passed in by-value. More...
 
template<typename UBSet , typename TBSet = BivariateSetType, typename Enable = typename std::enable_if<!std::is_abstract<TBSet>::value && std::is_base_of<TBSet, UBSet>::value>::type>
 BivariateMap (const UBSet &bSet, typename MapType::OrderedMap data, ElementShape shape=StridePolicyType::DefaultSize())
 Constructor for BivariateMap using a BivariateSet passed by-value and data passed in by-value. More...
 
template<typename BivariateSetRetType , typename RelType = void>
std::enable_if<!traits::has_relation_ptr< BivariateSetRetType >::value, BivariateSetRetType >::type getBivariateSet () const
 
template<typename BivariateSetRetType , typename RelType >
std::enable_if< traits::has_relation_ptr< BivariateSetRetType >::value, BivariateSetRetType >::type getBivariateSet () const
 
AXOM_HOST_DEVICE iterator begin ()
 
AXOM_HOST_DEVICE iterator end ()
 
AXOM_HOST_DEVICE const_iterator begin () const
 
AXOM_HOST_DEVICE const_iterator end () const
 
AXOM_HOST_DEVICE range_iterator set_begin ()
 
AXOM_HOST_DEVICE range_iterator set_end ()
 
AXOM_HOST_DEVICE const_range_iterator set_begin () const
 
AXOM_HOST_DEVICE const_range_iterator set_end () const
 
AXOM_HOST_DEVICE SubMapIterator begin (int i)
 
AXOM_HOST_DEVICE SubMapIterator end (int i)
 
AXOM_HOST_DEVICE ConstSubMapIterator begin (int i) const
 
AXOM_HOST_DEVICE ConstSubMapIterator end (int i) const
 
AXOM_HOST_DEVICE SubMapRangeIterator set_begin (int i)
 
AXOM_HOST_DEVICE SubMapRangeIterator set_end (int i)
 
AXOM_HOST_DEVICE ConstSubMapRangeIterator set_begin (int i) const
 
AXOM_HOST_DEVICE ConstSubMapRangeIterator set_end (int i) const
 
AXOM_HOST_DEVICE const BivariateSetTypeset () const
 
const MapTypegetMap () const
 
MapTypegetMap ()
 
bool isValid (bool verboseOutput=false) const
 
void copy (const DataType *data_arr)
 Given a DataType array of size totalSize()*numComp(), copy the data into the BivariateMap storage. More...
 
void clear ()
 replace all elements in the Map with the default DataType More...
 
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))
 
BivariateMap value access functions
AXOM_HOST_DEVICE ConstValueType operator[] (SetPosition setIndex) const
 Access the value in the map using a FlatIndex in the range of 0 to size()*numComp() More...
 
AXOM_HOST_DEVICE ValueType operator[] (SetPosition setIndex)
 
AXOM_HOST_DEVICE ConstSubMapType operator() (SetPosition firstIdx) const
 Returns a SubMap containing the subset of the BivariateMap given the first set index. More...
 
AXOM_HOST_DEVICE SubMapType operator() (SetPosition firstIdx)
 
template<typename... ComponentIndex>
AXOM_HOST_DEVICE ConstValueType operator() (SetPosition s1, SetPosition s2, ComponentIndex... comp) const
 Access the value associated with the given SparseIndex into the BivariateSet and the component index. More...
 
template<typename... ComponentIndex>
AXOM_HOST_DEVICE ValueType operator() (SetPosition s1, SetPosition s2, ComponentIndex... comp)
 
template<typename... ComponentIndex>
AXOM_HOST_DEVICE ConstValueType flatValue (SetPosition flatIndex, ComponentIndex... comp) const
 Access the value associated with the given FlatIndex into the BivariateSet and the component index. More...
 
template<typename... ComponentIndex>
AXOM_HOST_DEVICE ValueType flatValue (SetPosition flatIndex, ComponentIndex... comp)
 
template<typename... ComponentIndex>
AXOM_HOST_DEVICE ConstPointerType findValue (SetPosition s1, SetPosition s2, ComponentIndex... comp) const
 Access the value associated with the given DenseIndex into the BivariateSet and the component index. More...
 
template<typename... ComponentIndex>
AXOM_HOST_DEVICE PointerType findValue (SetPosition s1, SetPosition s2, ComponentIndex... comp)
 
BivariateMap index access functions
SetPosition index (SetPosition s1, SetPosition s2) const
 Returns the SparseIndex of the element given the DenseIndex. More...
 
OrderedSetType indexSet (SetPosition s1) const
 Return a set of DenseIndex associated to the given first set index. More...
 
AXOM_HOST_DEVICE SetPosition flatIndex (SetPosition s1, SetPosition s2) const
 Search for the FlatIndex of an element given its DenseIndex in the BivariateSet. More...
 
BivariateMap cardinality functions
AXOM_HOST_DEVICE SetPosition size () const
 Returns the BivariateSet size. More...
 
SetPosition totalSize () const
 Returns the BivariateSet size. More...
 
SetPosition firstSetSize () const
 
AXOM_HOST_DEVICE SetPosition secondSetSize () const
 
SetPosition size (SetPosition s) const
 Returns the number of the BivariateSet ordered pairs with the given first set index. More...
 
SetPosition numComp () const
 Return the number of components of the map
More...
 

Static Public Member Functions

static constexpr IntType DefaultSize ()
 

Static Public Attributes

static const IntType DEFAULT_VALUE = INT_VAL
 
static const bool IS_COMPILE_TIME = true
 
constexpr static int NumDims = 1
 

Protected Member Functions

constexpr AXOM_HOST_DEVICE bool submapIndicesHaveIndirection () const
 Utility function to determine if submaps should use indirection when finding the set indices of their elements. More...
 

Detailed Description

template<typename T, typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
class axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >

A Map for BivariateSet. It associates a constant number of values to every element in a BivariateSet (as determined by StridePolicy).

\detail Like BivariateSet, every value in BivariateMap is indexed by two indices. BivariateMap's operator(i) returns a SubMap of all entries whose first index is i in the BivariateSet.

The different indexing systems (DenseIndex, SparseIndex, FlatIndex) are explained in BivariateSet. Because BivariateMap can have more than one component, FlatIndex is further divided into ComponentFlatIndex, where each component in each element is indexed separately, and ElementFlatIndex, an index that disregards the individual components. Hence, to access each component, one would need to provide a component index as well.

Example: For a 2 x 2 sparse matrix with 3 components below:

0 1
0 abc
1 def

Access the elements using ElementFlatIndex (e) would be...
(e = 0) = abc
(e = 1) = def
To access each component, provide a component index (c) (e = 0, c = 0) = a
(e = 0, c = 1) = b
(e = 0, c = 2) = c
(e = 1, c = 0) = d
(e = 1, c = 1) = e
(e = 1, c = 2) = f
To access using ComponentFlatIndex (idx)...
(idx = 0) = a
(idx = 1) = b
(idx = 2) = c
(idx = 3) = d
(idx = 4) = e
(idx = 5) = f

Template Parameters
DataTypethe data type of each value
StridePolicyA policy class for configuring the number of components associate with each element. There is a fixed stride between the data associated with each element of the set.
See also
BivariateSet, SubMap

Member Typedef Documentation

◆ DataType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::DataType = T

◆ BivariateSetType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::BivariateSetType = BSet

◆ IndirectionPolicy

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::IndirectionPolicy = IndPol

◆ StridePolicyType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::StridePolicyType = StrPol

◆ SetPosition

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::SetPosition = typename BSet::PositionType

◆ SetElement

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::SetElement = typename BSet::ElementType

◆ ElementShape

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::ElementShape = typename StridePolicyType::ShapeType

◆ SetType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::SetType = typename slam::RangeSet<SetPosition, SetElement>::ConcreteSet

◆ MapType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::MapType = Map<DataType, SetType, IndPol, StrPol, IfacePol>

◆ OrderedSetType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::OrderedSetType = typename BSet::SubsetType

◆ ValueType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::ValueType = typename IndirectionPolicy::IndirectionResult

◆ ConstValueType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::ConstValueType = typename IndirectionPolicy::ConstIndirectionResult

◆ PointerType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::PointerType = std::remove_reference_t<ValueType>*

◆ ConstPointerType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::ConstPointerType = std::remove_reference_t<ConstValueType>*

◆ BivariateMapType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::BivariateMapType = BivariateMap<DataType, BSet, IndPol, StrPol, IfacePol>

◆ iterator

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::iterator = FlatIterator<false>

◆ const_iterator

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::const_iterator = FlatIterator<true>

◆ range_iterator

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::range_iterator = RangeIterator<false>

◆ const_range_iterator

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::const_range_iterator = RangeIterator<true>

◆ SubMapType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::SubMapType = SubMap<BivariateMapType, SetType, IfacePol>

◆ ConstSubMapType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::ConstSubMapType = const SubMap<const BivariateMapType, SetType, IfacePol>

◆ SubMapIterator

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::SubMapIterator = typename SubMapType::iterator

◆ ConstSubMapIterator

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::ConstSubMapIterator = typename ConstSubMapType::iterator

◆ SubMapRangeIterator

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::SubMapRangeIterator = typename SubMapType::range_iterator

◆ ConstSubMapRangeIterator

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::ConstSubMapRangeIterator = typename ConstSubMapType::range_iterator

◆ NullBivariateSetType

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::NullBivariateSetType = NullBivariateSet<typename BSet::FirstSetType, typename BSet::SecondSetType>

◆ ConcreteMap

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::ConcreteMap = BivariateMap<T, BSet, IndPol, StrPol, policies::ConcreteInterface>

◆ VirtualMap

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
using axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::VirtualMap = BivariateMap<T, BSet, IndPol, StrPol, policies::VirtualInterface>

◆ IndexType

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

◆ ShapeType

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

Constructor & Destructor Documentation

◆ BivariateMap() [1/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::BivariateMap ( const BivariateSetType bSet = &s_nullBiSet,
DataType  defaultValue = DataType(),
ElementShape  shape = StridePolicyType::DefaultSize(),
int  allocatorID = axom::getDefaultAllocatorID() 
)
inline

Constructor for a BivariateMap.

Parameters
bSet(Optional) Pointer to the BivariateSet.
defaultValue(Optional) The default value used to initialize the entries of the map.
shape(Optional) The number of components in the map.
Note
When using a compile time StridePolicy, stride must be equal to StridePolicy::stride(), when provided.

◆ BivariateMap() [2/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
template<typename UBSet , typename Enable = typename std::enable_if< !std::is_abstract<BivariateSetType>::value && std::is_base_of<BivariateSetType, UBSet>::value>::type>
axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::BivariateMap ( const UBSet &  bSet,
DataType  defaultValue = DataType(),
ElementShape  shape = StridePolicyType::DefaultSize(),
int  allocatorID = axom::getDefaultAllocatorID() 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ BivariateMap() [3/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::BivariateMap ( const BivariateSetType bSet,
typename MapType::OrderedMap  data,
ElementShape  shape = StridePolicyType::DefaultSize() 
)
inline

Constructor for BivariateMap using a BivariateSet passed by-value and data passed in by-value.

Parameters
bSetA reference to the map's associated bivariate set
dataThe data buffer to set the map's data to.
shape(Optional) The number of DataType that each element in the set will be mapped to. When using a RuntimeStridePolicy, the default is 1.
Note
When using a compile time StridePolicy, stride must be equal to stride(), when provided.

◆ BivariateMap() [4/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
template<typename UBSet , typename TBSet = BivariateSetType, typename Enable = typename std::enable_if<!std::is_abstract<TBSet>::value && std::is_base_of<TBSet, UBSet>::value>::type>
axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::BivariateMap ( const UBSet &  bSet,
typename MapType::OrderedMap  data,
ElementShape  shape = StridePolicyType::DefaultSize() 
)
inline

Constructor for BivariateMap using a BivariateSet passed by-value and data passed in by-value.

Parameters
bSetA reference to the map's associated bivariate set
dataThe data buffer to set the map's data to.
shape(Optional) The number of DataType that each element in the set will be mapped to. When using a RuntimeStridePolicy, the default is 1.
Note
When using a compile time StridePolicy, stride must be equal to stride(), when provided.

Member Function Documentation

◆ getBivariateSet() [1/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
template<typename BivariateSetRetType , typename RelType = void>
std::enable_if<!traits::has_relation_ptr<BivariateSetRetType>::value, BivariateSetRetType>::type axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::getBivariateSet ( ) const
inline

◆ getBivariateSet() [2/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
template<typename BivariateSetRetType , typename RelType >
std::enable_if<traits::has_relation_ptr<BivariateSetRetType>::value, BivariateSetRetType>::type axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::getBivariateSet ( ) const
inline

References SLIC_ASSERT.

◆ operator[]() [1/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE ConstValueType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::operator[] ( SetPosition  setIndex) const
inline

Access the value in the map using a FlatIndex in the range of 0 to size()*numComp()

Returns
The value for the jth component of the ith element, where setIndex = i * numComp() + j.
Precondition
0 <= setIndex < size() * numComp()

◆ operator[]() [2/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE ValueType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::operator[] ( SetPosition  setIndex)
inline

◆ operator()() [1/5]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE ConstSubMapType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::operator() ( SetPosition  firstIdx) const
inline

Returns a SubMap containing the subset of the BivariateMap given the first set index.

Precondition
0 <= firstIdx < size(firstIdx)

References axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set(), and axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::submapIndicesHaveIndirection().

◆ operator()() [2/5]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE SubMapType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::operator() ( SetPosition  firstIdx)
inline

◆ operator()() [3/5]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
template<typename... ComponentIndex>
AXOM_HOST_DEVICE ConstValueType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::operator() ( SetPosition  s1,
SetPosition  s2,
ComponentIndex...  comp 
) const
inline

Access the value associated with the given SparseIndex into the BivariateSet and the component index.

Precondition
0 <= s1 < firstSetSize()
0 <= s2 < size(s1)
0 <= comp < numComp()

References axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::flatIndex(), and axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::flatValue().

◆ operator()() [4/5]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
template<typename... ComponentIndex>
AXOM_HOST_DEVICE ValueType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::operator() ( SetPosition  s1,
SetPosition  s2,
ComponentIndex...  comp 
)
inline

◆ flatValue() [1/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
template<typename... ComponentIndex>
AXOM_HOST_DEVICE ConstValueType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::flatValue ( SetPosition  flatIndex,
ComponentIndex...  comp 
) const
inline

Access the value associated with the given FlatIndex into the BivariateSet and the component index.

Precondition
0 <= flatIndex < size()
0 <= comp < numComp()

References axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::flatIndex().

◆ flatValue() [2/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
template<typename... ComponentIndex>
AXOM_HOST_DEVICE ValueType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::flatValue ( SetPosition  flatIndex,
ComponentIndex...  comp 
)
inline

◆ findValue() [1/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
template<typename... ComponentIndex>
AXOM_HOST_DEVICE ConstPointerType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::findValue ( SetPosition  s1,
SetPosition  s2,
ComponentIndex...  comp 
) const
inline

Access the value associated with the given DenseIndex into the BivariateSet and the component index.

Precondition
0 <= s1 < firstSetSize()
0 <= s2 < secondSetSize()
0 <= comp < numComp()
Returns
a DataType pointer to the value associated with the given index, or nullptr if there is no value for the given index.
Warning
For sparse BivariateSet type, this function may have to do a linear search and can be slow.

References axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set().

◆ findValue() [2/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
template<typename... ComponentIndex>
AXOM_HOST_DEVICE PointerType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::findValue ( SetPosition  s1,
SetPosition  s2,
ComponentIndex...  comp 
)
inline

◆ index()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
SetPosition axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::index ( SetPosition  s1,
SetPosition  s2 
) const
inline

Returns the SparseIndex of the element given the DenseIndex.

Returns
The SparseIndex of the element, or BivariateSet::INVALID_POS if the set doesn't contain the given DenseIndex

References axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set().

◆ indexSet()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
OrderedSetType axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::indexSet ( SetPosition  s1) const
inline

Return a set of DenseIndex associated to the given first set index.

Parameters
s1the first set index
Returns
OrderedSet containing the elements

References axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set().

◆ flatIndex()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE SetPosition axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::flatIndex ( SetPosition  s1,
SetPosition  s2 
) const
inline

Search for the FlatIndex of an element given its DenseIndex in the BivariateSet.

References axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set().

◆ submapIndicesHaveIndirection()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
constexpr AXOM_HOST_DEVICE bool axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::submapIndicesHaveIndirection ( ) const
inlineconstexprprotected

Utility function to determine if submaps should use indirection when finding the set indices of their elements.

This test distinguishes between ProductSet whose second set do not use indirection and other BivariateSet types

◆ begin() [1/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE iterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::begin ( )
inline

BivariateMap iterator functions

◆ end() [1/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE iterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::end ( )
inline

◆ begin() [2/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE const_iterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::begin ( ) const
inline

◆ end() [2/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE const_iterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::end ( ) const
inline

◆ set_begin() [1/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE range_iterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set_begin ( )
inline

◆ set_end() [1/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE range_iterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set_end ( )
inline

◆ set_begin() [2/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE const_range_iterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set_begin ( ) const
inline

◆ set_end() [2/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE const_range_iterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set_end ( ) const
inline

◆ begin() [3/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE SubMapIterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::begin ( int  i)
inline

◆ end() [3/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE SubMapIterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::end ( int  i)
inline

◆ begin() [4/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE ConstSubMapIterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::begin ( int  i) const
inline

◆ end() [4/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE ConstSubMapIterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::end ( int  i) const
inline

◆ set_begin() [3/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE SubMapRangeIterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set_begin ( int  i)
inline

◆ set_end() [3/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE SubMapRangeIterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set_end ( int  i)
inline

◆ set_begin() [4/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE ConstSubMapRangeIterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set_begin ( int  i) const
inline

◆ set_end() [4/4]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE ConstSubMapRangeIterator axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set_end ( int  i) const
inline

◆ set()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE const BivariateSetType* axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set ( ) const
inline

◆ getMap() [1/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
const MapType* axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::getMap ( ) const
inline

◆ getMap() [2/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
MapType* axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::getMap ( )
inline

◆ isValid()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
bool axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::isValid ( bool  verboseOutput = false) const
inline

◆ size() [1/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE SetPosition axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::size ( ) const
inline

◆ totalSize()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
SetPosition axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::totalSize ( ) const
inline

◆ firstSetSize()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
SetPosition axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::firstSetSize ( ) const
inline

◆ secondSetSize()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
AXOM_HOST_DEVICE SetPosition axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::secondSetSize ( ) const
inline

◆ size() [2/2]

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
SetPosition axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::size ( SetPosition  s) const
inline

Returns the number of the BivariateSet ordered pairs with the given first set index.

References axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::set().

◆ numComp()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
SetPosition axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::numComp ( ) const
inline

Return the number of components of the map

◆ copy()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
void axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::copy ( const DataType data_arr)
inline

Given a DataType array of size totalSize()*numComp(), copy the data into the BivariateMap storage.

Parameters
data_arrThe array of DataType that contains the data to be copied.

References axom::slam::Map< T, S, IndPol, StrPol, IfacePol >::size().

◆ clear()

template<typename T , typename BSet = BivariateSet<>, typename IndPol = policies::STLVectorIndirection<typename BSet::PositionType, T>, typename StrPol = policies::StrideOne<typename BSet::PositionType>, typename IfacePol = policies::VirtualInterface>
void axom::slam::BivariateMap< T, BSet, IndPol, StrPol, IfacePol >::clear ( )
inline

replace all elements in the Map with the default DataType

References axom::slam::Map< T, S, IndPol, StrPol, IfacePol >::clear().

◆ DefaultSize()

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

◆ stride()

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

◆ shape()

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

◆ operator()() [5/5]

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

◆ setStride()

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

References SLIC_ASSERT_MSG.

Member Data Documentation

◆ DEFAULT_VALUE

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

◆ IS_COMPILE_TIME

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

◆ NumDims

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

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