rocRAND device functions

rocRAND device functions#

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

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]);
}
__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:531
__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:274
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 long long int rocrand_poisson ( rocrand_state_scrambled_sobol64 *  state,
double  lambda 
)

Returns a Poisson-distributed unsigned long long int using SCRAMBLED_SOBOL64 generator.

Generates and returns Poisson-distributed distributed random unsigned long long 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 long long 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 long long int rocrand_poisson ( rocrand_state_sobol64 *  state,
double  lambda 
)

Returns a Poisson-distributed unsigned long long int using SOBOL64 generator.

Generates and returns Poisson-distributed distributed random unsigned long long 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 long long 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