Generation Functions#

nvplRandGenerate#

nvplRandGenerate() is used to generate pseudo- or quasirandom bits of output for XORWOW, MRG32k3a, MT19937, Philox_4x32_10, PCG, SOBOL32, and Scrambled SOBOL32 generators. Each output element is a 32-bit unsigned integer where all bits are random. nvplRandGenerate() returns NVPL_RAND_STATUS_GENERATOR_TYPE_ERROR for SOBOL64 or Scrambled SOBOL64 generators.

nvplRandStatus_t nvplRandGenerate(nvplRandGenerator_t gen, unsigned int *outputPtr, const size_t num)

nvplRandGenerateLongLong#

nvplRandGenerateLongLong() is used to generate pseudo- or quasirandom bits of output for PCG, SOBOL64, and Scrambled SOBOL64 generators. Each output element is a 64-bit unsigned integer where all bits are random. nvplRandGenerateLongLong() returns NVPL_RAND_STATUS_GENERATOR_TYPE_ERROR for SOBOL32 or Scrambled SOBOL32 generators, as well all the pseudorandom generators except PCG.

nvplRandStatus_t nvplRandGenerateLongLong(nvplRandGenerator_t gen, unsigned long long *outputPtr, const size_t num)

nvplRandGenerateUniform#

nvplRandGenerateUniform() is used to generate uniformly distributed FP32 values in the range of (0.0, 1.0], where 0.0 is excluded and 1.0 is included.

nvplRandStatus_t nvplRandGenerateUniform(nvplRandGenerator_t gen, float *outputPtr, const size_t num)

nvplRandGenerateUniformDouble#

nvplRandGenerateUniformDouble() is used to generate uniformly distributed FP64 values in the range of (0.0, 1.0], where 0.0 is excluded and 1.0 is included.

nvplRandStatus_t nvplRandGenerateUniformDouble(nvplRandGenerator_t gen, double *outputPtr, const size_t num)

nvplRandGenerateUniformRange#

nvplRandGenerateUniformRange() is used to generate uniformly distributed FP32 values in the range of (start, end], where start is excluded and end is included.

nvplRandStatus_t nvplRandGenerateUniformRange(nvplRandGenerator_t gen, float *outputPtr, const size_t num, const float start, const float end)

nvplRandGenerateUniformRangeDouble#

nvplRandGenerateUniformRangeDouble() is used to generate uniformly distributed FP64 values in the range of (start, end], where start is excluded and end is included.

nvplRandStatus_t nvplRandGenerateUniformDouble(nvplRandGenerator_t gen, double *outputPtr, const size_t num)

nvplRandGenerateNormal#

nvplRandGenerateNormal() is used to generate normally distributed FP32 values with the given mean and standard deviation.

nvplRandStatus_t nvplRandGenerateNormal(nvplRandGenerator_t gen, float *outputPtr, const size_t num, const float mean, const float stddev)

nvplRandGenerateNormalDouble#

nvplRandGenerateNormal() is used to generate normally distributed FP64 values with the given mean and standard deviation.

nvplRandStatus_t nvplRandGenerateNormalDouble(nvplRandGenerator_t gen, double *outputPtr, const size_t num, const double mean, const double stddev)

nvplRandGenerateDistribution#

nvplRandGenerateDistribution() is used to generate FP32 values based on the continuous distribution type and parameters specified by config. NVPL RAND library supports the following continuous distributions:

  • Uniform

  • Normal

  • Lognormal

  • Exponential

  • Gamma

  • Beta

  • Dirichlet

nvplRandStatus_t nvplRandGenerateDistribution(nvplRandGenerator_t gen, float *outputPtr, const nvplRandDistributionConfig_t config, const size_t num)

nvplRandGenerateDistributionDouble#

nvplRandGenerateDistributionDouble() is used to generate FP64 values based on the continuous distribution type and parameters specified by config.

nvplRandStatus_t nvplRandGenerateDistributionDouble(nvplRandGenerator_t gen, double *outputPtr, const nvplRandDistributionConfig_t config, const size_t num)

nvplRandGenerateDistributionDiscrete#

nvplRandGenerateDistributionDiscrete() is used to generate unsigned 32-bit interger values based on the discrete distribution type and parameters specified by config. NVPL RAND library supports the following discrete distributions:

  • Poisson

  • Bernoulli

  • Categorical

  • Binomial

  • Multinomial

nvplRandStatus_t nvplRandGenerateDistributionDiscrete(nvplRandGenerator_t gen, unsigned int *outputPtr, const nvplRandDistributionConfig_t distConfig, const size_t num)