Skip to main content
`Ctrl`+`K`

# rocRAND device functions

API library: rocRAND device functions
Macros | Functions
rocRAND device functions

## Macros

#define | ROCRAND_LFSR113_DEFAULT_SEED_X 2
| Default X seed for LFSR113 PRNG.
#define | ROCRAND_LFSR113_DEFAULT_SEED_Y 8
| Default Y seed for LFSR113 PRNG.
#define | ROCRAND_LFSR113_DEFAULT_SEED_Z 16
| Default Z seed for LFSR113 PRNG.
#define | ROCRAND_LFSR113_DEFAULT_SEED_W 128
| Default W seed for LFSR113 PRNG.
#define | ROCRAND_MRG31K3P_DEFAULT_SEED 12345ULL
| Default seed for MRG31K3P PRNG.
#define | ROCRAND_MRG32K3A_DEFAULT_SEED 12345ULL
| Default seed for MRG32K3A PRNG.
#define | ROCRAND_PHILOX4x32_DEFAULT_SEED 0xdeadbeefdeadbeefULL
| Default seed for PHILOX4x32 PRNG.
#define | ROCRAND_XORWOW_DEFAULT_SEED 0ULL
| Default seed for XORWOW PRNG.

## Functions

__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_philox4x32_10 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ uint4 | rocrand_discrete4 (rocrand_state_philox4x32_10 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns four discrete distributed unsigned int values.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_mrg31k3p *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_mrg32k3a *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_xorwow *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ unsigned int | rocrand_discrete (rocrand_state_mtgp32 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_sobol32 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_scrambled_sobol32 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_sobol64 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned long long int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_scrambled_sobol64 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned long long int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_lfsr113 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_threefry2x32_20 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_threefry2x64_20 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_threefry4x32_20 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ unsigned int | rocrand_discrete (rocrand_state_threefry4x64_20 *state, const rocrand_discrete_distribution discrete_distribution)
| Returns a discrete distributed unsigned int value.
__forceinline__ __device__ __host__ void | rocrand_init (const uint4 seed, const unsigned int subsequence, rocrand_state_lfsr113 *state)
| Initializes LFSR113 state.
__forceinline__ __device__ __host__ void | rocrand_init (const uint4 seed, const unsigned int subsequence, const unsigned long long offset, rocrand_state_lfsr113 *state)
| Initializes LFSR113 state.
__forceinline__ __device__ __host__ unsigned int | rocrand (rocrand_state_lfsr113 *state)
| Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.
__forceinline__ __device__ __host__ void | skipahead (unsigned long long offset, rocrand_state_lfsr113 *state)
| Updates LFSR113 state to skip ahead by `offset` elements.
__forceinline__ __device__ __host__ void | skipahead_subsequence (unsigned int subsequence, rocrand_state_lfsr113 *state)
| Updates LFSR113 state to skip ahead by `subsequence` subsequences.
__forceinline__ __device__ __host__ void | skipahead_sequence (unsigned int sequence, rocrand_state_lfsr113 *state)
| Updates LFSR113 state to skip ahead by `sequence` sequences.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_philox4x32_10 *state, float mean, float stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_log_normal2 (rocrand_state_philox4x32_10 *state, float mean, float stddev)
| Returns two log-normally distributed `float` values.
__forceinline__ __device__ __host__ float4 | rocrand_log_normal4 (rocrand_state_philox4x32_10 *state, float mean, float stddev)
| Returns four log-normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_philox4x32_10 *state, double mean, double stddev)
| Returns a log-normally distributed `double` values.
__forceinline__ __device__ __host__ double2 | rocrand_log_normal_double2 (rocrand_state_philox4x32_10 *state, double mean, double stddev)
| Returns two log-normally distributed `double` values.
__forceinline__ __device__ __host__ double4 | rocrand_log_normal_double4 (rocrand_state_philox4x32_10 *state, double mean, double stddev)
| Returns four log-normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_mrg31k3p *state, float mean, float stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_log_normal2 (rocrand_state_mrg31k3p *state, float mean, float stddev)
| Returns two log-normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_mrg31k3p *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_log_normal_double2 (rocrand_state_mrg31k3p *state, double mean, double stddev)
| Returns two log-normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_mrg32k3a *state, float mean, float stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_log_normal2 (rocrand_state_mrg32k3a *state, float mean, float stddev)
| Returns two log-normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_mrg32k3a *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_log_normal_double2 (rocrand_state_mrg32k3a *state, double mean, double stddev)
| Returns two log-normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_xorwow *state, float mean, float stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_log_normal2 (rocrand_state_xorwow *state, float mean, float stddev)
| Returns two log-normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_xorwow *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_log_normal_double2 (rocrand_state_xorwow *state, double mean, double stddev)
| Returns two log-normally distributed `double` values.
__forceinline__ __device__ float | rocrand_log_normal (rocrand_state_mtgp32 *state, float mean, float stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ float2 | rocrand_log_normal2 (rocrand_state_mtgp32 *state, float mean, float stddev)
| Returns two log-normally distributed `float` values.
__forceinline__ __device__ double | rocrand_log_normal_double (rocrand_state_mtgp32 *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ double2 | rocrand_log_normal_double2 (rocrand_state_mtgp32 *state, double mean, double stddev)
| Returns two log-normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_sobol32 *state, float mean, float stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_sobol32 *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_scrambled_sobol32 *state, float mean, float stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_scrambled_sobol32 *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_sobol64 *state, float mean, float stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_sobol64 *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_scrambled_sobol64 *state, float mean, float stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_scrambled_sobol64 *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_lfsr113 *state, float mean, float stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_log_normal2 (rocrand_state_lfsr113 *state, float mean, float stddev)
| Returns two log-normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_lfsr113 *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_log_normal_double2 (rocrand_state_lfsr113 *state, double mean, double stddev)
| Returns two log-normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_threefry2x32_20 *state, double mean, double stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_log_normal2 (rocrand_state_threefry2x32_20 *state, float mean, float stddev)
| Returns two log-normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_threefry2x32_20 *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_log_normal_double2 (rocrand_state_threefry2x32_20 *state, double mean, double stddev)
| Returns two log-normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_threefry2x64_20 *state, double mean, double stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_log_normal2 (rocrand_state_threefry2x64_20 *state, float mean, float stddev)
| Returns two log-normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_threefry2x64_20 *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_log_normal_double2 (rocrand_state_threefry2x64_20 *state, double mean, double stddev)
| Returns two log-normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_threefry4x32_20 *state, double mean, double stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_log_normal2 (rocrand_state_threefry4x32_20 *state, float mean, float stddev)
| Returns two log-normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_threefry4x32_20 *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_log_normal_double2 (rocrand_state_threefry4x32_20 *state, double mean, double stddev)
| Returns two log-normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_log_normal (rocrand_state_threefry4x64_20 *state, double mean, double stddev)
| Returns a log-normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_log_normal2 (rocrand_state_threefry4x64_20 *state, float mean, float stddev)
| Returns two log-normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_log_normal_double (rocrand_state_threefry4x64_20 *state, double mean, double stddev)
| Returns a log-normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_log_normal_double2 (rocrand_state_threefry4x64_20 *state, double mean, double stddev)
| Returns two log-normally distributed `double` values.
__forceinline__ __device__ __host__ void | rocrand_init (const unsigned long long seed, const unsigned long long subsequence, const unsigned long long offset, rocrand_state_mrg31k3p *state)
| Initializes MRG31K3P state.
__forceinline__ __device__ __host__ unsigned int | rocrand (rocrand_state_mrg31k3p *state)
| Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.
__forceinline__ __device__ __host__ void | skipahead (unsigned long long offset, rocrand_state_mrg31k3p *state)
| Updates MRG31K3P state to skip ahead by `offset` elements.
__forceinline__ __device__ __host__ void | skipahead_subsequence (unsigned long long subsequence, rocrand_state_mrg31k3p *state)
| Updates MRG31K3P state to skip ahead by `subsequence` subsequences.
__forceinline__ __device__ __host__ void | skipahead_sequence (unsigned long long sequence, rocrand_state_mrg31k3p *state)
| Updates MRG31K3P state to skip ahead by `sequence` sequences.
__forceinline__ __device__ __host__ void | rocrand_init (const unsigned long long seed, const unsigned long long subsequence, const unsigned long long offset, rocrand_state_mrg32k3a *state)
| Initializes MRG32K3A state.
__forceinline__ __device__ __host__ unsigned int | rocrand (rocrand_state_mrg32k3a *state)
| Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.
__forceinline__ __device__ __host__ void | skipahead (unsigned long long offset, rocrand_state_mrg32k3a *state)
| Updates MRG32K3A state to skip ahead by `offset` elements.
__forceinline__ __device__ __host__ void | skipahead_subsequence (unsigned long long subsequence, rocrand_state_mrg32k3a *state)
| Updates MRG32K3A state to skip ahead by `subsequence` subsequences.
__forceinline__ __device__ __host__ void | skipahead_sequence (unsigned long long sequence, rocrand_state_mrg32k3a *state)
| Updates MRG32K3A state to skip ahead by `sequence` sequences.
__host__ rocrand_status | rocrand_make_state_mtgp32 (rocrand_state_mtgp32 *state, mtgp32_fast_params params[], int n, unsigned long long seed)
| Initializes MTGP32 states.
__host__ rocrand_status | rocrand_make_constant (const mtgp32_fast_params params[], mtgp32_params *p)
| Loads parameters for MTGP32.
__forceinline__ __device__ unsigned int | rocrand (rocrand_state_mtgp32 *state)
| Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.
__forceinline__ __device__ void | rocrand_mtgp32_block_copy (rocrand_state_mtgp32 *src, rocrand_state_mtgp32 *dest)
| Copies MTGP32 state to another state using block of threads.
__forceinline__ __device__ void | rocrand_mtgp32_set_params (rocrand_state_mtgp32 *state, mtgp32_params *params)
| Changes parameters of a MTGP32 state.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_philox4x32_10 *state)
| Returns a normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_normal2 (rocrand_state_philox4x32_10 *state)
| Returns two normally distributed `float` values.
__forceinline__ __device__ __host__ float4 | rocrand_normal4 (rocrand_state_philox4x32_10 *state)
| Returns four normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_philox4x32_10 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_normal_double2 (rocrand_state_philox4x32_10 *state)
| Returns two normally distributed `double` values.
__forceinline__ __device__ __host__ double4 | rocrand_normal_double4 (rocrand_state_philox4x32_10 *state)
| Returns four normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_mrg31k3p *state)
| Returns a normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_normal2 (rocrand_state_mrg31k3p *state)
| Returns two normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_mrg31k3p *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_normal_double2 (rocrand_state_mrg31k3p *state)
| Returns two normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_mrg32k3a *state)
| Returns a normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_normal2 (rocrand_state_mrg32k3a *state)
| Returns two normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_mrg32k3a *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_normal_double2 (rocrand_state_mrg32k3a *state)
| Returns two normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_xorwow *state)
| Returns a normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_normal2 (rocrand_state_xorwow *state)
| Returns two normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_xorwow *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_normal_double2 (rocrand_state_xorwow *state)
| Returns two normally distributed `double` values.
__forceinline__ __device__ float | rocrand_normal (rocrand_state_mtgp32 *state)
| Returns a normally distributed `float` value.
__forceinline__ __device__ float2 | rocrand_normal2 (rocrand_state_mtgp32 *state)
| Returns two normally distributed `float` values.
__forceinline__ __device__ double | rocrand_normal_double (rocrand_state_mtgp32 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ double2 | rocrand_normal_double2 (rocrand_state_mtgp32 *state)
| Returns two normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_sobol32 *state)
| Returns a normally distributed `float` value.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_sobol32 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_scrambled_sobol32 *state)
| Returns a normally distributed `float` value.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_scrambled_sobol32 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_sobol64 *state)
| Returns a normally distributed `float` value.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_sobol64 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_scrambled_sobol64 *state)
| Returns a normally distributed `float` value.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_scrambled_sobol64 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_lfsr113 *state)
| Returns a normally distributed `float` value.
__forceinline__ __device__ __host__ float2 | rocrand_normal2 (rocrand_state_lfsr113 *state)
| Returns two normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_lfsr113 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_normal_double2 (rocrand_state_lfsr113 *state)
| Returns two normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_threefry2x32_20 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ float2 | rocrand_normal2 (rocrand_state_threefry2x32_20 *state)
| Returns two normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_threefry2x32_20 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_normal_double2 (rocrand_state_threefry2x32_20 *state)
| Returns two normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_threefry2x64_20 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ float2 | rocrand_normal2 (rocrand_state_threefry2x64_20 *state)
| Returns two normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_threefry2x64_20 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_normal_double2 (rocrand_state_threefry2x64_20 *state)
| Returns two normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_threefry4x32_20 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ float2 | rocrand_normal2 (rocrand_state_threefry4x32_20 *state)
| Returns two normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_threefry4x32_20 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_normal_double2 (rocrand_state_threefry4x32_20 *state)
| Returns two normally distributed `double` values.
__forceinline__ __device__ __host__ float | rocrand_normal (rocrand_state_threefry4x64_20 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ float2 | rocrand_normal2 (rocrand_state_threefry4x64_20 *state)
| Returns two normally distributed `float` values.
__forceinline__ __device__ __host__ double | rocrand_normal_double (rocrand_state_threefry4x64_20 *state)
| Returns a normally distributed `double` value.
__forceinline__ __device__ __host__ double2 | rocrand_normal_double2 (rocrand_state_threefry4x64_20 *state)
| Returns two normally distributed `double` values.
__forceinline__ __device__ __host__ void | rocrand_init (const unsigned long long seed, const unsigned long long subsequence, const unsigned long long offset, rocrand_state_philox4x32_10 *state)
| Initializes Philox state.
__forceinline__ __device__ __host__ unsigned int | rocrand (rocrand_state_philox4x32_10 *state)
| Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.
__forceinline__ __device__ __host__ uint4 | rocrand4 (rocrand_state_philox4x32_10 *state)
| Returns four uniformly distributed random unsigned int values from [0; 2^32 - 1] range.
__forceinline__ __device__ __host__ void | skipahead (unsigned long long offset, rocrand_state_philox4x32_10 *state)
| Updates Philox state to skip ahead by `offset` elements.
__forceinline__ __device__ __host__ void | skipahead_subsequence (unsigned long long subsequence, rocrand_state_philox4x32_10 *state)
| Updates Philox state to skip ahead by `subsequence` subsequences.
__forceinline__ __device__ __host__ void | skipahead_sequence (unsigned long long sequence, rocrand_state_philox4x32_10 *state)
| Updates Philox state to skip ahead by `sequence` sequences.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_philox4x32_10 *state, double lambda)
| Returns a Poisson-distributed unsigned int using Philox generator.
__forceinline__ __device__ __host__ uint4 | rocrand_poisson4 (rocrand_state_philox4x32_10 *state, double lambda)
| Returns four Poisson-distributed unsigned int values using Philox generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_mrg31k3p *state, double lambda)
| Returns a Poisson-distributed unsigned int using MRG31k3p generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_mrg32k3a *state, double lambda)
| Returns a Poisson-distributed unsigned int using MRG32k3a generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_xorwow *state, double lambda)
| Returns a Poisson-distributed unsigned int using XORWOW generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_mtgp32 *state, double lambda)
| Returns a Poisson-distributed unsigned int using MTGP32 generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_sobol32 *state, double lambda)
| Returns a Poisson-distributed unsigned int using SOBOL32 generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_scrambled_sobol32 *state, double lambda)
| Returns a Poisson-distributed unsigned int using SCRAMBLED_SOBOL32 generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_sobol64 *state, double lambda)
| Returns a Poisson-distributed unsigned int using SOBOL64 generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_scrambled_sobol64 *state, double lambda)
| Returns a Poisson-distributed unsigned int using SCRAMBLED_SOBOL64 generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_lfsr113 *state, double lambda)
| Returns a Poisson-distributed unsigned int using LFSR113 generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_threefry2x32_20 *state, double lambda)
| Returns a Poisson-distributed unsigned int using ThreeFry generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_threefry2x64_20 *state, double lambda)
| Returns a Poisson-distributed unsigned int using ThreeFry generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_threefry4x32_20 *state, double lambda)
| Returns a Poisson-distributed unsigned int using ThreeFry generator.
__forceinline__ __device__ __host__ unsigned int | rocrand_poisson (rocrand_state_threefry4x64_20 *state, double lambda)
| Returns a Poisson-distributed unsigned int using ThreeFry generator.
__forceinline__ __device__ __host__ void | rocrand_init (const unsigned int *vectors, const unsigned int scramble_constant, const unsigned int offset, rocrand_state_scrambled_sobol32 *state)
| Initialize scrambled_sobol32 state.
__forceinline__ __device__ __host__ unsigned int | rocrand (rocrand_state_scrambled_sobol32 *state)
| Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.
__forceinline__ __device__ __host__ void | skipahead (unsigned long long offset, rocrand_state_scrambled_sobol32 *state)
| Updates SCRAMBLED_SOBOL32 state to skip ahead by `offset` elements.
__forceinline__ __device__ __host__ void | rocrand_init (const unsigned long long int *vectors, const unsigned long long int scramble_constant, const unsigned int offset, rocrand_state_scrambled_sobol64 *state)
| Initialize scrambled_sobol64 state.
__forceinline__ __device__ __host__ unsigned long long int | rocrand (rocrand_state_scrambled_sobol64 *state)
| Returns uniformly distributed random unsigned long long int value from [0; 2^64 - 1] range.
__forceinline__ __device__ __host__ void | skipahead (unsigned long long offset, rocrand_state_scrambled_sobol64 *state)
| Updates scrambled_sobol64 state to skip ahead by `offset` elements.
__forceinline__ __device__ __host__ void | rocrand_init (const unsigned int *vectors, const unsigned int offset, rocrand_state_sobol32 *state)
| Initialize SOBOL32 state.
__forceinline__ __device__ __host__ unsigned int | rocrand (rocrand_state_sobol32 *state)
| Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.
__forceinline__ __device__ __host__ void | skipahead (unsigned long long offset, rocrand_state_sobol32 *state)
| Updates SOBOL32 state to skip ahead by `offset` elements.
__forceinline__ __device__ __host__ void | rocrand_init (const unsigned long long int *vectors, const unsigned int offset, rocrand_state_sobol64 *state)
| Initialize sobol64 state.
__forceinline__ __device__ __host__ unsigned long long int | rocrand (rocrand_state_sobol64 *state)
| Returns uniformly distributed random unsigned long long int value from [0; 2^64 - 1] range.
__forceinline__ __device__ __host__ void | skipahead (unsigned long long int offset, rocrand_state_sobol64 *state)
| Updates sobol64 state to skip ahead by `offset` elements.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_philox4x32_10 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ float2 | rocrand_uniform2 (rocrand_state_philox4x32_10 *state)
| Returns two uniformly distributed random float values from (0; 1] range.
__forceinline__ __device__ __host__ float4 | rocrand_uniform4 (rocrand_state_philox4x32_10 *state)
| Returns four uniformly distributed random float values from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_philox4x32_10 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ double2 | rocrand_uniform_double2 (rocrand_state_philox4x32_10 *state)
| Returns two uniformly distributed random double values from (0; 1] range.
__forceinline__ __device__ __host__ double4 | rocrand_uniform_double4 (rocrand_state_philox4x32_10 *state)
| Returns four uniformly distributed random double values from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_mrg31k3p *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_mrg31k3p *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_mrg32k3a *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_mrg32k3a *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_xorwow *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_xorwow *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ float | rocrand_uniform (rocrand_state_mtgp32 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ double | rocrand_uniform_double (rocrand_state_mtgp32 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_sobol32 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_sobol32 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_scrambled_sobol32 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_scrambled_sobol32 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_sobol64 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_sobol64 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_scrambled_sobol64 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_scrambled_sobol64 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_lfsr113 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_lfsr113 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_threefry2x32_20 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_threefry2x32_20 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_threefry2x64_20 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_threefry2x64_20 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_threefry4x32_20 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_threefry4x32_20 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ float | rocrand_uniform (rocrand_state_threefry4x64_20 *state)
| Returns a uniformly distributed random float value from (0; 1] range.
__forceinline__ __device__ __host__ double | rocrand_uniform_double (rocrand_state_threefry4x64_20 *state)
| Returns a uniformly distributed random double value from (0; 1] range.
__forceinline__ __device__ __host__ void | rocrand_init (const unsigned long long seed, const unsigned long long subsequence, const unsigned long long offset, rocrand_state_xorwow *state)
| Initialize XORWOW state.
__forceinline__ __device__ __host__ unsigned int | rocrand (rocrand_state_xorwow *state)
| Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.
__forceinline__ __device__ __host__ void | skipahead (unsigned long long offset, rocrand_state_xorwow *state)
| Updates XORWOW state to skip ahead by `offset` elements.
__forceinline__ __device__ __host__ void | skipahead_subsequence (unsigned long long subsequence, rocrand_state_xorwow *state)
| Updates XORWOW state to skip ahead by `subsequence` subsequences.
__forceinline__ __device__ __host__ void | skipahead_sequence (unsigned long long sequence, rocrand_state_xorwow *state)
| Updates XORWOW state to skip ahead by `sequence` sequences.

## Detailed Description

### rocRAND RNG's state types

- `rocrandStateXORWOW_t` - XORWOW PRNG state type
- `rocrandStatePhilox4_32_10_t` - PHILOX PRNG state type
- `rocrandStateMRG32k3a_t` - MRG32k3a PRNG state type
- `rocrandStateMtgp32_t` - MTGP32 PRNG state type
- `rocrandStateSobol32_t` - SOBOL32 QRNG state type

## Function Documentation

## ◆ rocrand() [1/10]

__forceinline__ __device__ __host__ unsigned int rocrand | ( | rocrand_state_lfsr113 * | state | ) |

Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.

Generates and returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range using LFSR113 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use

Returns
  Pseudorandom value (32-bit) as an unsigned int

## ◆ rocrand() [2/10]

__forceinline__ __device__ __host__ unsigned int rocrand | ( | rocrand_state_mrg31k3p * | state | ) |

Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.

Generates and returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range using MRG31K3P generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use

Returns
  Pseudorandom value (32-bit) as an unsigned int

## ◆ rocrand() [3/10]

__forceinline__ __device__ __host__ unsigned int rocrand | ( | rocrand_state_mrg32k3a * | state | ) |

Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.

Generates and returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range using MRG32K3A generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use

Returns
  Pseudorandom value (32-bit) as an unsigned int

## ◆ rocrand() [4/10]

__forceinline__ __device__ unsigned int rocrand | ( | rocrand_state_mtgp32 * | state | ) |

Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.

Generates and returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range using MTGP32 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use

Returns
  Pseudorandom value (32-bit) as an unsigned int

## ◆ rocrand() [5/10]

__forceinline__ __device__ __host__ unsigned int rocrand | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.

Generates and returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range using Philox generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use

Returns
  Pseudorandom value (32-bit) as an unsigned int

## ◆ rocrand() [6/10]

__forceinline__ __device__ __host__ unsigned int rocrand | ( | rocrand_state_scrambled_sobol32 * | state | ) |

Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.

Generates and returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range using scrambled_sobol32 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use

Returns
  Quasirandom value (32-bit) as an unsigned int

## ◆ rocrand() [7/10]

__forceinline__ __device__ __host__ unsigned long long int rocrand | ( | rocrand_state_scrambled_sobol64 * | state | ) |

Returns uniformly distributed random unsigned long long int value from [0; 2^64 - 1] range.

Generates and returns uniformly distributed random unsigned long long int value from [0; 2^64 - 1] range using scrambled_sobol64 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use

Returns
  Quasirandom value (64-bit) as an unsigned long long int

## ◆ rocrand() [8/10]

__forceinline__ __device__ __host__ unsigned int rocrand | ( | rocrand_state_sobol32 * | state | ) |

Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.

Generates and returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range using Sobol32 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use

Returns
  Quasirandom value (32-bit) as an unsigned int

## ◆ rocrand() [9/10]

__forceinline__ __device__ __host__ unsigned long long int rocrand | ( | rocrand_state_sobol64 * | state | ) |

Returns uniformly distributed random unsigned long long int value from [0; 2^64 - 1] range.

Generates and returns uniformly distributed random unsigned long long int value from [0; 2^64 - 1] range using sobol64 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use

Returns
  Quasirandom value (64-bit) as an unsigned long long int

## ◆ rocrand() [10/10]

__forceinline__ __device__ __host__ unsigned int rocrand | ( | rocrand_state_xorwow * | state | ) |

Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.

Generates and returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range using XORWOW generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use

Returns
  Pseudorandom value (32-bit) as an unsigned int

## ◆ rocrand4()

__forceinline__ __device__ __host__ uint4 rocrand4 | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns four uniformly distributed random unsigned int values from [0; 2^32 - 1] range.

Generates and returns four uniformly distributed random unsigned int values from [0; 2^32 - 1] range using Philox generator in `state`. State is incremented by four positions.

Parameters

  state | Pointer to a state to use

Returns
  Four pseudorandom values (32-bit) as an uint4

## ◆ rocrand_discrete() [1/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_lfsr113 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using LFSR113 generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [2/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_mrg31k3p * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using MRG31k3p generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [3/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_mrg32k3a * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using MRG32k3a generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [4/14]

__forceinline__ __device__ unsigned int rocrand_discrete | ( | rocrand_state_mtgp32 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using MTGP32 generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [5/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_philox4x32_10 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using Philox generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [6/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_scrambled_sobol32 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to discrete distribution `discrete_distribution` using SCRAMBLED_SOBOL32 generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [7/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_scrambled_sobol64 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned long long int value.

Returns a unsigned long long int distributed according to with discrete distribution `discrete_distribution` using SCRAMBLED_SOBOL64 generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned long long int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [8/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_sobol32 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using SOBOL32 generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [9/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_sobol64 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned long long int value.

Returns a unsigned long long int distributed according to with discrete distribution `discrete_distribution` using SOBOL64 generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned long long int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [10/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_threefry2x32_20 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using ThreeFry generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [11/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_threefry2x64_20 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using ThreeFry generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [12/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_threefry4x32_20 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using ThreeFry generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [13/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_threefry4x64_20 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using ThreeFry generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete() [14/14]

__forceinline__ __device__ __host__ unsigned int rocrand_discrete | ( | rocrand_state_xorwow * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns a discrete distributed unsigned int value.

Returns a unsigned int distributed according to with discrete distribution `discrete_distribution` using XORWOW generator in `state`, and increments the position of the generator by one.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  unsigned int value distributed according to `discrete_distribution`

## ◆ rocrand_discrete4()

__forceinline__ __device__ __host__ uint4 rocrand_discrete4 | ( | rocrand_state_philox4x32_10 * | state,
|  | const rocrand_discrete_distribution | discrete_distribution )

Returns four discrete distributed unsigned int values.

Returns four unsigned int distributed according to with discrete distribution `discrete_distribution` using Philox generator in `state`, and increments the position of the generator by four.

Parameters

  state | Pointer to a state to use
  discrete_distribution | Related discrete distribution

Returns
  Four unsigned int values distributed according to `discrete_distribution` as `uint4`

## ◆ rocrand_init() [1/10]

__forceinline__ __device__ __host__ void rocrand_init | ( | const uint4 | seed,
|  | const unsigned int | subsequence,
|  | const unsigned long long | offset,
|  | rocrand_state_lfsr113 * | state )

Initializes LFSR113 state.

Initializes the LFSR113 generator `state` with the given `seed`, `subsequence`, and `offset`.

Parameters

  seed | Value to use as a seed
  subsequence | Subsequence to start at
  offset | Absolute offset into subsequence
  state | Pointer to state to initialize

## ◆ rocrand_init() [2/10]

__forceinline__ __device__ __host__ void rocrand_init | ( | const uint4 | seed,
|  | const unsigned int | subsequence,
|  | rocrand_state_lfsr113 * | state )

Initializes LFSR113 state.

Initializes the LFSR113 generator `state` with the given `seed`, `subsequence`, and `offset`.

Parameters

  seed | Value to use as a seed
  subsequence | Subsequence to start at
  state | Pointer to state to initialize

## ◆ rocrand_init() [3/10]

__forceinline__ __device__ __host__ void rocrand_init | ( | const unsigned int * | vectors,
|  | const unsigned int | offset,
|  | rocrand_state_sobol32 * | state )

Initialize SOBOL32 state.

Initializes the SOBOL32 generator `state` with the given direction `vectors` and `offset`.

Parameters

  vectors | Direction vectors
  offset | Absolute offset into sequence
  state | Pointer to state to initialize

## ◆ rocrand_init() [4/10]

__forceinline__ __device__ __host__ void rocrand_init | ( | const unsigned int * | vectors,
|  | const unsigned int | scramble_constant,
|  | const unsigned int | offset,
|  | rocrand_state_scrambled_sobol32 * | state )

Initialize scrambled_sobol32 state.

Initializes the scrambled_sobol32 generator `state` with the given direction `vectors` and `offset`.

Parameters

  vectors | Direction vectors
  scramble_constant | Constant used for scrambling the sequence
  offset | Absolute offset into sequence
  state | Pointer to state to initialize

## ◆ rocrand_init() [5/10]

__forceinline__ __device__ __host__ void rocrand_init | ( | const unsigned long long int * | vectors,
|  | const unsigned int | offset,
|  | rocrand_state_sobol64 * | state )

Initialize sobol64 state.

Initializes the sobol64 generator `state` with the given direction `vectors` and `offset`.

Parameters

  vectors | Direction vectors
  offset | Absolute offset into sequence
  state | Pointer to state to initialize

## ◆ rocrand_init() [6/10]

__forceinline__ __device__ __host__ void rocrand_init | ( | const unsigned long long int * | vectors,
|  | const unsigned long long int | scramble_constant,
|  | const unsigned int | offset,
|  | rocrand_state_scrambled_sobol64 * | state )

Initialize scrambled_sobol64 state.

Initializes the scrambled_sobol64 generator `state` with the given direction `vectors` and `offset`.

Parameters

  vectors | Direction vectors
  scramble_constant | Constant used for scrambling the sequence
  offset | Absolute offset into sequence
  state | Pointer to state to initialize

## ◆ rocrand_init() [7/10]

__forceinline__ __device__ __host__ void rocrand_init | ( | const unsigned long long | seed,
|  | const unsigned long long | subsequence,
|  | const unsigned long long | offset,
|  | rocrand_state_mrg31k3p * | state )

Initializes MRG31K3P state.

Initializes the MRG31K3P generator `state` with the given `seed`, `subsequence`, and `offset`.

Parameters

  seed | Value to use as a seed
  subsequence | Subsequence to start at
  offset | Absolute offset into subsequence
  state | Pointer to state to initialize

## ◆ rocrand_init() [8/10]

__forceinline__ __device__ __host__ void rocrand_init | ( | const unsigned long long | seed,
|  | const unsigned long long | subsequence,
|  | const unsigned long long | offset,
|  | rocrand_state_mrg32k3a * | state )

Initializes MRG32K3A state.

Initializes the MRG32K3A generator `state` with the given `seed`, `subsequence`, and `offset`.

Parameters

  seed | Value to use as a seed
  subsequence | Subsequence to start at
  offset | Absolute offset into subsequence
  state | Pointer to state to initialize

## ◆ rocrand_init() [9/10]

__forceinline__ __device__ __host__ void rocrand_init | ( | const unsigned long long | seed,
|  | const unsigned long long | subsequence,
|  | const unsigned long long | offset,
|  | rocrand_state_philox4x32_10 * | state )

Initializes Philox state.

Initializes the Philox generator `state` with the given `seed`, `subsequence`, and `offset`.

Parameters

  seed | Value to use as a seed
  subsequence | Subsequence to start at
  offset | Absolute offset into subsequence
  state | Pointer to state to initialize

## ◆ rocrand_init() [10/10]

__forceinline__ __device__ __host__ void rocrand_init | ( | const unsigned long long | seed,
|  | const unsigned long long | subsequence,
|  | const unsigned long long | offset,
|  | rocrand_state_xorwow * | state )

Initialize XORWOW state.

Initializes the XORWOW generator `state` with the given `seed`, `subsequence`, and `offset`.

Parameters

  seed | Value to use as a seed
  subsequence | Subsequence to start at
  offset | Absolute offset into subsequence
  state | Pointer to state to initialize

## ◆ rocrand_log_normal() [1/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_lfsr113 * | state,
|  | float | mean,
|  | float | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using LFSR113 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [2/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_mrg31k3p * | state,
|  | float | mean,
|  | float | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using MRG31k3p generator in `state`, and increments position of the generator by one. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [3/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_mrg32k3a * | state,
|  | float | mean,
|  | float | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using MRG32k3a generator in `state`, and increments position of the generator by one. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [4/14]

__forceinline__ __device__ float rocrand_log_normal | ( | rocrand_state_mtgp32 * | state,
|  | float | mean,
|  | float | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using MTGP32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [5/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_philox4x32_10 * | state,
|  | float | mean,
|  | float | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using Philox generator in `state`, and increments position of the generator by one. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [6/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_scrambled_sobol32 * | state,
|  | float | mean,
|  | float | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using SCRAMBLED_SOBOL32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [7/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_scrambled_sobol64 * | state,
|  | float | mean,
|  | float | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using SCRAMBLED_SOBOL64 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [8/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_sobol32 * | state,
|  | float | mean,
|  | float | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using SOBOL32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [9/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_sobol64 * | state,
|  | float | mean,
|  | float | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using SOBOL64 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [10/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_threefry2x32_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using Threefry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [11/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_threefry2x64_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using Threefry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [12/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_threefry4x32_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using Threefry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [13/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_threefry4x64_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using Threefry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal() [14/14]

__forceinline__ __device__ __host__ float rocrand_log_normal | ( | rocrand_state_xorwow * | state,
|  | float | mean,
|  | float | stddev )

Returns a log-normally distributed `float` value.

Generates and returns a log-normally distributed `float` value using XORWOW generator in `state`, and increments position of the generator by one. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `float` value

## ◆ rocrand_log_normal2() [1/10]

__forceinline__ __device__ __host__ float2 rocrand_log_normal2 | ( | rocrand_state_lfsr113 * | state,
|  | float | mean,
|  | float | stddev )

Returns two log-normally distributed `float` values.

Generates and returns two log-normally distributed `float` values using LFSR113 generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `float` value as `float2`

## ◆ rocrand_log_normal2() [2/10]

__forceinline__ __device__ __host__ float2 rocrand_log_normal2 | ( | rocrand_state_mrg31k3p * | state,
|  | float | mean,
|  | float | stddev )

Returns two log-normally distributed `float` values.

Generates and returns two log-normally distributed `float` values using MRG31k3p generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `float` value as `float2`

## ◆ rocrand_log_normal2() [3/10]

__forceinline__ __device__ __host__ float2 rocrand_log_normal2 | ( | rocrand_state_mrg32k3a * | state,
|  | float | mean,
|  | float | stddev )

Returns two log-normally distributed `float` values.

Generates and returns two log-normally distributed `float` values using MRG32k3a generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `float` value as `float2`

## ◆ rocrand_log_normal2() [4/10]

__forceinline__ __device__ float2 rocrand_log_normal2 | ( | rocrand_state_mtgp32 * | state,
|  | float | mean,
|  | float | stddev )

Returns two log-normally distributed `float` values.

Generates and returns two log-normally distributed `float` values using MTGP32 generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `float` value as `float2`

## ◆ rocrand_log_normal2() [5/10]

__forceinline__ __device__ __host__ float2 rocrand_log_normal2 | ( | rocrand_state_philox4x32_10 * | state,
|  | float | mean,
|  | float | stddev )

Returns two log-normally distributed `float` values.

Generates and returns two log-normally distributed `float` values using Philox generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `float` value as `float2`

## ◆ rocrand_log_normal2() [6/10]

__forceinline__ __device__ __host__ float2 rocrand_log_normal2 | ( | rocrand_state_threefry2x32_20 * | state,
|  | float | mean,
|  | float | stddev )

Returns two log-normally distributed `float` values.

Generates and returns two log-normally distributed `float` values using Threefry generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `float` value as `float2`

## ◆ rocrand_log_normal2() [7/10]

__forceinline__ __device__ __host__ float2 rocrand_log_normal2 | ( | rocrand_state_threefry2x64_20 * | state,
|  | float | mean,
|  | float | stddev )

Returns two log-normally distributed `float` values.

Generates and returns two log-normally distributed `float` values using Threefry generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `float` value as `float2`

## ◆ rocrand_log_normal2() [8/10]

__forceinline__ __device__ __host__ float2 rocrand_log_normal2 | ( | rocrand_state_threefry4x32_20 * | state,
|  | float | mean,
|  | float | stddev )

Returns two log-normally distributed `float` values.

Generates and returns two log-normally distributed `float` values using Threefry generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `float` value as `float2`

## ◆ rocrand_log_normal2() [9/10]

__forceinline__ __device__ __host__ float2 rocrand_log_normal2 | ( | rocrand_state_threefry4x64_20 * | state,
|  | float | mean,
|  | float | stddev )

Returns two log-normally distributed `float` values.

Generates and returns two log-normally distributed `float` values using Threefry generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `float` value as `float2`

## ◆ rocrand_log_normal2() [10/10]

__forceinline__ __device__ __host__ float2 rocrand_log_normal2 | ( | rocrand_state_xorwow * | state,
|  | float | mean,
|  | float | stddev )

Returns two log-normally distributed `float` values.

Generates and returns two log-normally distributed `float` values using XORWOW generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `float` value as `float2`

## ◆ rocrand_log_normal4()

__forceinline__ __device__ __host__ float4 rocrand_log_normal4 | ( | rocrand_state_philox4x32_10 * | state,
|  | float | mean,
|  | float | stddev )

Returns four log-normally distributed `float` values.

Generates and returns four log-normally distributed `float` values using Philox generator in `state`, and increments position of the generator by four. The function uses the Box-Muller transform method to generate four normally distributed values, transforms them to log-normally distributed values, and returns them.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Four log-normally distributed `float` value as `float4`

## ◆ rocrand_log_normal_double() [1/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_lfsr113 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using LFSR113 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [2/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_mrg31k3p * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using MRG31k3p generator in `state`, and increments position of the generator by one. The function uses the Box-Muller transform method to generate two normally distributed `double` values, transforms them to log-normally distributed `double` values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [3/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_mrg32k3a * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using MRG32k3a generator in `state`, and increments position of the generator by one. The function uses the Box-Muller transform method to generate two normally distributed `double` values, transforms them to log-normally distributed `double` values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [4/14]

__forceinline__ __device__ double rocrand_log_normal_double | ( | rocrand_state_mtgp32 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using MTGP32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [5/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_philox4x32_10 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` values.

Generates and returns a log-normally distributed `double` value using Philox generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed `double` values, transforms them to log-normally distributed `double` values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [6/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_scrambled_sobol32 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using SCRAMBLED_SOBOL32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [7/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_scrambled_sobol64 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using SCRAMBLED_SOBOL64 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [8/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_sobol32 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using SOBOL32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [9/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_sobol64 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using SOBOL64 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [10/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_threefry2x32_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using Threefry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [11/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_threefry2x64_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using Threefry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [12/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_threefry4x32_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using Threefry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [13/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_threefry4x64_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using Threefry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double() [14/14]

__forceinline__ __device__ __host__ double rocrand_log_normal_double | ( | rocrand_state_xorwow * | state,
|  | double | mean,
|  | double | stddev )

Returns a log-normally distributed `double` value.

Generates and returns a log-normally distributed `double` value using XORWOW generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed `double` values, transforms them to log-normally distributed `double` values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Log-normally distributed `double` value

## ◆ rocrand_log_normal_double2() [1/10]

__forceinline__ __device__ __host__ double2 rocrand_log_normal_double2 | ( | rocrand_state_lfsr113 * | state,
|  | double | mean,
|  | double | stddev )

Returns two log-normally distributed `double` values.

Generates and returns two log-normally distributed `double` values using LFSR113 generator in `state`, and increments position of the generator by four. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `double` values as `double2`

## ◆ rocrand_log_normal_double2() [2/10]

__forceinline__ __device__ __host__ double2 rocrand_log_normal_double2 | ( | rocrand_state_mrg31k3p * | state,
|  | double | mean,
|  | double | stddev )

Returns two log-normally distributed `double` values.

Generates and returns two log-normally distributed `double` values using MRG31k3p generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `double` values as `double2`

## ◆ rocrand_log_normal_double2() [3/10]

__forceinline__ __device__ __host__ double2 rocrand_log_normal_double2 | ( | rocrand_state_mrg32k3a * | state,
|  | double | mean,
|  | double | stddev )

Returns two log-normally distributed `double` values.

Generates and returns two log-normally distributed `double` values using MRG32k3a generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `double` values as `double2`

## ◆ rocrand_log_normal_double2() [4/10]

__forceinline__ __device__ double2 rocrand_log_normal_double2 | ( | rocrand_state_mtgp32 * | state,
|  | double | mean,
|  | double | stddev )

Returns two log-normally distributed `double` values.

Generates and returns two log-normally distributed `double` values using MTGP32 generator in `state`, and increments position of the generator by four. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `double` values as `double2`

## ◆ rocrand_log_normal_double2() [5/10]

__forceinline__ __device__ __host__ double2 rocrand_log_normal_double2 | ( | rocrand_state_philox4x32_10 * | state,
|  | double | mean,
|  | double | stddev )

Returns two log-normally distributed `double` values.

Generates and returns two log-normally distributed `double` values using Philox generator in `state`, and increments position of the generator by four. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `double` values as `double2`

## ◆ rocrand_log_normal_double2() [6/10]

__forceinline__ __device__ __host__ double2 rocrand_log_normal_double2 | ( | rocrand_state_threefry2x32_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns two log-normally distributed `double` values.

Generates and returns two log-normally distributed `double` values using Threefry generator in `state`, and increments position of the generator by four. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `double` values as `double2`

## ◆ rocrand_log_normal_double2() [7/10]

__forceinline__ __device__ __host__ double2 rocrand_log_normal_double2 | ( | rocrand_state_threefry2x64_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns two log-normally distributed `double` values.

Generates and returns two log-normally distributed `double` values using Threefry generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `double` values as `double2`

## ◆ rocrand_log_normal_double2() [8/10]

__forceinline__ __device__ __host__ double2 rocrand_log_normal_double2 | ( | rocrand_state_threefry4x32_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns two log-normally distributed `double` values.

Generates and returns two log-normally distributed `double` values using Threefry generator in `state`, and increments position of the generator by four. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `double` values as `double2`

## ◆ rocrand_log_normal_double2() [9/10]

__forceinline__ __device__ __host__ double2 rocrand_log_normal_double2 | ( | rocrand_state_threefry4x64_20 * | state,
|  | double | mean,
|  | double | stddev )

Returns two log-normally distributed `double` values.

Generates and returns two log-normally distributed `double` values using Threefry generator in `state`, and increments position of the generator by two. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `double` values as `double2`

## ◆ rocrand_log_normal_double2() [10/10]

__forceinline__ __device__ __host__ double2 rocrand_log_normal_double2 | ( | rocrand_state_xorwow * | state,
|  | double | mean,
|  | double | stddev )

Returns two log-normally distributed `double` values.

Generates and returns two log-normally distributed `double` values using XORWOW generator in `state`, and increments position of the generator by four. The function uses the Box-Muller transform method to generate two normally distributed values, transforms them to log-normally distributed values, and returns both.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Two log-normally distributed `double` values as `double2`

## ◆ rocrand_log_normal_double4()

__forceinline__ __device__ __host__ double4 rocrand_log_normal_double4 | ( | rocrand_state_philox4x32_10 * | state,
|  | double | mean,
|  | double | stddev )

Returns four log-normally distributed `double` values.

Generates and returns four log-normally distributed `double` values using Philox generator in `state`, and increments position of the generator by eight. The function uses the Box-Muller transform method to generate four normally distributed values, transforms them to log-normally distributed values, and returns them.

Parameters

  state | Pointer to a state to use
  mean | Mean of the related log-normal distribution
  stddev | Standard deviation of the related log-normal distribution

Returns
  Four log-normally distributed `double` values as `double4`

## ◆ rocrand_make_constant()

__host__ rocrand_status rocrand_make_constant | ( | const mtgp32_fast_params | params[],
|  | mtgp32_params * | p )

inline

Loads parameters for MTGP32.

Loads parameters for use by kernel functions on the host-side and copies the results to the specified location in device memory.

NOTE: Not used as rocrand_make_state_mtgp32 handles loading parameters into state.

Parameters

  params | Pointer to an array of type mtgp32_fast_params in host memory
  p | Pointer to a mtgp32_params structure allocated in device memory

Returns
  - ROCRAND_STATUS_ALLOCATION_FAILED if parameters could not be loaded
  - ROCRAND_STATUS_SUCCESS if parameters are loaded

## ◆ rocrand_make_state_mtgp32()

__host__ rocrand_status rocrand_make_state_mtgp32 | ( | rocrand_state_mtgp32 * | state,
|  | mtgp32_fast_params | params[],
|  | int | n,
|  | unsigned long long | seed )

inline

Initializes MTGP32 states.

Initializes MTGP32 states on the host-side by allocating a state array in host memory, initializes that array, and copies the result to device or host memory.

Parameters

  state | Pointer to an array of states in device or host memory
  params | Pointer to an array of type mtgp32_fast_params in host memory
  n | Number of states to initialize
  seed | Seed value

Returns
  - ROCRAND_STATUS_ALLOCATION_FAILED if states could not be initialized
  - ROCRAND_STATUS_SUCCESS if states are initialized

## ◆ rocrand_mtgp32_block_copy()

__forceinline__ __device__ void rocrand_mtgp32_block_copy | ( | rocrand_state_mtgp32 * | src,
|  | rocrand_state_mtgp32 * | dest )

Copies MTGP32 state to another state using block of threads.

Copies a MTGP32 state `src` to `dest` using a block of threads efficiently. Example usage would be:

__global__
void generate_kernel(rocrand_state_mtgp32 * states, unsigned int * output, const size_t size)
{
const unsigned int state_id = blockIdx.x;
unsigned int index = blockIdx.x * blockDim.x + threadIdx.x;
unsigned int stride = gridDim.x * blockDim.x;
__shared__ GeneratorState state;
rocrand_mtgp32_block_copy(&states[state_id], &state);
while(index < size)
{
output[index] = rocrand(&state);
index += stride;
}
rocrand_mtgp32_block_copy(&state, &states[state_id]);
}
rocrand_mtgp32_block_copy
__forceinline__ __device__ void rocrand_mtgp32_block_copy(rocrand_state_mtgp32 *src, rocrand_state_mtgp32 *dest)
Copies MTGP32 state to another state using block of threads.
Definition rocrand_mtgp32.h:536
rocrand
__forceinline__ __device__ __host__ unsigned int rocrand(rocrand_state_lfsr113 *state)
Returns uniformly distributed random unsigned int value from [0; 2^32 - 1] range.
Definition rocrand_lfsr113.h:277

Parameters

  src | Pointer to a state to copy from
  dest | Pointer to a state to copy to

## ◆ rocrand_mtgp32_set_params()

__forceinline__ __device__ void rocrand_mtgp32_set_params | ( | rocrand_state_mtgp32 * | state,
|  | mtgp32_params * | params )

Changes parameters of a MTGP32 state.

Parameters

  state | Pointer to a MTGP32 state
  params | Pointer to new parameters

## ◆ rocrand_normal() [1/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_lfsr113 * | state | ) |

Returns a normally distributed `float` value.

Generates and returns a normally distributed `float` value using LFSR113 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [2/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_mrg31k3p * | state | ) |

Returns a normally distributed `float` value.

Generates and returns a normally distributed `float` value using MRG31k3p generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [3/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_mrg32k3a * | state | ) |

Returns a normally distributed `float` value.

Generates and returns a normally distributed `float` value using MRG32k3a generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [4/14]

__forceinline__ __device__ float rocrand_normal | ( | rocrand_state_mtgp32 * | state | ) |

Returns a normally distributed `float` value.

Generates and returns a normally distributed `float` value using MTGP32 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [5/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns a normally distributed `float` value.

Generates and returns a normally distributed `float` value using Philox generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [6/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_scrambled_sobol32 * | state | ) |

Returns a normally distributed `float` value.

Generates and returns a normally distributed `float` value using SCRAMBLED_SOBOL32 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [7/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_scrambled_sobol64 * | state | ) |

Returns a normally distributed `float` value.

Generates and returns a normally distributed `float` value using SCRAMBLED_SOBOL64 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [8/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_sobol32 * | state | ) |

Returns a normally distributed `float` value.

Generates and returns a normally distributed `float` value using SOBOL32 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [9/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_sobol64 * | state | ) |

Returns a normally distributed `float` value.

Generates and returns a normally distributed `float` value using SOBOL64 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [10/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_threefry2x32_20 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `float` value using ThreeFry generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [11/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_threefry2x64_20 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `float` value using ThreeFry generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [12/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_threefry4x32_20 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `float` value using ThreeFry generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [13/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_threefry4x64_20 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `float` value using ThreeFry generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal() [14/14]

__forceinline__ __device__ __host__ float rocrand_normal | ( | rocrand_state_xorwow * | state | ) |

Returns a normally distributed `float` value.

Generates and returns a normally distributed `float` value using XORWOW generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `float` value

## ◆ rocrand_normal2() [1/10]

__forceinline__ __device__ __host__ float2 rocrand_normal2 | ( | rocrand_state_lfsr113 * | state | ) |

Returns two normally distributed `float` values.

Generates and returns two normally distributed `float` values using LFSR113 generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `float` value as `float2`

## ◆ rocrand_normal2() [2/10]

__forceinline__ __device__ __host__ float2 rocrand_normal2 | ( | rocrand_state_mrg31k3p * | state | ) |

Returns two normally distributed `float` values.

Generates and returns two normally distributed `float` values using MRG31k3p generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `float` value as `float2`

## ◆ rocrand_normal2() [3/10]

__forceinline__ __device__ __host__ float2 rocrand_normal2 | ( | rocrand_state_mrg32k3a * | state | ) |

Returns two normally distributed `float` values.

Generates and returns two normally distributed `float` values using MRG32k3a generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `float` value as `float2`

## ◆ rocrand_normal2() [4/10]

__forceinline__ __device__ float2 rocrand_normal2 | ( | rocrand_state_mtgp32 * | state | ) |

Returns two normally distributed `float` values.

Generates and returns two normally distributed `float` values using MTGP32 generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `float` values as `float2`

## ◆ rocrand_normal2() [5/10]

__forceinline__ __device__ __host__ float2 rocrand_normal2 | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns two normally distributed `float` values.

Generates and returns two normally distributed `float` values using Philox generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `float` value as `float2`

## ◆ rocrand_normal2() [6/10]

__forceinline__ __device__ __host__ float2 rocrand_normal2 | ( | rocrand_state_threefry2x32_20 * | state | ) |

Returns two normally distributed `float` values.

Generates and returns two normally distributed `float` values using ThreeFry generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `float` value as `float2`

## ◆ rocrand_normal2() [7/10]

__forceinline__ __device__ __host__ float2 rocrand_normal2 | ( | rocrand_state_threefry2x64_20 * | state | ) |

Returns two normally distributed `float` values.

Generates and returns two normally distributed `float` values using ThreeFry generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `float` value as `float2`

## ◆ rocrand_normal2() [8/10]

__forceinline__ __device__ __host__ float2 rocrand_normal2 | ( | rocrand_state_threefry4x32_20 * | state | ) |

Returns two normally distributed `float` values.

Generates and returns two normally distributed `float` values using ThreeFry generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `float` value as `float2`

## ◆ rocrand_normal2() [9/10]

__forceinline__ __device__ __host__ float2 rocrand_normal2 | ( | rocrand_state_threefry4x64_20 * | state | ) |

Returns two normally distributed `float` values.

Generates and returns two normally distributed `float` values using ThreeFry generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `float` value as `float2`

## ◆ rocrand_normal2() [10/10]

__forceinline__ __device__ __host__ float2 rocrand_normal2 | ( | rocrand_state_xorwow * | state | ) |

Returns two normally distributed `float` values.

Generates and returns two normally distributed `float` values using XORWOW generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `float` values as `float2`

## ◆ rocrand_normal4()

__forceinline__ __device__ __host__ float4 rocrand_normal4 | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns four normally distributed `float` values.

Generates and returns four normally distributed `float` values using Philox generator in `state`, and increments position of the generator by four. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate four normally distributed values, and returns them.

Parameters

  state | Pointer to a state to use

Returns
  Four normally distributed `float` value as `float4`

## ◆ rocrand_normal_double() [1/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_lfsr113 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using LFSR113 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [2/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_mrg31k3p * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using MRG31k3p generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [3/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_mrg32k3a * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using MRG32k3a generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [4/14]

__forceinline__ __device__ double rocrand_normal_double | ( | rocrand_state_mtgp32 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using MTGP32 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [5/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using Philox generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [6/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_scrambled_sobol32 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using SCRAMBLED_SOBOL32 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [7/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_scrambled_sobol64 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using SCRAMBLED_SOBOL64 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [8/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_sobol32 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using SOBOL32 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [9/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_sobol64 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using SOBOL64 generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [10/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_threefry2x32_20 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using ThreeFry generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [11/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_threefry2x64_20 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using ThreeFry generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [12/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_threefry4x32_20 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using ThreeFry generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [13/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_threefry4x64_20 * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using ThreeFry generator in `state`, and increments position of the generator by one. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double() [14/14]

__forceinline__ __device__ __host__ double rocrand_normal_double | ( | rocrand_state_xorwow * | state | ) |

Returns a normally distributed `double` value.

Generates and returns a normally distributed `double` value using XORWOW generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, returns first of them, and saves the second to be returned on the next call.

Parameters

  state | Pointer to a state to use

Returns
  Normally distributed `double` value

## ◆ rocrand_normal_double2() [1/10]

__forceinline__ __device__ __host__ double2 rocrand_normal_double2 | ( | rocrand_state_lfsr113 * | state | ) |

Returns two normally distributed `double` values.

Generates and returns two normally distributed `double` values using LFSR113 generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `double` value as `double2`

## ◆ rocrand_normal_double2() [2/10]

__forceinline__ __device__ __host__ double2 rocrand_normal_double2 | ( | rocrand_state_mrg31k3p * | state | ) |

Returns two normally distributed `double` values.

Generates and returns two normally distributed `double` values using MRG31k3p generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `double` value as `double2`

## ◆ rocrand_normal_double2() [3/10]

__forceinline__ __device__ __host__ double2 rocrand_normal_double2 | ( | rocrand_state_mrg32k3a * | state | ) |

Returns two normally distributed `double` values.

Generates and returns two normally distributed `double` values using MRG32k3a generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `double` value as `double2`

## ◆ rocrand_normal_double2() [4/10]

__forceinline__ __device__ double2 rocrand_normal_double2 | ( | rocrand_state_mtgp32 * | state | ) |

Returns two normally distributed `double` values.

Generates and returns two normally distributed `double` values using MTGP32 generator in `state`, and increments position of the generator by four. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `double` value as `double2`

## ◆ rocrand_normal_double2() [5/10]

__forceinline__ __device__ __host__ double2 rocrand_normal_double2 | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns two normally distributed `double` values.

Generates and returns two normally distributed `double` values using Philox generator in `state`, and increments position of the generator by four. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `double` values as `double2`

## ◆ rocrand_normal_double2() [6/10]

__forceinline__ __device__ __host__ double2 rocrand_normal_double2 | ( | rocrand_state_threefry2x32_20 * | state | ) |

Returns two normally distributed `double` values.

Generates and returns two normally distributed `double` values using ThreeFry generator in `state`, and increments position of the generator by four. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `double` value as `double2`

## ◆ rocrand_normal_double2() [7/10]

__forceinline__ __device__ __host__ double2 rocrand_normal_double2 | ( | rocrand_state_threefry2x64_20 * | state | ) |

Returns two normally distributed `double` values.

Generates and returns two normally distributed `double` values using ThreeFry generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `double` value as `double2`

## ◆ rocrand_normal_double2() [8/10]

__forceinline__ __device__ __host__ double2 rocrand_normal_double2 | ( | rocrand_state_threefry4x32_20 * | state | ) |

Returns two normally distributed `double` values.

Generates and returns two normally distributed `double` values using ThreeFry generator in `state`, and increments position of the generator by four. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `double` value as `double2`

## ◆ rocrand_normal_double2() [9/10]

__forceinline__ __device__ __host__ double2 rocrand_normal_double2 | ( | rocrand_state_threefry4x64_20 * | state | ) |

Returns two normally distributed `double` values.

Generates and returns two normally distributed `double` values using ThreeFry generator in `state`, and increments position of the generator by two. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `double` value as `double2`

## ◆ rocrand_normal_double2() [10/10]

__forceinline__ __device__ __host__ double2 rocrand_normal_double2 | ( | rocrand_state_xorwow * | state | ) |

Returns two normally distributed `double` values.

Generates and returns two normally distributed `double` values using XORWOW generator in `state`, and increments position of the generator by four. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate two normally distributed values, and returns both of them.

Parameters

  state | Pointer to a state to use

Returns
  Two normally distributed `double` value as `double2`

## ◆ rocrand_normal_double4()

__forceinline__ __device__ __host__ double4 rocrand_normal_double4 | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns four normally distributed `double` values.

Generates and returns four normally distributed `double` values using Philox generator in `state`, and increments position of the generator by eight. Used normal distribution has mean value equal to 0.0f, and standard deviation equal to 1.0f. The function uses the Box-Muller transform method to generate four normally distributed values, and returns them.

Parameters

  state | Pointer to a state to use

Returns
  Four normally distributed `double` values as `double4`

## ◆ rocrand_poisson() [1/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_lfsr113 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using LFSR113 generator.

Generates and returns Poisson-distributed distributed random unsigned int values using LFSR113 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [2/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_mrg31k3p * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using MRG31k3p generator.

Generates and returns Poisson-distributed distributed random unsigned int values using MRG31k3p generator in `state`. State is incremented by a variable amount.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [3/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_mrg32k3a * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using MRG32k3a generator.

Generates and returns Poisson-distributed distributed random unsigned int values using MRG32k3a generator in `state`. State is incremented by a variable amount.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [4/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_mtgp32 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using MTGP32 generator.

Generates and returns Poisson-distributed distributed random unsigned int values using MTGP32 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [5/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_philox4x32_10 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using Philox generator.

Generates and returns Poisson-distributed distributed random unsigned int values using Philox generator in `state`. State is incremented by a variable amount.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [6/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_scrambled_sobol32 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using SCRAMBLED_SOBOL32 generator.

Generates and returns Poisson-distributed distributed random unsigned int values using SCRAMBLED_SOBOL32 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [7/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_scrambled_sobol64 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using SCRAMBLED_SOBOL64 generator.

Generates and returns Poisson-distributed distributed random unsigned int values using SCRAMBLED_SOBOL64 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [8/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_sobol32 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using SOBOL32 generator.

Generates and returns Poisson-distributed distributed random unsigned int values using SOBOL32 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [9/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_sobol64 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using SOBOL64 generator.

Generates and returns Poisson-distributed distributed random unsigned int values using SOBOL64 generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [10/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_threefry2x32_20 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using ThreeFry generator.

Generates and returns Poisson-distributed distributed random unsigned int values using ThreeFry generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [11/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_threefry2x64_20 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using ThreeFry generator.

Generates and returns Poisson-distributed distributed random unsigned int values using ThreeFry generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [12/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_threefry4x32_20 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using ThreeFry generator.

Generates and returns Poisson-distributed distributed random unsigned int values using ThreeFry generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [13/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_threefry4x64_20 * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using ThreeFry generator.

Generates and returns Poisson-distributed distributed random unsigned int values using ThreeFry generator in `state`. State is incremented by one position.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson() [14/14]

__forceinline__ __device__ __host__ unsigned int rocrand_poisson | ( | rocrand_state_xorwow * | state,
|  | double | lambda )

Returns a Poisson-distributed unsigned int using XORWOW generator.

Generates and returns Poisson-distributed distributed random unsigned int values using XORWOW generator in `state`. State is incremented by a variable amount.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Poisson-distributed unsigned int

## ◆ rocrand_poisson4()

__forceinline__ __device__ __host__ uint4 rocrand_poisson4 | ( | rocrand_state_philox4x32_10 * | state,
|  | double | lambda )

Returns four Poisson-distributed unsigned int values using Philox generator.

Generates and returns Poisson-distributed distributed random unsigned int values using Philox generator in `state`. State is incremented by a variable amount.

Parameters

  state | Pointer to a state to use
  lambda | Lambda parameter of the Poisson distribution

Returns
  Four Poisson-distributed unsigned int values as `uint4`

## ◆ rocrand_uniform() [1/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_lfsr113 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0f`, including `1.0f`) using LFSR113 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [2/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_mrg31k3p * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0f`, including `1.0f`) using MRG31K3P generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [3/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_mrg32k3a * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0f`, including `1.0f`) using MRG32K3A generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [4/14]

__forceinline__ __device__ float rocrand_uniform | ( | rocrand_state_mtgp32 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0f`, including `1.0f`) using MTGP32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [5/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0f`, including `1.0f`) using Philox generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [6/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_scrambled_sobol32 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0f`, including `1.0f`) using SCRAMBLED_SOBOL32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [7/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_scrambled_sobol64 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0`, including `1.0`) using SCRAMBLED_SOBOL64 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [8/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_sobol32 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0f`, including `1.0f`) using SOBOL32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [9/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_sobol64 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0`, including `1.0`) using SOBOL64 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [10/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_threefry2x32_20 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0`, including `1.0`) using ThreeFry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [11/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_threefry2x64_20 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0`, including `1.0`) using ThreeFry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [12/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_threefry4x32_20 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0`, including `1.0`) using ThreeFry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [13/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_threefry4x64_20 * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0`, including `1.0`) using ThreeFry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform() [14/14]

__forceinline__ __device__ __host__ float rocrand_uniform | ( | rocrand_state_xorwow * | state | ) |

Returns a uniformly distributed random float value from (0; 1] range.

Generates and returns a uniformly distributed `float` value from (0; 1] range (excluding `0.0f`, including `1.0f`) using XORWOW generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `float` value from (0; 1] range.

## ◆ rocrand_uniform2()

__forceinline__ __device__ __host__ float2 rocrand_uniform2 | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns two uniformly distributed random float values from (0; 1] range.

Generates and returns two uniformly distributed `float` values from (0; 1] range (excluding `0.0f`, including `1.0f`) using Philox generator in `state`, and increments position of the generator by two.

Parameters

  state | Pointer to a state to use

Returns
  Two uniformly distributed `float` values from (0; 1] range as `float2`.

## ◆ rocrand_uniform4()

__forceinline__ __device__ __host__ float4 rocrand_uniform4 | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns four uniformly distributed random float values from (0; 1] range.

Generates and returns four uniformly distributed `float` values from (0; 1] range (excluding `0.0f`, including `1.0f`) using Philox generator in `state`, and increments position of the generator by four.

Parameters

  state | Pointer to a state to use

Returns
  Four uniformly distributed `float` values from (0; 1] range as `float4`.

## ◆ rocrand_uniform_double() [1/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_lfsr113 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using LFSR113 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Note: In this implementation returned `double` value is generated from only 32 random bits (one unsigned int value).

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [2/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_mrg31k3p * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using MRG31K3P generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Note: In this implementation returned `double` value is generated from only 32 random bits (one unsigned int value).

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [3/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_mrg32k3a * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using MRG32K3A generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Note: In this implementation returned `double` value is generated from only 32 random bits (one unsigned int value).

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [4/14]

__forceinline__ __device__ double rocrand_uniform_double | ( | rocrand_state_mtgp32 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using MTGP32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Note: In this implementation returned `double` value is generated from only 32 random bits (one unsigned int value).

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [5/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using Philox generator in `state`, and increments position of the generator by two.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [6/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_scrambled_sobol32 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using SCRAMBLED_SOBOL32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Note: In this implementation returned `double` value is generated from only 32 random bits (one unsigned int value).

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [7/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_scrambled_sobol64 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using SCRAMBLED_SOBOL64 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [8/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_sobol32 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using SOBOL32 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Note: In this implementation returned `double` value is generated from only 32 random bits (one unsigned int value).

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [9/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_sobol64 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using SOBOL64 generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [10/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_threefry2x32_20 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using ThreeFry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Note: In this implementation returned `double` value is generated from only 32 random bits (one unsigned int value).

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [11/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_threefry2x64_20 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using ThreeFry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Note: In this implementation returned `double` value is generated from only 32 random bits (one unsigned int value).

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [12/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_threefry4x32_20 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using ThreeFry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Note: In this implementation returned `double` value is generated from only 32 random bits (one unsigned int value).

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [13/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_threefry4x64_20 * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using ThreeFry generator in `state`, and increments position of the generator by one.

Parameters

  state | Pointer to a state to use

Note: In this implementation returned `double` value is generated from only 32 random bits (one unsigned int value).

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double() [14/14]

__forceinline__ __device__ __host__ double rocrand_uniform_double | ( | rocrand_state_xorwow * | state | ) |

Returns a uniformly distributed random double value from (0; 1] range.

Generates and returns a uniformly distributed `double` value from (0; 1] range (excluding `0.0`, including `1.0`) using MRG32K3A generator in `state`, and increments position of the generator by two.

Parameters

  state | Pointer to a state to use

Returns
  Uniformly distributed `double` value from (0; 1] range.

## ◆ rocrand_uniform_double2()

__forceinline__ __device__ __host__ double2 rocrand_uniform_double2 | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns two uniformly distributed random double values from (0; 1] range.

Generates and returns two uniformly distributed `double` values from (0; 1] range (excluding `0.0`, including `1.0`) using Philox generator in `state`, and increments position of the generator by four.

Parameters

  state | Pointer to a state to use

Returns
  Two uniformly distributed `double` values from (0; 1] range as `double2`.

## ◆ rocrand_uniform_double4()

__forceinline__ __device__ __host__ double4 rocrand_uniform_double4 | ( | rocrand_state_philox4x32_10 * | state | ) |

Returns four uniformly distributed random double values from (0; 1] range.

Generates and returns four uniformly distributed `double` values from (0; 1] range (excluding `0.0`, including `1.0`) using Philox generator in `state`, and increments position of the generator by eight.

Parameters

  state | Pointer to a state to use

Returns
  Four uniformly distributed `double` values from (0; 1] range as `double4`.

## ◆ skipahead() [1/9]

__forceinline__ __device__ __host__ void skipahead | ( | unsigned long long int | offset,
|  | rocrand_state_sobol64 * | state )

Updates sobol64 state to skip ahead by `offset` elements.

Updates the sobol64 state in `state` to skip ahead by `offset` elements.

Parameters

  offset | Number of elements to skip
  state | Pointer to state to update

## ◆ skipahead() [2/9]

__forceinline__ __device__ __host__ void skipahead | ( | unsigned long long | offset,
|  | rocrand_state_lfsr113 * | state )

Updates LFSR113 state to skip ahead by `offset` elements.

Updates the LFSR113 state in `state` to skip ahead by `offset` elements.

Parameters

  offset | Number of elements to skip
  state | Pointer to state to update

## ◆ skipahead() [3/9]

__forceinline__ __device__ __host__ void skipahead | ( | unsigned long long | offset,
|  | rocrand_state_mrg31k3p * | state )

Updates MRG31K3P state to skip ahead by `offset` elements.

Updates the MRG31K3P state in `state` to skip ahead by `offset` elements.

Parameters

  offset | Number of elements to skip
  state | Pointer to state to update

## ◆ skipahead() [4/9]

__forceinline__ __device__ __host__ void skipahead | ( | unsigned long long | offset,
|  | rocrand_state_mrg32k3a * | state )

Updates MRG32K3A state to skip ahead by `offset` elements.

Updates the MRG32K3A state in `state` to skip ahead by `offset` elements.

Parameters

  offset | Number of elements to skip
  state | Pointer to state to update

## ◆ skipahead() [5/9]

__forceinline__ __device__ __host__ void skipahead | ( | unsigned long long | offset,
|  | rocrand_state_philox4x32_10 * | state )

Updates Philox state to skip ahead by `offset` elements.

Updates the Philox generator state in `state` to skip ahead by `offset` elements.

Parameters

  offset | Number of elements to skip
  state | Pointer to state to update

## ◆ skipahead() [6/9]

__forceinline__ __device__ __host__ void skipahead | ( | unsigned long long | offset,
|  | rocrand_state_scrambled_sobol32 * | state )

Updates SCRAMBLED_SOBOL32 state to skip ahead by `offset` elements.

Updates the SCRAMBLED_SOBOL32 state in `state` to skip ahead by `offset` elements.

Parameters

  offset | Number of elements to skip
  state | Pointer to state to update

## ◆ skipahead() [7/9]

__forceinline__ __device__ __host__ void skipahead | ( | unsigned long long | offset,
|  | rocrand_state_scrambled_sobol64 * | state )

Updates scrambled_sobol64 state to skip ahead by `offset` elements.

Updates the scrambled_sobol64 state in `state` to skip ahead by `offset` elements.

Parameters

  offset | Number of elements to skip
  state | Pointer to state to update

## ◆ skipahead() [8/9]

__forceinline__ __device__ __host__ void skipahead | ( | unsigned long long | offset,
|  | rocrand_state_sobol32 * | state )

Updates SOBOL32 state to skip ahead by `offset` elements.

Updates the SOBOL32 state in `state` to skip ahead by `offset` elements.

Parameters

  offset | Number of elements to skip
  state | Pointer to state to update

## ◆ skipahead() [9/9]

__forceinline__ __device__ __host__ void skipahead | ( | unsigned long long | offset,
|  | rocrand_state_xorwow * | state )

Updates XORWOW state to skip ahead by `offset` elements.

Updates the XORWOW state in `state` to skip ahead by `offset` elements.

Parameters

  offset | Number of elements to skip
  state | Pointer to state to update

## ◆ skipahead_sequence() [1/5]

__forceinline__ __device__ __host__ void skipahead_sequence | ( | unsigned int | sequence,
|  | rocrand_state_lfsr113 * | state )

Updates LFSR113 state to skip ahead by `sequence` sequences.

Updates the LFSR113 `state` to skip ahead by `sequence` sequences. For LFSR113 each sequence is 2^55 numbers long (equal to the size of a subsequence).

Parameters

  sequence | Number of sequences to skip
  state | Pointer to state to update

## ◆ skipahead_sequence() [2/5]

__forceinline__ __device__ __host__ void skipahead_sequence | ( | unsigned long long | sequence,
|  | rocrand_state_mrg31k3p * | state )

Updates MRG31K3P state to skip ahead by `sequence` sequences.

Updates the MRG31K3P state in `state` to skip ahead by `sequence` sequences. Each sequence is 2^134 numbers long.

Parameters

  sequence | Number of sequences to skip
  state | Pointer to state to update

## ◆ skipahead_sequence() [3/5]

__forceinline__ __device__ __host__ void skipahead_sequence | ( | unsigned long long | sequence,
|  | rocrand_state_mrg32k3a * | state )

Updates MRG32K3A state to skip ahead by `sequence` sequences.

Updates the MRG32K3A state in `state` to skip ahead by `sequence` sequences. Each sequence is 2^127 numbers long.

Parameters

  sequence | Number of sequences to skip
  state | Pointer to state to update

## ◆ skipahead_sequence() [4/5]

__forceinline__ __device__ __host__ void skipahead_sequence | ( | unsigned long long | sequence,
|  | rocrand_state_philox4x32_10 * | state )

Updates Philox state to skip ahead by `sequence` sequences.

Updates the Philox generator state in `state` skipping `sequence` sequences ahead. For Philox each sequence is 4 * 2^64 numbers long (equal to the size of a subsequence).

Parameters

  sequence | Number of sequences to skip
  state | Pointer to state to update

## ◆ skipahead_sequence() [5/5]

__forceinline__ __device__ __host__ void skipahead_sequence | ( | unsigned long long | sequence,
|  | rocrand_state_xorwow * | state )

Updates XORWOW state to skip ahead by `sequence` sequences.

Updates the XORWOW `state` skipping `sequence` sequences ahead. For XORWOW each sequence is 2^67 numbers long (equal to the size of a subsequence).

Parameters

  sequence | Number of sequences to skip
  state | Pointer to state to update

## ◆ skipahead_subsequence() [1/5]

__forceinline__ __device__ __host__ void skipahead_subsequence | ( | unsigned int | subsequence,
|  | rocrand_state_lfsr113 * | state )

Updates LFSR113 state to skip ahead by `subsequence` subsequences.

Updates the LFSR113 `state` to skip ahead by `subsequence` subsequences. Each subsequence is 2^55 numbers long.

Parameters

  subsequence | Number of subsequences to skip
  state | Pointer to state to update

## ◆ skipahead_subsequence() [2/5]

__forceinline__ __device__ __host__ void skipahead_subsequence | ( | unsigned long long | subsequence,
|  | rocrand_state_mrg31k3p * | state )

Updates MRG31K3P state to skip ahead by `subsequence` subsequences.

Updates the MRG31K3P state in `state` to skip ahead by `subsequence` subsequences. Each subsequence is 2^72 numbers long.

Parameters

  subsequence | Number of subsequences to skip
  state | Pointer to state to update

## ◆ skipahead_subsequence() [3/5]

__forceinline__ __device__ __host__ void skipahead_subsequence | ( | unsigned long long | subsequence,
|  | rocrand_state_mrg32k3a * | state )

Updates MRG32K3A state to skip ahead by `subsequence` subsequences.

Updates the MRG32K3A state in `state` to skip ahead by `subsequence` subsequences. Each subsequence is 2^76 numbers long.

Parameters

  subsequence | Number of subsequences to skip
  state | Pointer to state to update

## ◆ skipahead_subsequence() [4/5]

__forceinline__ __device__ __host__ void skipahead_subsequence | ( | unsigned long long | subsequence,
|  | rocrand_state_philox4x32_10 * | state )

Updates Philox state to skip ahead by `subsequence` subsequences.

Updates the Philox generator state in `state` to skip ahead by `subsequence` subsequences. Each subsequence is 4 * 2^64 numbers long.

Parameters

  subsequence | Number of subsequences to skip
  state | Pointer to state to update

## ◆ skipahead_subsequence() [5/5]

__forceinline__ __device__ __host__ void skipahead_subsequence | ( | unsigned long long | subsequence,
|  | rocrand_state_xorwow * | state )

Updates XORWOW state to skip ahead by `subsequence` subsequences.

Updates the XORWOW `state` to skip ahead by `subsequence` subsequences. Each subsequence is 2^67 numbers long.

Parameters

  subsequence | Number of subsequences to skip
  state | Pointer to state to update