5.2. 设备API
命名空间
- namespace curand_detail
Functions
- __device__ unsigned int curand ( curandStateMtgp32_t* state )
- Return 32-bits of pseudorandomness from a mtgp32 generator.
- __device__ unsigned long long curand ( curandStateScrambledSobol64_t* state )
- Return 64-bits of quasirandomness from a scrambled Sobol64 generator.
- __device__ unsigned long long curand ( curandStateSobol64_t* state )
- Return 64-bits of quasirandomness from a Sobol64 generator.
- __device__ unsigned int curand ( curandStateScrambledSobol32_t* state )
- Return 32-bits of quasirandomness from a scrambled Sobol32 generator.
- __device__ unsigned int curand ( curandStateSobol32_t* state )
- Return 32-bits of quasirandomness from a Sobol32 generator.
- __device__ unsigned int curand ( curandStateMRG32k3a_t* state )
- Return 32-bits of pseudorandomness from an MRG32k3a generator.
- __device__ unsigned int curand ( curandStatePhilox4_32_10_t* state )
- Return 32-bits of pseudorandomness from an Philox4_32_10 generator.
- __device__ unsigned int curand ( curandStateXORWOW_t* state )
- Return 32-bits of pseudorandomness from an XORWOW generator.
- __device__ uint4 curand4 ( curandStatePhilox4_32_10_t* state )
- Return tuple of 4 32-bit pseudorandoms from a Philox4_32_10 generator.
- __host__ __forceinline__ curandStatus_t curandMakeMTGP32Constants ( const mtgp32_params_fast_t params[], mtgp32_kernel_params_t* p )
- Set up constant parameters for the mtgp32 generator.
- __host__ __forceinline__ curandStatus_t CURANDAPI curandMakeMTGP32KernelState ( curandStateMtgp32_t* s, mtgp32_params_fast_t params[], mtgp32_kernel_params_t* k, int n, unsigned long long seed )
- Set up initial states for the mtgp32 generator.
- __device__ void curand_init ( curandDirectionVectors64_t direction_vectors, unsigned long long scramble_c, unsigned long long offset, curandStateScrambledSobol64_t* state )
- Initialize Scrambled Sobol64 state.
- __device__ void curand_init ( curandDirectionVectors64_t direction_vectors, unsigned long long offset, curandStateSobol64_t* state )
- Initialize Sobol64 state.
- __device__ void curand_init ( curandDirectionVectors32_t direction_vectors, unsigned int scramble_c, unsigned int offset, curandStateScrambledSobol32_t* state )
- Initialize Scrambled Sobol32 state.
- __device__ void curand_init ( curandDirectionVectors32_t direction_vectors, unsigned int offset, curandStateSobol32_t* state )
- Initialize Sobol32 state.
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStateMRG32k3a_t* state )
- Initialize MRG32k3a state.
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStatePhilox4_32_10_t* state )
- Initialize Philox4_32_10 state.
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStateXORWOW_t* state )
- Initialize XORWOW state.
- __device__ float curand_log_normal ( curandStateScrambledSobol64_t* state, float mean, float stddev )
- Return a log-normally distributed float from a scrambled Sobol64 generator.
- __device__ float curand_log_normal ( curandStateSobol64_t* state, float mean, float stddev )
- Return a log-normally distributed float from a Sobol64 generator.
- __device__ float curand_log_normal ( curandStateScrambledSobol32_t* state, float mean, float stddev )
- Return a log-normally distributed float from a scrambled Sobol32 generator.
- __device__ float curand_log_normal ( curandStateSobol32_t* state, float mean, float stddev )
- Return a log-normally distributed float from a Sobol32 generator.
- __device__ float curand_log_normal ( curandStateMtgp32_t* state, float mean, float stddev )
- Return a log-normally distributed float from an MTGP32 generator.
- __device__ float curand_log_normal ( curandStateMRG32k3a_t* state, float mean, float stddev )
- Return a log-normally distributed float from an MRG32k3a generator.
- __device__ float curand_log_normal ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
- Return a log-normally distributed float from an Philox4_32_10 generator.
- __device__ float curand_log_normal ( curandStateXORWOW_t* state, float mean, float stddev )
- Return a log-normally distributed float from an XORWOW generator.
- __device__ float2 curand_log_normal2 ( curandStateMRG32k3a_t* state, float mean, float stddev )
- Return two normally distributed floats from an MRG32k3a generator.
- __device__ float2 curand_log_normal2 ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
- Return two normally distributed floats from an Philox4_32_10 generator.
- __device__ float2 curand_log_normal2 ( curandStateXORWOW_t* state, float mean, float stddev )
- Return two normally distributed floats from an XORWOW generator.
- __device__ double2 curand_log_normal2_double ( curandStateMRG32k3a_t* state, double mean, double stddev )
- Return two log-normally distributed doubles from an MRG32k3a generator.
- __device__ double2 curand_log_normal2_double ( curandStatePhilox4_32_10_t* state, double mean, double stddev )
- Return two log-normally distributed doubles from an Philox4_32_10 generator.
- __device__ double2 curand_log_normal2_double ( curandStateXORWOW_t* state, double mean, double stddev )
- Return two log-normally distributed doubles from an XORWOW generator.
- __device__ float4 curand_log_normal4 ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
- Return four normally distributed floats from an Philox4_32_10 generator.
- __device__ double curand_log_normal_double ( curandStateScrambledSobol64_t* state, double mean, double stddev )
- Return a log-normally distributed double from a scrambled Sobol64 generator.
- __device__ double curand_log_normal_double ( curandStateSobol64_t* state, double mean, double stddev )
- Return a log-normally distributed double from a Sobol64 generator.
- __device__ double curand_log_normal_double ( curandStateScrambledSobol32_t* state, double mean, double stddev )
- Return a log-normally distributed double from a scrambled Sobol32 generator.
- __device__ double curand_log_normal_double ( curandStateSobol32_t* state, double mean, double stddev )
- Return a log-normally distributed double from a Sobol32 generator.
- __device__ double curand_log_normal_double ( curandStateMtgp32_t* state, double mean, double stddev )
- Return a log-normally distributed double from an MTGP32 generator.
- __device__ double curand_log_normal_double ( curandStateMRG32k3a_t* state, double mean, double stddev )
- Return a log-normally distributed double from an MRG32k3a generator.
- __device__ double curand_log_normal_double ( curandStatePhilox4_32_10_t* state, double mean, double stddev )
- Return a log-normally distributed double from an Philox4_32_10 generator.
- __device__ double curand_log_normal_double ( curandStateXORWOW_t* state, double mean, double stddev )
- Return a log-normally distributed double from an XORWOW generator.
- __device__ float curand_mtgp32_single ( curandStateMtgp32_t* state )
- Return a uniformly distributed float from a mtgp32 generator.
- __device__ float curand_mtgp32_single_specific ( curandStateMtgp32_t* state, unsigned char index, unsigned char n )
- Return a uniformly distributed float from a specific position in a mtgp32 generator.
- __device__ unsigned int curand_mtgp32_specific ( curandStateMtgp32_t* state, unsigned char index, unsigned char n )
- Return 32-bits of pseudorandomness from a specific position in a mtgp32 generator.
- __device__ float curand_normal ( curandStateScrambledSobol64_t* state )
- Return a normally distributed float from a scrambled Sobol64 generator.
- __device__ float curand_normal ( curandStateSobol64_t* state )
- Return a normally distributed float from a Sobol64 generator.
- __device__ float curand_normal ( curandStateScrambledSobol32_t* state )
- Return a normally distributed float from a scrambled Sobol32 generator.
- __device__ float curand_normal ( curandStateSobol32_t* state )
- Return a normally distributed float from a Sobol32 generator.
- __device__ float curand_normal ( curandStateMtgp32_t* state )
- Return a normally distributed float from a MTGP32 generator.
- __device__ float curand_normal ( curandStateMRG32k3a_t* state )
- Return a normally distributed float from an MRG32k3a generator.
- __device__ float curand_normal ( curandStatePhilox4_32_10_t* state )
- Return a normally distributed float from an Philox4_32_10 generator.
- __device__ float curand_normal ( curandStateXORWOW_t* state )
- Return a normally distributed float from an XORWOW generator.
- __device__ float2 curand_normal2 ( curandStateMRG32k3a_t* state )
- Return two normally distributed floats from an MRG32k3a generator.
- __device__ float2 curand_normal2 ( curandStatePhilox4_32_10_t* state )
- Return two normally distributed floats from an Philox4_32_10 generator.
- __device__ float2 curand_normal2 ( curandStateXORWOW_t* state )
- Return two normally distributed floats from an XORWOW generator.
- __device__ double2 curand_normal2_double ( curandStateMRG32k3a_t* state )
- Return two normally distributed doubles from an MRG32k3a generator.
- __device__ double2 curand_normal2_double ( curandStatePhilox4_32_10_t* state )
- Return two normally distributed doubles from an Philox4_32_10 generator.
- __device__ double2 curand_normal2_double ( curandStateXORWOW_t* state )
- Return two normally distributed doubles from an XORWOW generator.
- __device__ float4 curand_normal4 ( curandStatePhilox4_32_10_t* state )
- Return four normally distributed floats from an Philox4_32_10 generator.
- __device__ double curand_normal_double ( curandStateScrambledSobol64_t* state )
- Return a normally distributed double from a scrambled Sobol64 generator.
- __device__ double curand_normal_double ( curandStateSobol64_t* state )
- Return a normally distributed double from a Sobol64 generator.
- __device__ double curand_normal_double ( curandStateScrambledSobol32_t* state )
- Return a normally distributed double from a scrambled Sobol32 generator.
- __device__ double curand_normal_double ( curandStateSobol32_t* state )
- Return a normally distributed double from an Sobol32 generator.
- __device__ double curand_normal_double ( curandStateMtgp32_t* state )
- Return a normally distributed double from an MTGP32 generator.
- __device__ double curand_normal_double ( curandStateMRG32k3a_t* state )
- Return a normally distributed double from an MRG32k3a generator.
- __device__ double curand_normal_double ( curandStatePhilox4_32_10_t* state )
- Return a normally distributed double from an Philox4_32_10 generator.
- __device__ double curand_normal_double ( curandStateXORWOW_t* state )
- Return a normally distributed double from an XORWOW generator.
- __device__ unsigned int curand_poisson ( curandStateScrambledSobol64_t* state, double lambda )
- Return a Poisson-distributed unsigned int from a scrambled Sobol64 generator.
- __device__ unsigned int curand_poisson ( curandStateSobol64_t* state, double lambda )
- Return a Poisson-distributed unsigned int from a Sobol64 generator.
- __device__ unsigned int curand_poisson ( curandStateScrambledSobol32_t* state, double lambda )
- Return a Poisson-distributed unsigned int from a scrambled Sobol32 generator.
- __device__ unsigned int curand_poisson ( curandStateSobol32_t* state, double lambda )
- Return a Poisson-distributed unsigned int from a Sobol32 generator.
- __device__ unsigned int curand_poisson ( curandStateMtgp32_t* state, double lambda )
- Return a Poisson-distributed unsigned int from a MTGP32 generator.
- __device__ unsigned int curand_poisson ( curandStateMRG32k3a_t* state, double lambda )
- Return a Poisson-distributed unsigned int from a MRG32k3A generator.
- __device__ unsigned int curand_poisson ( curandStatePhilox4_32_10_t* state, double lambda )
- Return a Poisson-distributed unsigned int from a Philox4_32_10 generator.
- __device__ unsigned int curand_poisson ( curandStateXORWOW_t* state, double lambda )
- Return a Poisson-distributed unsigned int from a XORWOW generator.
- __device__ uint4 curand_poisson4 ( curandStatePhilox4_32_10_t* state, double lambda )
- Return four Poisson-distributed unsigned ints from a Philox4_32_10 generator.
- __device__ float curand_uniform ( curandStateScrambledSobol64_t* state )
- Return a uniformly distributed float from a scrambled Sobol64 generator.
- __device__ float curand_uniform ( curandStateSobol64_t* state )
- Return a uniformly distributed float from a Sobol64 generator.
- __device__ float curand_uniform ( curandStateScrambledSobol32_t* state )
- Return a uniformly distributed float from a scrambled Sobol32 generator.
- __device__ float curand_uniform ( curandStateSobol32_t* state )
- Return a uniformly distributed float from a Sobol32 generator.
- __device__ float curand_uniform ( curandStateMtgp32_t* state )
- Return a uniformly distributed float from a MTGP32 generator.
- __device__ float curand_uniform ( curandStatePhilox4_32_10_t* state )
- Return a uniformly distributed float from a Philox4_32_10 generator.
- __device__ float curand_uniform ( curandStateMRG32k3a_t* state )
- Return a uniformly distributed float from an MRG32k3a generator.
- __device__ float curand_uniform ( curandStateXORWOW_t* state )
- Return a uniformly distributed float from an XORWOW generator.
- __device__ double2 curand_uniform2_double ( curandStatePhilox4_32_10_t* state )
- Return a uniformly distributed tuple of 2 doubles from an Philox4_32_10 generator.
- __device__ float4 curand_uniform4 ( curandStatePhilox4_32_10_t* state )
- Return a uniformly distributed tuple of 4 floats from a Philox4_32_10 generator.
- __device__ double curand_uniform_double ( curandStateScrambledSobol64_t* state )
- Return a uniformly distributed double from a scrambled Sobol64 generator.
- __device__ double curand_uniform_double ( curandStateSobol64_t* state )
- Return a uniformly distributed double from a Sobol64 generator.
- __device__ double curand_uniform_double ( curandStateScrambledSobol32_t* state )
- Return a uniformly distributed double from a scrambled Sobol32 generator.
- __device__ double curand_uniform_double ( curandStateSobol32_t* state )
- Return a uniformly distributed double from a Sobol32 generator.
- __device__ double curand_uniform_double ( curandStatePhilox4_32_10_t* state )
- Return a uniformly distributed double from a Philox4_32_10 generator.
- __device__ double curand_uniform_double ( curandStateMtgp32_t* state )
- Return a uniformly distributed double from a MTGP32 generator.
- __device__ double curand_uniform_double ( curandStateMRG32k3a_t* state )
- Return a uniformly distributed double from an MRG32k3a generator.
- __device__ double curand_uniform_double ( curandStateXORWOW_t* state )
- Return a uniformly distributed double from an XORWOW generator.
- template < typename T >__device__ CURAND_STD::enable_if < CURAND_STD::is_same < curandStateSobol64_t* > ::type skipahead ( unsigned long long n, T state )
- Update Sobol64 state to skip n elements.
- template < typename T >__device__ CURAND_STD::enable_if < CURAND_STD::is_same < curandStateSobol32_t* > ::type skipahead ( unsigned int n, T state )
- Update Sobol32 state to skip n elements.
- __device__ void skipahead ( unsigned long long n, curandStateMRG32k3a_t* state )
- Update MRG32k3a state to skip n elements.
- __device__ void skipahead ( unsigned long long n, curandStatePhilox4_32_10_t* state )
- Update Philox4_32_10 state to skip n elements.
- __device__ void skipahead ( unsigned long long n, curandStateXORWOW_t* state )
- Update XORWOW state to skip n elements.
- __device__ void skipahead_sequence ( unsigned long long n, curandStateMRG32k3a_t* state )
- Update MRG32k3a state to skip ahead n sequences.
- __device__ void skipahead_sequence ( unsigned long long n, curandStatePhilox4_32_10_t* state )
- Update Philox4_32_10 state to skip ahead n subsequences.
- __device__ void skipahead_sequence ( unsigned long long n, curandStateXORWOW_t* state )
- Update XORWOW state to skip ahead n subsequences.
- __device__ void skipahead_subsequence ( unsigned long long n, curandStateMRG32k3a_t* state )
- Update MRG32k3a state to skip ahead n subsequences.
Functions
- __device__ unsigned int curand ( curandStateMtgp32_t* state )
-
从mtgp32生成器返回32位伪随机数。
参数
- state
- - Pointer to state to update
返回
32位伪随机数作为无符号整数,所有位均可使用。
描述
从state中的mtgp32生成器返回32位伪随机数,生成器的位置按块中的线程数递增。注意块中的线程数不能超过256。
- __device__ unsigned long long curand ( curandStateScrambledSobol64_t* state )
-
从加扰的Sobol64生成器返回64位准随机数。
参数
- state
- - Pointer to state to update
返回
64位准随机数,以无符号长整型表示,所有位均可使用。
描述
从state中的加扰Sobol32生成器返回64位准随机数,并将生成器的位置递增一位。
- __device__ unsigned long long curand ( curandStateSobol64_t* state )
-
从Sobol64生成器返回64位准随机数。
参数
- state
- - Pointer to state to update
返回
64位准随机数,以无符号长整型表示,所有位均可使用。
描述
从Sobol64生成器的state中返回64位准随机数,并将生成器的位置递增一位。
- __device__ unsigned int curand ( curandStateScrambledSobol32_t* state )
-
从一个经过扰乱的Sobol32生成器中返回32位准随机数。
参数
- state
- - Pointer to state to update
返回
32位准随机数,以无符号整数形式表示,所有位均可使用。
描述
从state中的加扰Sobol32生成器返回32位准随机数,并将生成器的位置递增一位。
- __device__ unsigned int curand ( curandStateSobol32_t* state )
-
从Sobol32生成器返回32位准随机数。
参数
- state
- - Pointer to state to update
返回
32位准随机数,以无符号整数形式表示,所有位均可使用。
描述
从Sobol32生成器的state中返回32位准随机数,并将生成器的位置递增一位。
- __device__ unsigned int curand ( curandStateMRG32k3a_t* state )
-
从MRG32k3a生成器返回32位伪随机数。
参数
- state
- - Pointer to state to update
返回
32位伪随机数,作为无符号整数,所有位均可使用。
描述
从state中的MRG32k3a生成器返回32位伪随机数,并将生成器位置递增一位。
- __device__ unsigned int curand ( curandStatePhilox4_32_10_t* state )
-
从一个Philox4_32_10生成器返回32位伪随机数。
参数
- state
- - Pointer to state to update
返回
32位伪随机数作为无符号整数,所有位均可使用。
描述
从state中的Philox4_32_10生成器返回32位伪随机数,并将生成器的位置递增一位。
- __device__ unsigned int curand ( curandStateXORWOW_t* state )
-
从XORWOW生成器返回32位伪随机数。
参数
- state
- - Pointer to state to update
返回
32位伪随机数作为无符号整数,所有位均可使用。
描述
从state中的XORWOW生成器返回32位伪随机数,并将生成器的位置递增一位。
- __device__ uint4 curand4 ( curandStatePhilox4_32_10_t* state )
-
从一个Philox4_32_10生成器返回4个32位伪随机数的元组。
参数
- state
- - Pointer to state to update
返回
128位伪随机数,以uint4形式表示,所有位均可使用。
描述
从state中的Philox4_32_10生成器返回128位伪随机数,并将生成器的位置增加四个。
- __host__ __forceinline__ curandStatus_t curandMakeMTGP32Constants ( const mtgp32_params_fast_t params[], mtgp32_kernel_params_t* p )
-
为mtgp32生成器设置常量参数。
参数
- params
- - Pointer to an array of type mtgp32_params_fast_t in host memory
- p
- - pointer to a structure of type mtgp32_kernel_params_t in device memory.
返回
- 如果无法分配主机内存,则返回 CURAND_STATUS_ALLOCATION_FAILED
- 如果复制到设备内存失败,则返回 CURAND_STATUS_INITIALIZATION_FAILED
- 否则返回CURAND_STATUS_SUCCESS
描述
这个主机端辅助函数重新组织CURAND_NUM_MTGP32_PARAMS组生成器参数供内核函数使用,并将结果复制到设备内存中的指定位置。
- __host__ __forceinline__ curandStatus_t CURANDAPI curandMakeMTGP32KernelState ( curandStateMtgp32_t* s, mtgp32_params_fast_t params[], mtgp32_kernel_params_t* k, int n, unsigned long long seed )
-
为mtgp32生成器设置初始状态。
参数
- s
- - pointer to an array of states in device memory
- params
- - Pointer to an array of type mtgp32_params_fast_t in host memory
- k
- - pointer to a structure of type mtgp32_kernel_params_t in device memory
- n
- - number of parameter sets/states to initialize
- seed
- - seed value
返回
- 如果无法分配主机内存状态,则返回 CURAND_STATUS_ALLOCATION_FAILED
- 如果复制到设备内存失败,则返回CURAND_STATUS_INITIALIZATION_FAILED状态
- 否则返回 CURAND_STATUS_SUCCESS
描述
这个主机端辅助函数用于初始化mtgp32生成器的多个状态(每个状态对应一组参数)。为此,它会在主机内存中分配状态数组,初始化该数组,然后将结果复制到设备内存。
- __device__ void curand_init ( curandDirectionVectors64_t direction_vectors, unsigned long long scramble_c, unsigned long long offset, curandStateScrambledSobol64_t* state )
-
初始化Scrambled Sobol64状态。
参数
- direction_vectors
- - Pointer to array of 64 unsigned long longs representing the direction vectors for the desired dimension
- scramble_c
- Scramble constant
- offset
- - Absolute offset into sequence
- state
- - Pointer to state to initialize
描述
使用给定的directionvectors和offset初始化state中的Sobol64状态。
方向向量是一个指向包含64个无符号长整型数组的设备指针。offset的所有输入值都是合法的。
- __device__ void curand_init ( curandDirectionVectors64_t direction_vectors, unsigned long long offset, curandStateSobol64_t* state )
-
初始化Sobol64状态。
参数
- direction_vectors
- - Pointer to array of 64 unsigned long longs representing the direction vectors for the desired dimension
- offset
- - Absolute offset into sequence
- state
- - Pointer to state to initialize
描述
使用给定的directionvectors和offset初始化state中的Sobol64状态。
方向向量是一个指向包含64个无符号长整型数组的设备指针。offset的所有输入值都是合法的。
- __device__ void curand_init ( curandDirectionVectors32_t direction_vectors, unsigned int scramble_c, unsigned int offset, curandStateScrambledSobol32_t* state )
-
初始化Scrambled Sobol32状态。
参数
- direction_vectors
- - Pointer to array of 32 unsigned ints representing the direction vectors for the desired dimension
- scramble_c
- Scramble constant
- offset
- - Absolute offset into sequence
- state
- - Pointer to state to initialize
描述
使用给定的directionvectors和offset初始化state中的Sobol32状态。
方向向量是一个指向32位无符号整数数组的设备指针。offset的所有输入值都是合法的。
- __device__ void curand_init ( curandDirectionVectors32_t direction_vectors, unsigned int offset, curandStateSobol32_t* state )
-
初始化Sobol32状态。
参数
- direction_vectors
- - Pointer to array of 32 unsigned ints representing the direction vectors for the desired dimension
- offset
- - Absolute offset into sequence
- state
- - Pointer to state to initialize
描述
使用给定的directionvectors和offset初始化Sobol32状态到state中。
方向向量是一个指向包含32个无符号整数的数组的设备指针。offset的所有输入值都是合法的。
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStateMRG32k3a_t* state )
-
初始化MRG32k3a状态。
参数
- seed
- - Arbitrary bits to use as a seed
- subsequence
- - Subsequence to start at
- offset
- - Absolute offset into sequence
- state
- - Pointer to state to initialize
描述
使用给定的seed、subsequence和offset初始化state中的MRG32k3a状态。
seed、subsequence和offset的所有输入值都是合法的。subsequence将被截断为51位以避免进入下一个序列
seed值为0时,会将状态设置为原始发布的MRG32k3a算法版本中的值。
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStatePhilox4_32_10_t* state )
-
初始化Philox4_32_10状态。
参数
- seed
- - Arbitrary bits to use as a seed
- subsequence
- - Subsequence to start at
- offset
- - Absolute offset into subsequence
- state
- - Pointer to state to initialize
描述
使用给定的seed、p\子序列和offset在state中初始化Philox4_32_10状态。
seed、subseqence 和 offset 的所有输入值都是合法的。每个 264 可能的种子值都对应一个独立的长度为 2130 的序列。序列的前 266 * subsequence + offset 个值会被跳过。也就是说,子序列的长度为 266。
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStateXORWOW_t* state )
-
初始化XORWOW状态。
参数
- seed
- - Arbitrary bits to use as a seed
- subsequence
- - Subsequence to start at
- offset
- - Absolute offset into sequence
- state
- - Pointer to state to initialize
描述
使用给定的seed、subsequence和offset初始化state中的XORWOW状态。
seed、subsequence和offset的所有输入值都是合法的。subsequence和offset的值越大,需要的计算量就越多,因此完成所需的时间也会更长。
seed值为0时,会将状态设置为原始发布的xorwow算法版本中的值。
- __device__ float curand_log_normal ( curandStateScrambledSobol64_t* state, float mean, float stddev )
-
从一个经过扰动的Sobol64生成器返回一个对数正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的浮点数,均值为 mean,标准差为 stddev
描述
返回一个从对数正态分布中抽取的单个浮点数,该分布基于state中加扰Sobol64生成器产生的均值为mean、标准差为stddev的正态分布,并将生成器的位置递增一位。
该实现使用逆累积分布函数生成正态分布结果,然后转换为对数正态分布。
- __device__ float curand_log_normal ( curandStateSobol64_t* state, float mean, float stddev )
-
从Sobol64生成器返回一个对数正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的浮点数,均值为 mean,标准差为 stddev
描述
返回一个从对数正态分布中抽取的单个浮点数,该分布基于Sobol64生成器在state中产生的均值为mean、标准差为stddev的正态分布,并将生成器的位置递增一位。
该实现使用逆累积分布函数生成正态分布结果,然后转换为对数正态分布。
- __device__ float curand_log_normal ( curandStateScrambledSobol32_t* state, float mean, float stddev )
-
从一个经过扰乱的Sobol32生成器返回一个对数正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的浮点数,均值为mean,标准差为stddev
描述
返回一个从对数正态分布中抽取的单个浮点数,该分布基于state中加扰Sobol32生成器产生的均值为mean、标准差为stddev的正态分布,并将生成器位置递增一位。
该实现使用逆累积分布函数生成正态分布结果,然后将结果转换为对数正态分布。
- __device__ float curand_log_normal ( curandStateSobol32_t* state, float mean, float stddev )
-
从Sobol32生成器返回一个对数正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的浮点数,均值为 mean,标准差为 stddev
描述
返回一个从对数正态分布中抽取的单个浮点数,该分布基于Sobol32生成器在state中具有均值mean和标准差stddev的正态分布,并将生成器的位置递增一位。
该实现使用逆累积分布函数生成正态分布结果,然后将结果转换为对数正态分布。
- __device__ float curand_log_normal ( curandStateMtgp32_t* state, float mean, float stddev )
-
从MTGP32生成器返回一个对数正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的浮点数,均值为mean,标准差为stddev
描述
返回一个从MTGP32生成器state中基于均值为mean、标准差为stddev的正态分布所生成的对数正态分布浮点数,并递增生成器的位置。
该实现使用逆累积分布函数生成正态分布结果,然后将结果转换为对数正态分布。
- __device__ float curand_log_normal ( curandStateMRG32k3a_t* state, float mean, float stddev )
-
返回一个来自MRG32k3a生成器的对数正态分布浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的浮点数,均值为mean,标准差为stddev
描述
返回一个从对数正态分布中抽取的单个浮点数,该分布基于state中MRG32k3a生成器产生的均值为mean、标准差为stddev的正态分布,并将生成器的位置向前推进一位。
该实现采用Box-Muller变换生成两个正态分布结果,将其转换为对数正态分布后逐个返回。如需一次性返回两个结果的更高效版本,请参阅curand_log_normal2()。
- __device__ float curand_log_normal ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
-
从Philox4_32_10生成器返回一个对数正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的浮点数,均值为 mean,标准差为 stddev
描述
返回一个从对数正态分布中抽取的单个浮点数,该分布基于state中Philox4_32_10生成器产生的正态分布,其均值为mean,标准差为stddev,并将生成器的位置递增一位。
该实现使用Box-Muller变换生成两个正态分布结果,将其转换为对数正态分布,然后逐个返回。如需一次性返回两个结果的更高效版本,请参阅curand_log_normal2()。
- __device__ float curand_log_normal ( curandStateXORWOW_t* state, float mean, float stddev )
-
从XORWOW生成器返回一个对数正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的浮点数,均值为 mean,标准差为 stddev
描述
返回一个从对数正态分布中抽取的单个浮点数,该分布基于state中XORWOW生成器产生的均值为mean、标准差为stddev的正态分布,并将生成器的位置递增一位。
该实现使用Box-Muller变换生成两个正态分布结果,将其转换为对数正态分布,然后逐个返回。如需一次性返回两个结果的更高效版本,请参阅curand_log_normal2()。
- __device__ float2 curand_log_normal2 ( curandStateMRG32k3a_t* state, float mean, float stddev )
-
从一个MRG32k3a生成器返回两个正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的float2,其中每个元素来自均值为mean、标准差为stddev的分布
描述
返回两个对数正态分布的浮点数,这些数源自于state中MRG32k3a生成器产生的均值为mean、标准差为stddev的正态分布,并将生成器的位置递增两个单位。
该实现使用Box-Muller变换生成两个正态分布结果,然后将它们转换为对数正态分布。
- __device__ float2 curand_log_normal2 ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
-
从一个Philox4_32_10生成器返回两个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的float2,其中每个元素均来自均值为mean、标准差为stddev的分布
描述
返回两个对数正态分布的浮点数,这些数源自状态state中Philox4_32_10生成器产生的均值为mean、标准差为stddev的正态分布,并将生成器的位置增加两个。
该实现使用Box-Muller变换生成两个正态分布结果,然后将它们转换为对数正态分布。
- __device__ float2 curand_log_normal2 ( curandStateXORWOW_t* state, float mean, float stddev )
-
从XORWOW生成器返回两个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的float2,其中每个元素均来自均值为mean、标准差为stddev的分布
描述
返回两个对数正态分布的浮点数,这些数源自状态state中XORWOW生成器产生的均值为mean、标准差为stddev的正态分布,并将生成器的位置递增两个单位。
该实现使用Box-Muller变换生成两个正态分布结果,然后将它们转换为对数正态分布。
- __device__ double2 curand_log_normal2_double ( curandStateMRG32k3a_t* state, double mean, double stddev )
-
从一个MRG32k3a生成器返回两个对数正态分布的双精度数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度浮点数对,其中每个元素来自均值为mean、标准差为stddev的分布
描述
返回两个对数正态分布的双精度数,这些数值源自state中MRG32k3a生成器产生的均值为mean、标准差为stddev的正态分布,并将生成器的位置递增两个单位。
该实现使用Box-Muller变换生成两个正态分布结果,并将其转换为对数正态分布。
- __device__ double2 curand_log_normal2_double ( curandStatePhilox4_32_10_t* state, double mean, double stddev )
-
从一个Philox4_32_10生成器返回两个对数正态分布的双精度数值。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度4元组,其中每个元素均来自均值为mean、标准差为stddev的分布
描述
返回两个对数正态分布的双精度数,这些数值源自状态state中Philox4_32_10生成器产生的均值为mean、标准差为stddev的正态分布,并将生成器的位置增加四个。
该实现采用Box-Muller变换生成两个正态分布结果,并将其转换为对数正态分布。
- __device__ double2 curand_log_normal2_double ( curandStateXORWOW_t* state, double mean, double stddev )
-
从XORWOW生成器返回两个对数正态分布的双精度数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度浮点数对,其中每个元素均来自均值为mean、标准差为stddev的分布
描述
返回两个对数正态分布的双精度数,这些数值源自state中XORWOW生成器产生的均值为mean、标准差为stddev的正态分布,并将生成器的位置递增两个单位。
该实现采用Box-Muller变换生成两个正态分布结果,并将其转换为对数正态分布。
- __device__ float4 curand_log_normal4 ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
-
从一个Philox4_32_10生成器返回四个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的float4,其中每个元素均来自均值为mean、标准差为stddev的分布
描述
返回四个对数正态分布的浮点数,这些数源自状态state中Philox4_32_10生成器产生的均值为mean、标准差为stddev的正态分布,同时将生成器的位置增加四个。
该实现使用Box-Muller变换生成两个正态分布结果,然后将它们转换为对数正态分布。
- __device__ double curand_log_normal_double ( curandStateScrambledSobol64_t* state, double mean, double stddev )
-
从一个经过扰动的Sobol64生成器返回一个对数正态分布的双精度数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度值,均值为mean,标准差为stddev
描述
返回一个服从正态分布的双精度值,该值由state中经过扰乱的Sobol64生成器产生,其均值为mean,标准差为stddev,同时将生成器的位置递增一位。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ double curand_log_normal_double ( curandStateSobol64_t* state, double mean, double stddev )
-
从Sobol64生成器返回一个对数正态分布的双精度数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度值,均值为mean,标准差为stddev
描述
返回一个服从正态分布的双精度浮点数,该数由Sobol64生成器在state中产生,其均值为mean,标准差为stddev,并将生成器的位置递增一位。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ double curand_log_normal_double ( curandStateScrambledSobol32_t* state, double mean, double stddev )
-
从一个经过扰动的Sobol32生成器返回一个对数正态分布的双精度数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度值,均值为mean,标准差为stddev
描述
返回一个从对数正态分布中抽取的单个双精度值,该分布基于均值为mean、标准差为stddev的正态分布,使用state中的加扰Sobol32生成器生成,并将生成器位置递增一位。
该实现使用逆累积分布函数生成正态分布结果,并将其转换为对数正态分布。
- __device__ double curand_log_normal_double ( curandStateSobol32_t* state, double mean, double stddev )
-
从Sobol32生成器返回一个对数正态分布的双精度数值。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度值,均值为mean,标准差为stddev
描述
返回一个从对数正态分布中抽取的单个双精度值,该分布基于Sobol32生成器在state中生成的均值为mean、标准差为stddev的正态分布,并将生成器的位置递增一位。
该实现使用逆累积分布函数生成正态分布结果,并将其转换为对数正态分布。
- __device__ double curand_log_normal_double ( curandStateMtgp32_t* state, double mean, double stddev )
-
从MTGP32生成器返回一个对数正态分布的双精度数值。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度值,均值为mean,标准差为stddev
描述
返回一个从对数正态分布中抽取的双精度值,该分布基于MTGP32生成器state中均值为mean、标准差为stddev的正态分布,并递增生成器的位置。
该实现使用逆累积分布函数生成正态分布结果,并将其转换为对数正态分布。
- __device__ double curand_log_normal_double ( curandStateMRG32k3a_t* state, double mean, double stddev )
-
返回一个来自MRG32k3a生成器的对数正态分布双精度数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度值,均值为mean,标准差为stddev
描述
返回一个从MRG32k3a生成器state中产生的服从正态分布的双精度数,该正态分布的均值为mean,标准差为stddev,并递增生成器的位置。
该实现使用Box-Muller变换生成两个正态分布结果,将其转换为对数正态分布,然后逐个返回。如需一次性返回两个结果的更高效版本,请参阅curand_log_normal2_double()。
- __device__ double curand_log_normal_double ( curandStatePhilox4_32_10_t* state, double mean, double stddev )
-
从一个Philox4_32_10生成器返回一个对数正态分布的双精度数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度值,均值为mean,标准差为stddev
描述
返回一个从正态分布中提取的单个双精度浮点数,该正态分布具有均值mean和标准差stddev,数值来源于state中的Philox4_32_10生成器,同时递增生成器的位置计数器。
该实现使用Box-Muller变换生成两个正态分布结果,将其转换为对数正态分布,然后逐个返回。如需一次性返回两个结果的更高效版本,请参阅curand_log_normal2_double()。
- __device__ double curand_log_normal_double ( curandStateXORWOW_t* state, double mean, double stddev )
-
从XORWOW生成器返回一个对数正态分布的双精度数。
参数
- state
- - Pointer to state to update
- mean
- - Mean of the related normal distribution
- stddev
- - Standard deviation of the related normal distribution
返回
对数正态分布的双精度值,均值为mean,标准差为stddev
描述
返回一个服从正态分布的双精度值,该值来自state中XORWOW生成器生成的均值为mean、标准差为stddev的正态分布,并递增生成器的位置。
该实现使用Box-Muller变换生成两个正态分布结果,将其转换为对数正态分布,然后逐个返回。如需一次性返回两个结果的更高效版本,请参阅curand_log_normal2_double()。
- __device__ float curand_mtgp32_single ( curandStateMtgp32_t* state )
-
从mtgp32生成器返回一个均匀分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0f 和 1.0f 之间的浮点数
描述
从state中的mtgp32生成器返回一个均匀分布在0.0f到1.0f之间的浮点数,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
注意:此处提供均匀浮点数的替代推导方法,以保持与原始来源的完整性
- __device__ float curand_mtgp32_single_specific ( curandStateMtgp32_t* state, unsigned char index, unsigned char n )
-
从mtgp32生成器的特定位置返回一个均匀分布的浮点数。
参数
- state
- - Pointer to state to update
- index
- - Index (0..255) of the position within the state to draw from and update
- n
- - The total number of postions in this state that are being updated by this invocation
返回
均匀分布在 0.0f 和 1.0f 之间的浮点数
描述
从state中mtgp32生成器的index位置返回一个均匀分布在0.0f到1.0f之间的浮点数,并将生成器的位置递增n个位置,这必须是线程块在此调用中更新的状态中的总位置数。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
注意1:线程索引范围必须为0到n - 1。更新的位置数量不得超过256。一个线程块可以更新多个状态,但一个特定状态不能被多个线程块更新。
注2:此处提供均匀分布浮点数的替代推导方法,以保持与原始来源的完整性
- __device__ unsigned int curand_mtgp32_specific ( curandStateMtgp32_t* state, unsigned char index, unsigned char n )
-
从mtgp32生成器的特定位置返回32位伪随机数。
参数
- state
- - Pointer to state to update
- index
- - Index (0..255) of the position within the state to draw from and update
- n
- - The total number of postions in this state that are being updated by this invocation
返回
32位伪随机数作为无符号整数,所有位均可使用。
描述
从state中的mtgp32生成器的index位置返回32位伪随机数,并将生成器的位置递增n个位置,这必须是线程块在此调用中更新的状态中的总位置数。
注意:线程索引范围必须为0...n-1。更新的位置数量不得超过256。一个线程块可以更新多个状态,但一个特定状态不能被多个线程块更新。
- __device__ float curand_normal ( curandStateScrambledSobol64_t* state )
-
从一个经过扰乱的Sobol64生成器中返回一个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均值为0.0f、标准差为1.0f的正态分布浮点数
描述
从state中的加扰Sobol64生成器返回一个均值为0.0f、标准差为1.0f的正态分布浮点数,并将生成器的位置递增一位。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ float curand_normal ( curandStateSobol64_t* state )
-
从Sobol64生成器返回一个正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均值为0.0f、标准差为1.0f的正态分布浮点数
描述
从state中的Sobol64生成器返回一个均值为0.0f、标准差为1.0f的正态分布浮点数,并将生成器的位置递增一位。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ float curand_normal ( curandStateScrambledSobol32_t* state )
-
返回一个来自经过扰乱的Sobol32生成器的正态分布浮点数。
参数
- state
- - Pointer to state to update
返回
均值为0.0f且标准差为1.0f的正态分布浮点数
描述
从state中的加扰Sobol32生成器返回一个均值为0.0f、标准差为1.0f的正态分布浮点数,并将生成器的位置递增一位。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ float curand_normal ( curandStateSobol32_t* state )
-
从Sobol32生成器返回一个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均值为0.0f、标准差为1.0f的正态分布浮点数
描述
从Sobol32生成器state中返回一个均值为0.0f、标准差为1.0f的正态分布浮点数,并将生成器位置递增一位。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ float curand_normal ( curandStateMtgp32_t* state )
-
从MTGP32生成器返回一个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均值为0.0f、标准差为1.0f的正态分布浮点数
描述
从MTGP32生成器state中返回一个均值为0.0f、标准差为1.0f的正态分布浮点数,同时递增生成器的位置。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ float curand_normal ( curandStateMRG32k3a_t* state )
-
从MRG32k3a生成器返回一个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均值为0.0f、标准差为1.0f的正态分布浮点数
描述
从state中的MRG32k3a生成器返回一个均值为0.0f、标准差为1.0f的正态分布浮点数,并将生成器的位置递增一位。
该实现使用Box-Muller变换生成两个正态分布结果,然后逐个返回。 请参阅curand_normal2()获取更高效的版本,该版本会同时返回两个结果。
- __device__ float curand_normal ( curandStatePhilox4_32_10_t* state )
-
从一个Philox4_32_10生成器返回符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均值为0.0f、标准差为1.0f的正态分布浮点数
描述
从state中的Philox4_32_10生成器返回一个均值为0.0f、标准差为1.0f的正态分布浮点数,并将生成器的位置递增一位。
该实现使用Box-Muller变换生成两个正态分布结果,然后逐个返回。 请参阅curand_normal2()获取更高效的版本,该版本会同时返回两个结果。
- __device__ float curand_normal ( curandStateXORWOW_t* state )
-
从XORWOW生成器返回一个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均值为0.0f、标准差为1.0f的正态分布浮点数
描述
从state中的XORWOW生成器返回一个均值为0.0f、标准差为1.0f的正态分布浮点数,并将生成器的位置递增一位。
该实现使用Box-Muller变换生成两个正态分布结果,然后逐个返回。 请参阅curand_normal2()获取更高效的版本,该版本会一次性返回两个结果。
- __device__ float2 curand_normal2 ( curandStateMRG32k3a_t* state )
-
从一个MRG32k3a生成器返回两个正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
符合正态分布的float2类型,其中每个元素均来自均值为0.0f、标准差为1.0f的分布
描述
从state中的MRG32k3a生成器返回两个均值为0.0f、标准差为1.0f的正态分布浮点数,并将生成器的位置递增两个单位。
该实现使用Box-Muller变换来生成两个正态分布的结果。
- __device__ float2 curand_normal2 ( curandStatePhilox4_32_10_t* state )
-
从一个Philox4_32_10生成器返回两个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
符合正态分布的float2类型,其中每个元素均来自均值为0.0f、标准差为1.0f的分布
描述
从state中的Philox4_32_10生成器返回两个均值为0.0f、标准差为1.0f的正态分布浮点数,并将生成器的位置递增两个单位。
该实现使用Box-Muller变换来生成两个正态分布的结果。
- __device__ float2 curand_normal2 ( curandStateXORWOW_t* state )
-
从XORWOW生成器返回两个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
符合正态分布的float2类型,其中每个元素均来自均值为0.0f、标准差为1.0f的分布
描述
从state中的XORWOW生成器返回两个均值为0.0f、标准差为1.0f的正态分布浮点数,并将生成器的位置递增两个单位。
该实现使用Box-Muller变换来生成两个正态分布的结果。
- __device__ double2 curand_normal2_double ( curandStateMRG32k3a_t* state )
-
从一个MRG32k3a生成器返回两个正态分布的双精度数。
参数
- state
- - Pointer to state to update
返回
服从正态分布的双精度浮点数对(double2),其中每个元素均来自均值为0.0、标准差为1.0的分布
描述
从state中的MRG32k3a生成器返回两个均值为0.0、标准差为1.0的正态分布双精度数,并递增生成器的位置。
该实现使用Box-Muller变换来生成两个正态分布的结果。
- __device__ double2 curand_normal2_double ( curandStatePhilox4_32_10_t* state )
-
从一个Philox4_32_10生成器返回两个正态分布的双精度数。
参数
- state
- - Pointer to state to update
返回
服从正态分布的双精度浮点数对(double2),其中每个元素均来自均值为0.0、标准差为1.0的分布
描述
从state中的Philox4_32_10生成器返回两个均值为0.0、标准差为1.0的正态分布双精度数,并将生成器的位置增加2。
该实现使用Box-Muller变换来生成两个正态分布的结果。
- __device__ double2 curand_normal2_double ( curandStateXORWOW_t* state )
-
从一个XORWOW生成器返回两个符合正态分布的双精度数。
参数
- state
- - Pointer to state to update
返回
服从正态分布的双精度浮点数对(double2),其中每个元素均来自均值为0.0、标准差为1.0的分布
描述
从state中的XORWOW生成器返回两个均值为0.0、标准差为1.0的正态分布双精度数,并将生成器位置递增2。
该实现使用Box-Muller变换来生成两个正态分布的结果。
- __device__ float4 curand_normal4 ( curandStatePhilox4_32_10_t* state )
-
从一个Philox4_32_10生成器返回四个符合正态分布的浮点数。
参数
- state
- - Pointer to state to update
返回
符合正态分布的float2类型,其中每个元素均来自均值为0.0f、标准差为1.0f的分布
描述
从state中的Philox4_32_10生成器返回四个符合正态分布的浮点数,其均值为0.0f,标准差为1.0f,并将生成器的位置增加四个。
该实现使用Box-Muller变换来生成两个正态分布的结果。
- __device__ double curand_normal_double ( curandStateScrambledSobol64_t* state )
-
返回一个来自加扰Sobol64生成器的正态分布双精度数。
参数
- state
- - Pointer to state to update
返回
均值为0.0且标准差为1.0的正态分布双精度数
描述
从state中的加扰Sobol64生成器返回一个均值为0.0、标准差为1.0的正态分布双精度数,并将生成器的位置递增一位。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ double curand_normal_double ( curandStateSobol64_t* state )
-
从Sobol64生成器返回一个正态分布的双精度数。
参数
- state
- - Pointer to state to update
返回
均值为0.0且标准差为1.0的正态分布双精度数
描述
从state中的Sobol64生成器返回一个均值为0.0、标准差为1.0的正态分布双精度数,并将生成器的位置递增一位。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ double curand_normal_double ( curandStateScrambledSobol32_t* state )
-
从一个经过扰动的Sobol32生成器返回一个符合正态分布的双精度数。
参数
- state
- - Pointer to state to update
返回
均值为0.0、标准差为1.0的正态分布双精度数
描述
从state中的加扰Sobol32生成器返回一个均值为0.0、标准差为1.0的正态分布双精度数,并将生成器的位置递增一位。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ double curand_normal_double ( curandStateSobol32_t* state )
-
从Sobol32生成器返回一个正态分布的双精度数。
参数
- state
- - Pointer to state to update
返回
均值为0.0且标准差为1.0的正态分布双精度数
描述
从Sobol32生成器的state中返回一个均值为0.0、标准差为1.0的正态分布双精度数,并将生成器的位置递增一位。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ double curand_normal_double ( curandStateMtgp32_t* state )
-
从MTGP32生成器返回一个符合正态分布的双精度数值。
参数
- state
- - Pointer to state to update
返回
均值为0.0、标准差为1.0的正态分布双精度数
描述
从MTGP32生成器state中返回一个均值为0.0、标准差为1.0的正态分布双精度数,并递增生成器的位置。
该实现使用逆累积分布函数来生成正态分布的结果。
- __device__ double curand_normal_double ( curandStateMRG32k3a_t* state )
-
返回一个来自MRG32k3a生成器的正态分布双精度数。
参数
- state
- - Pointer to state to update
返回
均值为0.0、标准差为1.0的正态分布双精度数
描述
从state中的XORWOW生成器返回一个均值为0.0、标准差为1.0的正态分布双精度数,并递增生成器的位置。
该实现采用Box-Muller变换生成两个正态分布结果,然后逐个返回。 请参阅curand_normal2_double()获取更高效的版本,该版本可同时返回两个结果。
- __device__ double curand_normal_double ( curandStatePhilox4_32_10_t* state )
-
从一个Philox4_32_10生成器返回符合正态分布的双精度数值。
参数
- state
- - Pointer to state to update
返回
均值为0.0且标准差为1.0的正态分布双精度数
描述
从state中的Philox4_32_10生成器返回一个均值为0.0、标准差为1.0的正态分布双精度数,并递增生成器的位置。
该实现使用Box-Muller变换生成两个正态分布结果,然后逐个返回。 请参阅curand_normal2_double()获取更高效的版本,该版本会同时返回两个结果。
- __device__ double curand_normal_double ( curandStateXORWOW_t* state )
-
从XORWOW生成器返回一个正态分布的双精度数。
参数
- state
- - Pointer to state to update
返回
均值为0.0且标准差为1.0的正态分布双精度数
描述
从state中的XORWOW生成器返回一个均值为0.0、标准差为1.0的正态分布双精度数,并递增生成器的位置。
该实现采用Box-Muller变换生成两个正态分布结果,然后逐个返回。 请参阅curand_normal2_double()获取更高效的版本,该版本会同时返回两个结果。
- __device__ unsigned int curand_poisson ( curandStateScrambledSobol64_t* state, double lambda )
-
从一个经过扰动的Sobol64生成器返回一个泊松分布的无符号整数。
参数
- state
- - Pointer to state to update
- lambda
- - Lambda of the Poisson distribution
返回
泊松分布的无符号整数,参数为lambda
描述
从state中的加扰Sobol64生成器中返回一个服从参数为lambda的泊松分布的无符号整型随机数,并将生成器位置递增1。
- __device__ unsigned int curand_poisson ( curandStateSobol64_t* state, double lambda )
-
从Sobol64生成器返回一个泊松分布的无符号整数。
参数
- state
- - Pointer to state to update
- lambda
- - Lambda of the Poisson distribution
返回
泊松分布的无符号整数,参数为lambda
描述
从Sobol64生成器state中返回一个服从参数为lambda的泊松分布的无符号整型数,并将生成器位置递增一位。
- __device__ unsigned int curand_poisson ( curandStateScrambledSobol32_t* state, double lambda )
-
从经过扰动的Sobol32生成器返回一个泊松分布的无符号整数。
参数
- state
- - Pointer to state to update
- lambda
- - Lambda of the Poisson distribution
返回
泊松分布的无符号整数,参数为lambda
描述
从状态state中的加扰Sobol32生成器中返回一个服从参数为lambda的泊松分布的无符号整型值,并将生成器的位置递增一位。
- __device__ unsigned int curand_poisson ( curandStateSobol32_t* state, double lambda )
-
从Sobol32生成器返回一个泊松分布的无符号整数。
参数
- state
- - Pointer to state to update
- lambda
- - Lambda of the Poisson distribution
返回
泊松分布的无符号整数,参数为lambda
描述
从Sobol32生成器state中返回一个符合泊松分布的无符号整数值,其参数为lambda,并将生成器的位置递增一位。
- __device__ unsigned int curand_poisson ( curandStateMtgp32_t* state, double lambda )
-
从MTGP32生成器返回一个泊松分布的无符号整数。
参数
- state
- - Pointer to state to update
- lambda
- - Lambda of the Poisson distribution
返回
泊松分布的无符号整数,参数为lambda
描述
从MTGP32生成器state中返回一个服从泊松分布(参数为lambda)的整数值,并将生成器的位置递增一位。
- __device__ unsigned int curand_poisson ( curandStateMRG32k3a_t* state, double lambda )
-
从MRG32k3A生成器返回一个泊松分布的无符号整数。
参数
- state
- - Pointer to state to update
- lambda
- - Lambda of the Poisson distribution
返回
泊松分布的无符号整数,参数为lambda
描述
从MRG32k3a生成器的state中返回一个服从泊松分布的无符号整数值,其参数为lambda,并根据所用算法以可变增量推进生成器的位置。
- __device__ unsigned int curand_poisson ( curandStatePhilox4_32_10_t* state, double lambda )
-
从Philox4_32_10生成器返回一个泊松分布的无符号整数。
参数
- state
- - Pointer to state to update
- lambda
- - Lambda of the Poisson distribution
返回
泊松分布的无符号整数,参数为lambda
描述
从state中的Philox4_32_10生成器返回一个服从泊松分布的无符号整数值,其参数为lambda,并根据所用算法以可变增量推进生成器的位置。
- __device__ unsigned int curand_poisson ( curandStateXORWOW_t* state, double lambda )
-
从XORWOW生成器返回一个泊松分布的无符号整数。
参数
- state
- - Pointer to state to update
- lambda
- - Lambda of the Poisson distribution
返回
泊松分布的无符号整数,参数为lambda
描述
从状态state中的XORWOW生成器返回一个服从参数为lambda的泊松分布的无符号整数值,并根据所用算法以可变增量推进生成器的位置。
- __device__ uint4 curand_poisson4 ( curandStatePhilox4_32_10_t* state, double lambda )
-
从一个Philox4_32_10生成器返回四个泊松分布的无符号整数。
参数
- state
- - Pointer to state to update
- lambda
- - Lambda of the Poisson distribution
返回
泊松分布的无符号整数,参数为lambda
描述
从状态state中的Philox4_32_10生成器返回四个无符号整数,这些整数服从参数为lambda的泊松分布,并根据所用算法以可变增量推进生成器的位置。
- __device__ float curand_uniform ( curandStateScrambledSobol64_t* state )
-
返回一个来自加扰Sobol64生成器的均匀分布浮点数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0f 和 1.0f 之间的浮点数
描述
从state中的加扰Sobol64生成器返回一个均匀分布在0.0f到1.0f之间的浮点数,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
该实现保证仅需调用一次curand()。
- __device__ float curand_uniform ( curandStateSobol64_t* state )
-
返回一个由Sobol64生成器生成的均匀分布浮点数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0f 和 1.0f 之间的浮点数
描述
从state中的Sobol64生成器返回一个均匀分布在0.0f到1.0f之间的浮点数,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
该实现保证仅需调用一次curand()。
- __device__ float curand_uniform ( curandStateScrambledSobol32_t* state )
-
从一个经过扰乱的Sobol32生成器中返回均匀分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0f 和 1.0f 之间的浮点数
描述
从state中的加扰Sobol32生成器返回一个均匀分布在0.0f到1.0f之间的浮点数,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
该实现保证仅需调用一次curand()。
- __device__ float curand_uniform ( curandStateSobol32_t* state )
-
从Sobol32生成器返回一个均匀分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0f 和 1.0f 之间的浮点数
描述
从state中的Sobol32生成器返回一个均匀分布在0.0f到1.0f之间的浮点数,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
该实现保证仅需调用一次curand()。
- __device__ float curand_uniform ( curandStateMtgp32_t* state )
-
返回一个由MTGP32生成器生成的均匀分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0f 和 1.0f 之间的浮点数
描述
从state中的MTGP32生成器返回一个均匀分布在0.0f到1.0f之间的浮点数,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
- __device__ float curand_uniform ( curandStatePhilox4_32_10_t* state )
-
从Philox4_32_10生成器返回一个均匀分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0 和 1.0 之间的浮点数
描述
从state中的Philox4_32_10生成器返回一个均匀分布在0.0f到1.0f之间的浮点数,同时递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
- __device__ float curand_uniform ( curandStateMRG32k3a_t* state )
-
返回一个由MRG32k3a生成器生成的均匀分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0f 和 1.0f 之间的浮点数
描述
从state中的MRG32k3a生成器返回一个均匀分布在0.0f到1.0f之间的浮点数,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
该实现返回最多23位尾数,最小返回值为\( 2^{-32} \)
- __device__ float curand_uniform ( curandStateXORWOW_t* state )
-
从XORWOW生成器返回一个均匀分布的浮点数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0f 和 1.0f 之间的浮点数
描述
从state中的XORWOW生成器返回一个均匀分布在0.0f到1.0f之间的浮点数,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
实现过程中可能会调用curand()任意次数来获取足够的随机比特位以生成返回值。当前实现仅调用一次。
- __device__ double2 curand_uniform2_double ( curandStatePhilox4_32_10_t* state )
-
从一个Philox4_32_10生成器返回均匀分布的2个双精度数元组。
参数
- state
- - Pointer to state to update
返回
两个均匀分布在 0.0 和 1.0 之间的双精度浮点数
描述
从state中的Philox4_32_10生成器返回两个均匀分布的double值(double4),范围在0.0到1.0之间,并将生成器的位置增加4。输出范围不包括0.0但包括1.0。永远不会返回非规格化的浮点数输出。
- __device__ float4 curand_uniform4 ( curandStatePhilox4_32_10_t* state )
-
从一个Philox4_32_10生成器返回均匀分布的4个浮点数元组。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0 和 1.0 之间的浮点数
描述
从state中的Philox4_32_10生成器返回4个均匀分布在0.0f到1.0f之间的浮点数,并将生成器的位置增加4。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
- __device__ double curand_uniform_double ( curandStateScrambledSobol64_t* state )
-
返回一个来自加扰Sobol64生成器的均匀分布双精度数。
参数
- state
- - Pointer to state to update
返回
均匀分布在0.0和1.0之间的双精度浮点数
描述
从state中的加扰Sobol64生成器返回一个均匀分布在0.0到1.0之间的双精度浮点数,并递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回非规格化的浮点数输出。
该实现保证仅调用一次curand(),以保持序列的准随机特性。
- __device__ double curand_uniform_double ( curandStateSobol64_t* state )
-
从Sobol64生成器返回一个均匀分布的双精度数。
参数
- state
- - Pointer to state to update
返回
均匀分布在0.0到1.0之间的双精度浮点数
描述
从state中的Sobol64生成器返回一个均匀分布在0.0到1.0之间的双精度数,并递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回非规格化的浮点数输出。
该实现保证仅调用一次curand()以保持序列的准随机特性。
- __device__ double curand_uniform_double ( curandStateScrambledSobol32_t* state )
-
返回一个来自加扰Sobol32生成器的均匀分布双精度数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0 和 1.0 之间的双精度浮点数
描述
从state中的加扰Sobol32生成器返回一个均匀分布在0.0到1.0之间的双精度浮点数,同时递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回非规格化的浮点数输出。
该实现保证仅调用一次curand(),以保持序列的准随机特性。
请注意,该实现仅使用32个随机位来生成一个双精度值。
- __device__ double curand_uniform_double ( curandStateSobol32_t* state )
-
从Sobol32生成器返回一个均匀分布的双精度数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0 和 1.0 之间的双精度浮点数
描述
从Sobol32生成器的state中返回一个均匀分布在0.0到1.0之间的双精度数,并递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回非规格化的浮点数输出。
该实现保证仅调用一次curand(),以保持序列的准随机特性。
请注意,该实现仅使用32个随机位来生成一个双精度值。
- __device__ double curand_uniform_double ( curandStatePhilox4_32_10_t* state )
-
从Philox4_32_10生成器返回一个均匀分布的双精度数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0f 和 1.0f 之间的双精度数
描述
从state中的Philox4_32_10生成器返回一个均匀分布在0.0f到1.0f之间的双精度浮点数,同时递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
请注意,该实现仅使用32个随机位来生成一个双精度值。
curand_uniform2_double() 推荐用于生成更高质量的双精度均匀分布值。
- __device__ double curand_uniform_double ( curandStateMtgp32_t* state )
-
从MTGP32生成器返回一个均匀分布的双精度数。
参数
- state
- - Pointer to state to update
返回
均匀分布在 0.0f 和 1.0f 之间的双精度浮点数
描述
从MTGP32生成器state中返回一个均匀分布在0.0f到1.0f之间的双精度浮点数,同时递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回非规格化的浮点数输出。
请注意,该实现仅使用32个随机位来生成一个双精度值。
- __device__ double curand_uniform_double ( curandStateMRG32k3a_t* state )
-
返回一个来自MRG32k3a生成器的均匀分布双精度数。
参数
- state
- - Pointer to state to update
返回
均匀分布在0.0和1.0之间的双精度浮点数
描述
从state中的MRG32k3a生成器返回一个均匀分布在0.0到1.0之间的双精度浮点数,并递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回非规格化的浮点数输出。
请注意,该实现最多返回32位随机尾数位,如L'Ecuyer的开创性论文所述。
- __device__ double curand_uniform_double ( curandStateXORWOW_t* state )
-
从XORWOW生成器返回一个均匀分布的双精度数。
参数
- state
- - Pointer to state to update
返回
均匀分布在0.0和1.0之间的双精度浮点数
描述
从state中的XORWOW生成器返回一个均匀分布在0.0到1.0之间的双精度浮点数,同时递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回非规格化的浮点数输出。
实现过程中可能会调用curand()任意次数以获取足够的随机比特位来生成返回值。当前实现方案精确调用了两次。
-
模板 < 类型名 T >
__device__ CURAND_STD::enable_if < CURAND_STD::is_same < curandStateSobol64_t* > ::type skipahead ( unsigned long long n, T state ) [inline] -
Update Sobol64 state to skip n elements.
参数
- n
- - Number of elements to skip
- state
- - Pointer to state to update
描述
更新state中的Sobol64状态,跳过n个元素。
n的所有取值都是有效的。
-
模板 < 类型名 T >
__device__ CURAND_STD::enable_if < CURAND_STD::is_same < curandStateSobol32_t* > ::type skipahead ( unsigned int n, T state ) [inline] -
Update Sobol32 state to skip n elements.
参数
- n
- - Number of elements to skip
- state
- - Pointer to state to update
描述
将Sobol32状态更新到state中,以跳过n个元素。
n的所有取值都是有效的。
- __device__ void skipahead ( unsigned long long n, curandStateMRG32k3a_t* state )
-
Update MRG32k3a state to skip n elements.
参数
- n
- - Number of elements to skip
- state
- - Pointer to state to update
描述
更新state中的MRG32k3a状态,使其跳过n个元素。
n的所有取值都是有效的。较大的值需要更多计算量,因此完成时间会更长。
- __device__ void skipahead ( unsigned long long n, curandStatePhilox4_32_10_t* state )
-
Update Philox4_32_10 state to skip n elements.
参数
- n
- - Number of elements to skip
- state
- - Pointer to state to update
描述
更新state中的Philox4_32_10状态,跳过n个元素。
n的所有取值都是有效的。
- __device__ void skipahead ( unsigned long long n, curandStateXORWOW_t* state )
-
Update XORWOW state to skip n elements.
参数
- n
- - Number of elements to skip
- state
- - Pointer to state to update
描述
更新state中的XORWOW状态,跳过n个元素。
n的所有取值都是有效的。较大的值需要更多计算量,因此完成时间会更长。
- __device__ void skipahead_sequence ( unsigned long long n, curandStateMRG32k3a_t* state )
-
Update MRG32k3a state to skip ahead n sequences.
参数
- n
- - Number of sequences to skip
- state
- - Pointer to state to update
描述
更新state中的MRG32k3a状态,使其跳过n个序列。每个序列长度为2127个元素,因此该函数将跳过2127 * n个元素。
n的所有取值都是有效的。较大的值需要更多计算量,因此完成时间会更长。
- __device__ void skipahead_sequence ( unsigned long long n, curandStatePhilox4_32_10_t* state )
-
Update Philox4_32_10 state to skip ahead n subsequences.
参数
- n
- - Number of subsequences to skip
- state
- - Pointer to state to update
描述
更新state中的Philox4_32_10状态,以跳过n个子序列。每个子序列长度为266个元素,因此该函数将跳过266 * n个元素。
n的所有取值都是有效的。
- __device__ void skipahead_sequence ( unsigned long long n, curandStateXORWOW_t* state )
-
Update XORWOW state to skip ahead n subsequences.
参数
- n
- - Number of subsequences to skip
- state
- - Pointer to state to update
描述
更新state中的XORWOW状态,跳过n个子序列。每个子序列长度为267个元素,因此该函数将跳过267 * n个元素。
n的所有取值都是有效的。较大的值需要更多计算量,因此完成时间会更长。
- __device__ void skipahead_subsequence ( unsigned long long n, curandStateMRG32k3a_t* state )
-
Update MRG32k3a state to skip ahead n subsequences.
参数
- n
- - Number of subsequences to skip
- state
- - Pointer to state to update
描述
更新state中的MRG32k3a状态,使其跳过n个子序列。每个子序列长度为2127
276 个元素长,这意味着该函数将跳过 267 * n 个元素。
n的有效取值范围是0到251。注意n将被掩码处理为51位