Template Class scrambled_sobol64_engine

Class Documentation

template<unsigned int DefaultNumDimensions = 1>
class scrambled_sobol64_engine

Sobol’s scrambled quasi-random sequence generator.

scrambled_sobol64_engine is a quasi-random number engine which produces scrambled Sobol sequences. This implementation supports generating sequences in up to 20,000 dimensions. The engine produces random unsigned long long integers on the interval [0, 2^64 - 1].

Public Types

typedef unsigned long long int result_type

Type of values generated by the random number engine.

typedef rocrand_ordering order_type

Pseudo-random number engine ordering type. Represents the ordering of the results of a random number engine.

See also: order()

typedef unsigned long long int offset_type

Pseudo-random number engine offset type. Offset represents a number of the random number engine’s states that should be skipped before first value is generated.

See also: offset()

typedef unsigned int dimensions_num_type

Quasi-random number engine type for number of dimensions.

See also dimensions()

Public Functions

inline scrambled_sobol64_engine(dimensions_num_type num_of_dimensions = DefaultNumDimensions, offset_type offset_value = 0, order_type order_value = ROCRAND_ORDERING_QUASI_DEFAULT)

Constructs the pseudo-random number engine.

See also: rocrand_create_generator()

Parameters:
  • num_of_dimensions – - number of dimensions to use in the initialization of the internal state, see also dimensions()

  • offset_value – - number of internal states that should be skipped, see also offset()

  • order_value – - ordering of the sequences generated by the engine, see also order()

inline scrambled_sobol64_engine(rocrand_generator &generator)

Constructs the pseudo-random number engine.

The pseudo-random number engine will be created using generator. The constructed engine take ownership over generator, and sets passed reference to NULL. The lifetime of generator is now bound to the lifetime of the engine.

Parameters:

generator – - rocRAND generator

inline ~scrambled_sobol64_engine() noexcept(false)

Destructs the engine.

See also: rocrand_destroy_generator()

inline void stream(hipStream_t value)

Sets the random number engine’s hipStream for kernel launches.

Parameters:

value – - new hipStream to use

inline void order(order_type value)

Sets the order of a random number engine.

The order refers to the ordering of the sequences generated by the engine.

  • This operation resets the engine’s internal state.

  • This operation does not change the engine’s seed.

See also: rocrand_set_ordering()

Parameters:

value – - New ordering

inline void offset(offset_type value)

Sets the offset of a random number engine.

Offset represents a number of the random number engine’s states that should be skipped before first value is generated.

  • This operation resets the engine’s internal state.

  • This operation does not change the engine’s seed or the number of dimensions.

See also: rocrand_set_offset()

Parameters:

value – - New absolute offset

inline void dimensions(dimensions_num_type value)

Set the number of dimensions of a quasi-random number generator.

Supported values of dimensions are 1 to 20000.

  • This operation resets the generator’s internal state.

  • This operation does not change the generator’s offset.

See also: rocrand_set_quasi_random_generator_dimensions()

Parameters:

value – - Number of dimensions

template<class Generator>
inline void operator()(result_type *output, size_t size)

Fills output with uniformly distributed random integer values.

Generates size random integer values uniformly distributed on the interval [0, 2^64 - 1], and stores them into the device memory referenced by output pointer.

Requirements:

  • The device memory pointed by output must have been previously allocated and be large enough to store at least size values of IntType type.

  • size must be a multiple of the engine’s number of dimensions.

See also: rocrand_generate()

Parameters:
  • output – - Pointer to device memory to store results

  • size – - Number of values to generate

inline result_type min() const

Returns the smallest possible value that can be generated by the engine.

inline result_type max() const

Returns the largest possible value that can be generated by the engine.

Public Static Functions

static inline constexpr rocrand_rng_type type()

Returns type of the rocRAND pseudo-random number generator associated with the engine.

Public Static Attributes

static constexpr dimensions_num_type default_num_dimensions = DefaultNumDimensions

The default number of dimenstions, equal to DefaultNumDimensions.