FixedMultiIndexSet#

template<typename MemorySpace = Kokkos::HostSpace>
class FixedMultiIndexSet#

Public Functions

FixedMultiIndexSet(unsigned int _dim, Kokkos::View<unsigned int*, MemorySpace> _orders)#

Construct a fixed multiindex set in dense form.

All components of the multiindex are stored. This requires more memory for high dimensional problems, but might be easier to work with for some families of basis functions.

FixedMultiIndexSet(unsigned int _dim, Kokkos::View<unsigned int*, MemorySpace> _nzStarts, Kokkos::View<unsigned int*, MemorySpace> _nzDims, Kokkos::View<unsigned int*, MemorySpace> _nzOrders)#

Construct a fixed multiindex set in compressed form.

Only nonzero orders are stored in this representation. For multivariate polynomials, the compressed representation can yield faster polynomial evaluations. Note that the internal order of nzDims is guaranteed to to be increasing for each multiindex. The internal values of nzDims might therefore differ from _nzDims because they will be sorted.

FixedMultiIndexSet(unsigned int _dim, unsigned int _maxOrder)#
Kokkos::View<const unsigned int*, MemorySpace> MaxDegrees() const#
std::vector<unsigned int> IndexToMulti(unsigned int index) const#
std::vector<unsigned int> NonzeroDiagonalEntries() const#
int MultiToIndex(std::vector<unsigned int> const &multi) const#
MultiIndexSet Unfix() const#
void Print() const#
inline unsigned int Length() const#
inline unsigned int Size() const#
template<typename OtherMemorySpace>
FixedMultiIndexSet<OtherMemorySpace> ToDevice()#

Copy this FixedMultiIndexSet to device memory.

Returns:

A fixed multiindexset with arrays that live in device memory.

Public Members

Kokkos::View<unsigned int*, MemorySpace> nzStarts#
Kokkos::View<unsigned int*, MemorySpace> nzDims#
Kokkos::View<unsigned int*, MemorySpace> nzOrders#
Kokkos::View<unsigned int*, MemorySpace> maxDegrees#