生成函数#

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)