|
CMP++: Uncertainty Quantification & Bayesian Calibration
|
Owen-scrambled Sobol low-discrepancy sequence grid generator. More...
#include <grid.h>


Public Member Functions | |
| ScrambledSobolGrid (const Eigen::Ref< const Eigen::VectorXd > &lowerBound, const Eigen::Ref< const Eigen::VectorXd > &upperBound, unsigned int seed=42) | |
| Eigen::MatrixXd | construct (const size_t &nPoints) override |
| Eigen::VectorXd | operator() () |
| size_t | dim () const override |
Public Member Functions inherited from cmp::grid::Grid | |
| virtual | ~Grid ()=default |
Static Private Member Functions | |
| static uint64_t | hash_prefix (uint64_t prefix, uint64_t seed) |
| static uint64_t | owen_scramble (uint64_t val, uint64_t seed) |
Private Attributes | |
| boost::random::sobol | gen_ |
| Boost Sobol sequence generator. | |
| size_t | dimension_ |
| Number of dimensions. | |
| Eigen::VectorXd | lowerBound_ |
| Lower bounds vector. | |
| Eigen::VectorXd | upperBound_ |
| Upper bounds vector. | |
| std::vector< uint64_t > | dim_seeds_ |
| Seeds used to initialize scrambling for each coordinate dimension. | |
Owen-scrambled Sobol low-discrepancy sequence grid generator.
Mathematical Formulation Owen scrambling randomized digital nets by applying random permutations on the digital trees. It preserves the low-discrepancy property:
\[ D_N^*(\mathcal{P}) = O\left( \frac{\log^D N}{N} \right) \]
while providing unbiased estimates and improving the numerical integration variance rate to \(o(N^{-1})\).
Implementation Algorithm
|
inline |
|
inlineoverridevirtual |
Implements cmp::grid::Grid.
|
inlineoverridevirtual |
Implements cmp::grid::Grid.
|
inlinestaticprivate |
|
inline |
|
inlinestaticprivate |
|
private |
Seeds used to initialize scrambling for each coordinate dimension.
|
private |
Number of dimensions.
|
private |
Boost Sobol sequence generator.
|
private |
Lower bounds vector.
|
private |
Upper bounds vector.