![]() |
SG++-Doxygen-Documentation
|
Various tools for LevelVectors, mainly for generating specific vectors of LevelVectors. More...
#include <LevelVectorTools.hpp>
Classes | |
class | Hash |
Public Member Functions | |
LevelVectorTools ()=delete | |
Static Public Member Functions | |
static bool | compareLower (const LevelVector &a, const LevelVector &b) |
static std::vector< LevelVector > | generateDiagonal (const LevelVector &minLevel, level_t levelSum) |
Enumerate all levels \(\vec{\ell} \in \mathbb{N}_{\ge 0}^{dim}\) with \(\sum_{d=1}^{dim} \ell_d = \mathrm{levelSum}\) and \(\ell_d \ge \textrm{minLevel}_d\) for all \(d\). | |
static std::vector< LevelVector > | generateDiagonalWithBoundary (size_t dim, level_t levelSum) |
Enumerate all levels \(\vec{\ell} \in \mathbb{N}_{\ge 0}^{dim}\) with \(\sum_{d=1}^{dim} \ell_d = n\). | |
static std::vector< LevelVector > | generateDiagonalWithoutBoundary (size_t dim, level_t levelSum) |
Enumerate all levels \(\vec{\ell} \in \mathbb{N}_{\ge 1}^{dim}\) with \(\sum_{d=1}^{dim} \ell_d = n\). | |
static std::vector< LevelVector > | generateHyperCube (const LevelVector &minLevel, const LevelVector &maxLevel) |
Enumerate all levels in the hypercube between and including minLevel and maxLevel. | |
static std::vector< LevelVector > | generateHyperCubeWithBoundary (const LevelVector &maxLevel) |
Enumerate all levels in the hypercube between and including \((0, \dotsc, 0)\) and maxLevel. | |
static std::vector< LevelVector > | generateHyperCubeWithoutBoundary (const LevelVector &maxLevel) |
Enumerate all levels in the hypercube between and including \((1, \dotsc, 1)\) and maxLevel. | |
static std::vector< LevelVector > | makeDownwardClosed (LevelVector minLevel, const std::vector< LevelVector > &subspaceLevels) |
Make any level set a downward closed one. | |
static void | sort (std::vector< LevelVector > &levels) |
Static Protected Member Functions | |
static void | generateDiagonalRecursive (const LevelVector &minLevel, level_t minLevelSum, level_t levelSum, LevelVector &curLevel, size_t curDim, std::vector< LevelVector > &result) |
Enumerate all levels \(\vec{\ell} \in \mathbb{N}_{\ge 0}^{dim}\) with \(\sum_{d=1}^{dim} \ell_d = \mathrm{levelSum}\) and \(\ell_d \ge \textrm{minLevel}_d\) for all \(d\) (internal recursive function). | |
static void | generateHyperCubeRecursive (const LevelVector &minLevel, const LevelVector &maxLevel, LevelVector &curLevel, size_t curDim, std::vector< LevelVector > &result) |
Enumerate all levels in the hypercube between and including minLevel and maxLevel (internal recursive function). | |
Various tools for LevelVectors, mainly for generating specific vectors of LevelVectors.
|
delete |
|
inlinestatic |
Referenced by sort().
|
static |
Enumerate all levels \(\vec{\ell} \in \mathbb{N}_{\ge 0}^{dim}\) with \(\sum_{d=1}^{dim} \ell_d = \mathrm{levelSum}\) and \(\ell_d \ge \textrm{minLevel}_d\) for all \(d\).
minLevel | the minimum level vector |
levelSum | level sum |
References generateDiagonalRecursive().
Referenced by generateDiagonalWithBoundary(), and generateDiagonalWithoutBoundary().
|
staticprotected |
Enumerate all levels \(\vec{\ell} \in \mathbb{N}_{\ge 0}^{dim}\) with \(\sum_{d=1}^{dim} \ell_d = \mathrm{levelSum}\) and \(\ell_d \ge \textrm{minLevel}_d\) for all \(d\) (internal recursive function).
[in] | minLevel | the minimum level vector |
[in] | minLevelSum | level sum of minLevel |
[in] | levelSum | level sum |
[in] | curLevel | the current level vector, curLevel [d] won't be modified anymore for \(d >= \mathrm{curDim}\) |
[in] | curDim | the dimension of the remaining diagonal |
[out] | result | a colexicographically ordered vector of levels of desired level sum |
References generateDiagonalRecursive().
Referenced by generateDiagonal(), and generateDiagonalRecursive().
|
static |
Enumerate all levels \(\vec{\ell} \in \mathbb{N}_{\ge 0}^{dim}\) with \(\sum_{d=1}^{dim} \ell_d = n\).
dim | dimensionality |
levelSum | level sum |
References generateDiagonal().
Referenced by sgpp::combigrid::CombinationGrid::fromRegularSparseTruncated().
|
static |
Enumerate all levels \(\vec{\ell} \in \mathbb{N}_{\ge 1}^{dim}\) with \(\sum_{d=1}^{dim} \ell_d = n\).
dim | dimensionality |
levelSum | level sum |
References generateDiagonal().
Referenced by sgpp::combigrid::CombinationGrid::fromRegularSparseTruncated().
|
static |
Enumerate all levels in the hypercube between and including minLevel and maxLevel.
minLevel | the minimum level vector |
maxLevel | the maximum level vector |
References generateHyperCubeRecursive().
Referenced by generateHyperCubeWithBoundary(), generateHyperCubeWithoutBoundary(), sgpp::combigrid::AdaptiveCombinationGridGenerator::getDelta(), and makeDownwardClosed().
|
staticprotected |
Enumerate all levels in the hypercube between and including minLevel and maxLevel (internal recursive function).
[in] | minLevel | the minimum level vector |
[in] | maxLevel | the maximum level vector |
[in] | curLevel | the current level vector, curLevel [d] won't be modified anymore for \(d >= \mathrm{curDim}\) |
[in] | curDim | the dimension of the remaining hypercube |
[out] | result | a colexicographically ordered vector of level vectors in the hypercube |
References generateHyperCubeRecursive().
Referenced by generateHyperCube(), and generateHyperCubeRecursive().
|
static |
Enumerate all levels in the hypercube between and including \((0, \dotsc, 0)\) and maxLevel.
maxLevel | the maximum level vector |
References generateHyperCube().
|
static |
Enumerate all levels in the hypercube between and including \((1, \dotsc, 1)\) and maxLevel.
maxLevel | the maximum level vector |
References generateHyperCube().
|
static |
Make any level set a downward closed one.
minLevel | the minimum level vector, a vector of zeros or ones would be a standard choice |
subspaceLevels | an arbitrary level set |
References generateHyperCube(), level, and sort().
Referenced by sgpp::combigrid::AdaptiveCombinationGridGenerator::AdaptiveCombinationGridGenerator().
|
static |
References compareLower().
Referenced by makeDownwardClosed().