Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
hydra::sobol_engine< UIntType, D, W, SobolTables > Class Template Reference

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)] . More...

#include <Sobol.h>

Inheritance diagram for hydra::sobol_engine< UIntType, D, W, SobolTables >:
Collaboration diagram for hydra::sobol_engine< UIntType, D, W, SobolTables >:

Public Member Functions

__hydra_host__ __hydra_device__ sobol_engine ()
 
__hydra_host__ __hydra_device__ sobol_engine (UIntType s)
 
- Public Member Functions inherited from hydra::detail::gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >
__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)
 

Static Public Attributes

static const UIntType max =base_t::max
 
static const UIntType min =0
 
- Static Public Attributes inherited from hydra::detail::gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >
static const result_type max
 
static const result_type min
 

Additional Inherited Members

- Public Types inherited from hydra::detail::gray_code< detail::sobol_lattice< UIntType, D, W, SobolTables > >
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_typestate_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
 

Detailed Description

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,
...

Constructor & Destructor Documentation

◆ sobol_engine() [1/2]

template<typename UIntType , unsigned D, unsigned W, typename SobolTables = default_sobol_table>
__hydra_host__ __hydra_device__ hydra::sobol_engine< UIntType, D, W, SobolTables >::sobol_engine ( )
inline

◆ sobol_engine() [2/2]

template<typename UIntType , unsigned D, unsigned W, typename SobolTables = default_sobol_table>
__hydra_host__ __hydra_device__ hydra::sobol_engine< UIntType, D, W, SobolTables >::sobol_engine ( UIntType  s)
inline

Field Documentation

◆ max

template<typename UIntType , unsigned D, unsigned W, typename SobolTables = default_sobol_table>
const UIntType hydra::sobol_engine< UIntType, D, W, SobolTables >::max =base_t::max
static

◆ min

template<typename UIntType , unsigned D, unsigned W, typename SobolTables = default_sobol_table>
const UIntType hydra::sobol_engine< UIntType, D, W, SobolTables >::min =0
static

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