|
LMMC
Lamina Mathematic core
|
函数 | |
| lmmc_status_t | lmmc_rng_poisson (lmmc_rng_t *rng, lmmc_real_t lambda, size_t *out) |
| 生成 Poisson 分布样本 \(\mathrm{Poisson}(\lambda)\) 。 | |
| lmmc_status_t | lmmc_rng_binomial (lmmc_rng_t *rng, size_t n, lmmc_real_t p, size_t *out) |
| 生成二项分布样本 Binomial(n, p)。 | |
| lmmc_status_t lmmc_rng_poisson | ( | lmmc_rng_t * | rng, |
| lmmc_real_t | lambda, | ||
| size_t * | out ) |
生成 Poisson 分布样本 \(\mathrm{Poisson}(\lambda)\) 。
lambda >= 10 使用 PTRD(Hörmann)算法(接受-拒绝), lambda < 10 使用逆变换法(Knuth 方法)。
| [in] | rng | 已初始化的 RNG。 |
| [in] | lambda | 期望值(> 0)。 |
| [out] | out | 输出样本值(非负整数)。 |
out 仅成功时写入,失败时 RNG 状态可能已推进。 在文件 random_discrete.c 第 94 行定义.
引用了 lmmc_rng_poisson(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 lmmc_rng_t::state.
被这些函数引用 lmmc_rng_poisson().
| lmmc_status_t lmmc_rng_binomial | ( | lmmc_rng_t * | rng, |
| size_t | n, | ||
| lmmc_real_t | p, | ||
| size_t * | out ) |
生成二项分布样本 Binomial(n, p)。
小均值参数使用精确逆 CDF,其余参数使用 BTPE 接受-拒绝算法; 超过 IEEE-754 精确整数范围的 n 会拆分为独立精确子问题。
| [in] | rng | 已初始化的 RNG。 |
| [in] | n | 试验次数。 |
| [in] | p | 有限成功概率(0 <= p <= 1)。 |
| [out] | out | 输出样本值;参数无效时保持不变。 |
在文件 random_discrete.c 第 275 行定义.
引用了 lmmc_rng_binomial(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 lmmc_rng_t::state.
被这些函数引用 lmmc_rng_binomial().