|
__hydra_host__ __hydra_device__ | sobol_engine () |
|
__hydra_host__ __hydra_device__ | sobol_engine (UIntType s) |
|
__hydra_host__ __hydra_device__ | gray_code () |
|
__hydra_host__ __hydra_device__ void | seed () |
|
__hydra_host__ __hydra_device__ void | seed (const size_type init) |
|
Public Member Functions inherited from hydra::detail::quasi_random_base< gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >, detail::sobol_lattice< UIntType, D, W, SobolTables >, detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type > |
__hydra_host__ __hydra_device__ | quasi_random_base () |
|
__hydra_host__ __hydra_device__ | quasi_random_base (quasi_random_base< gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >, detail::sobol_lattice< UIntType, D, W, SobolTables >, detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type > const &other) |
|
__hydra_host__ __hydra_device__ constexpr unsigned | dimension () const |
| Returns: The dimension of of the quasi-random domain. More...
|
|
__hydra_host__ __hydra_device__ void | discard (uintmax_t z) |
| Effects: Advances *this state as if z consecutive X::operator() invocations were executed. More...
|
|
__hydra_host__ __hydra_device__ std::enable_if< sizeof...(T)==detail::sobol_lattice< UIntType, D, W, SobolTables > ::lattice_dimension, void >::type | generate (hydra::tuple< T... > &data) |
| Fills a range with quasi-random values. More...
|
|
__hydra_host__ __hydra_device__ result_type | operator() () |
| Returns: Returns a successive element of an s-dimensional (s = X::dimension()) vector at each invocation. More...
|
|
__hydra_host__ __hydra_device__ quasi_random_base< gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >, detail::sobol_lattice< UIntType, D, W, SobolTables >, detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type > | operator= (quasi_random_base< gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >, detail::sobol_lattice< UIntType, D, W, SobolTables >, detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type > const &other) |
|
|
typedef detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type | result_type |
|
typedef result_type | size_type |
|
Public Types inherited from hydra::detail::quasi_random_base< gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >, detail::sobol_lattice< UIntType, D, W, SobolTables >, detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type > |
typedef detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type | result_type |
|
typedef detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type | size_type |
|
Protected Types inherited from hydra::detail::quasi_random_base< gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >, detail::sobol_lattice< UIntType, D, W, SobolTables >, detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type > |
typedef result_type * | state_iterator |
|
Protected Member Functions inherited from hydra::detail::quasi_random_base< gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >, detail::sobol_lattice< UIntType, D, W, SobolTables >, detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type > |
__hydra_host__ __hydra_device__ size_type | curr_seq () const |
|
__hydra_host__ __hydra_device__ void | reset_seq (size_type seq) |
|
__hydra_host__ __hydra_device__ state_iterator | state_begin () |
|
__hydra_host__ __hydra_device__ state_iterator | state_end () |
|
Protected Attributes inherited from hydra::detail::quasi_random_base< gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >, detail::sobol_lattice< UIntType, D, W, SobolTables >, detail::sobol_lattice< UIntType, D, W, SobolTables > ::value_type > |
detail::sobol_lattice< UIntType, D, W, SobolTables > | lattice |
|
template<typename UIntType, unsigned D, unsigned W, typename SobolTables = default_sobol_table>
class hydra::sobol_engine< UIntType, D, W, SobolTables >
Instantiations of class template sobol. The sobol_engine uses the algorithm described in [Bratley+Fox, TOMS 14, 88 (1988)] and [Antonov+Saleev, USSR Comput. Maths. Math. Phys. 19, 252 (1980)] .
- Attention
- sobol_engine skips trivial zeroes at the start of the sequence. For example, the beginning of the 2-dimensional Sobol sequence in
uniform_01
distribution will look like this: 0.5, 0.5,
0.75, 0.25,
0.25, 0.75,
0.375, 0.375,
0.875, 0.875,
...