生成函数#
nvplRandGenerate#
nvplRandGenerate()
用于为 XORWOW、MRG32k3a、MT19937、Philox_4x32_10、PCG、SOBOL32 和 Scrambled SOBOL32 生成器生成伪随机或准随机输出位。每个输出元素都是一个 32 位无符号整数,其中所有位都是随机的。nvplRandGenerate()
对于 SOBOL64 或 Scrambled SOBOL64 生成器,返回 NVPL_RAND_STATUS_GENERATOR_TYPE_ERROR
。
-
nvplRandStatus_t nvplRandGenerate(nvplRandGenerator_t gen, unsigned int *outputPtr, const size_t num)
nvplRandGenerateLongLong#
nvplRandGenerateLongLong()
用于为 PCG、SOBOL64 和 Scrambled SOBOL64 生成器生成伪随机或准随机输出位。每个输出元素都是一个 64 位无符号整数,其中所有位都是随机的。nvplRandGenerateLongLong()
对于 SOBOL32 或 Scrambled SOBOL32 生成器,以及除 PCG 之外的所有伪随机生成器,返回 NVPL_RAND_STATUS_GENERATOR_TYPE_ERROR
。
-
nvplRandStatus_t nvplRandGenerateLongLong(nvplRandGenerator_t gen, unsigned long long *outputPtr, const size_t num)
nvplRandGenerateUniform#
nvplRandGenerateUniform()
用于生成 (0.0, 1.0] 范围内的均匀分布 FP32 值,其中排除 0.0,包含 1.0。
-
nvplRandStatus_t nvplRandGenerateUniform(nvplRandGenerator_t gen, float *outputPtr, const size_t num)
nvplRandGenerateUniformDouble#
nvplRandGenerateUniformDouble()
用于生成 (0.0, 1.0] 范围内的均匀分布 FP64 值,其中排除 0.0,包含 1.0。
-
nvplRandStatus_t nvplRandGenerateUniformDouble(nvplRandGenerator_t gen, double *outputPtr, const size_t num)
nvplRandGenerateUniformRange#
nvplRandGenerateUniformRange()
用于生成 (start, end] 范围内的均匀分布 FP32 值,其中排除 start,包含 end。
-
nvplRandStatus_t nvplRandGenerateUniformRange(nvplRandGenerator_t gen, float *outputPtr, const size_t num, const float start, const float end)
nvplRandGenerateUniformRangeDouble#
nvplRandGenerateUniformRangeDouble()
用于生成 (start, end] 范围内的均匀分布 FP64 值,其中排除 start,包含 end。
-
nvplRandStatus_t nvplRandGenerateUniformDouble(nvplRandGenerator_t gen, double *outputPtr, const size_t num)
nvplRandGenerateNormal#
nvplRandGenerateNormal()
用于生成具有给定均值和标准差的正态分布 FP32 值。
-
nvplRandStatus_t nvplRandGenerateNormal(nvplRandGenerator_t gen, float *outputPtr, const size_t num, const float mean, const float stddev)
nvplRandGenerateNormalDouble#
nvplRandGenerateNormal()
用于生成具有给定均值和标准差的正态分布 FP64 值。
-
nvplRandStatus_t nvplRandGenerateNormalDouble(nvplRandGenerator_t gen, double *outputPtr, const size_t num, const double mean, const double stddev)
nvplRandGenerateDistribution#
nvplRandGenerateDistribution()
用于根据 config 指定的连续分布类型和参数生成 FP32 值。NVPL RAND 库支持以下连续分布
均匀分布
正态分布
对数正态分布
指数分布
伽马分布
Beta 分布
狄利克雷分布
-
nvplRandStatus_t nvplRandGenerateDistribution(nvplRandGenerator_t gen, float *outputPtr, const nvplRandDistributionConfig_t config, const size_t num)
nvplRandGenerateDistributionDouble#
nvplRandGenerateDistributionDouble()
用于根据 config 指定的连续分布类型和参数生成 FP64 值。
-
nvplRandStatus_t nvplRandGenerateDistributionDouble(nvplRandGenerator_t gen, double *outputPtr, const nvplRandDistributionConfig_t config, const size_t num)
nvplRandGenerateDistributionDiscrete#
nvplRandGenerateDistributionDiscrete()
用于根据 config 指定的离散分布类型和参数生成无符号 32 位整数值。NVPL RAND 库支持以下离散分布
泊松分布
伯努利分布
类别分布
二项分布
多项分布
-
nvplRandStatus_t nvplRandGenerateDistributionDiscrete(nvplRandGenerator_t gen, unsigned int *outputPtr, const nvplRandDistributionConfig_t distConfig, const size_t num)