|
LMMC
Lamina Mathematic core
|
函数 | |
| lmmc_status_t | lmmc_rng_gamma (lmmc_rng_t *rng, lmmc_real_t shape, lmmc_real_t scale, lmmc_real_t *out) |
| 生成 Gamma 分布样本 \(\mathrm{Gamma}(\alpha, \beta)\) 。 | |
| lmmc_status_t | lmmc_rng_beta (lmmc_rng_t *rng, lmmc_real_t alpha, lmmc_real_t beta_param, lmmc_real_t *out) |
| 生成 Beta 分布样本 Beta(alpha, beta)。 | |
| lmmc_status_t | lmmc_rng_chi_squared (lmmc_rng_t *rng, lmmc_real_t df, lmmc_real_t *out) |
| 生成卡方分布样本 Chi-squared(df)。 | |
| lmmc_status_t | lmmc_rng_student_t (lmmc_rng_t *rng, lmmc_real_t df, lmmc_real_t *out) |
| 生成 Student-t 分布样本 t(df)。 | |
| lmmc_status_t | lmmc_rng_f (lmmc_rng_t *rng, lmmc_real_t df1, lmmc_real_t df2, lmmc_real_t *out) |
| 生成 F 分布样本 F(df1, df2)。 | |
| lmmc_status_t lmmc_rng_gamma | ( | lmmc_rng_t * | rng, |
| lmmc_real_t | shape, | ||
| lmmc_real_t | scale, | ||
| lmmc_real_t * | out ) |
生成 Gamma 分布样本 \(\mathrm{Gamma}(\alpha, \beta)\) 。
使用 Marsaglia-Tsang 方法(shape >= 1),shape < 1 时使用 \(X = Y \cdot U^{1/\alpha}\) 变换法(Y ~ Gamma(1+α, β))。
| [in] | rng | 已初始化的 RNG。 |
| [in] | shape | 形状参数 \(\alpha\) (> 0)。 |
| [in] | scale | 尺度参数 \(\beta\) (> 0)。 |
| [out] | out | 输出样本值。 |
rng 的内部状态(消耗多个随机数,次数不确定)。shape < 1 时采用采样恒等式 Gamma(shape) = Gamma(shape+1) * U^(1/shape)。
shape >= 1 时使用 Marsaglia-Tsang 法。
以挤压界快速判定接受。
按完整接受条件判定候选值。
在文件 random_continuous.c 第 4 行定义.
引用了 lmmc_rng_gamma(), lmmc_rng_standard_normal(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 lmmc_rng_t::state.
被这些函数引用 lmmc_rng_chi_squared() , 以及 lmmc_rng_gamma().
| lmmc_status_t lmmc_rng_beta | ( | lmmc_rng_t * | rng, |
| lmmc_real_t | alpha, | ||
| lmmc_real_t | beta_param, | ||
| lmmc_real_t * | out ) |
生成 Beta 分布样本 Beta(alpha, beta)。
| [in] | rng | 已初始化的 RNG。 |
| [in] | alpha | 参数 alpha(> 0)。 |
| [in] | beta_param | 参数 beta(> 0)。 |
| [out] | out | [0,1] 内的有限样本,仅成功时写入。 对数 Gamma 比例支持极小形状参数;舍入或下溢可产生端点 0/1。 |
在文件 random_continuous.c 第 117 行定义.
引用了 lmmc_rng_beta(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_rng_beta().
| lmmc_status_t lmmc_rng_chi_squared | ( | lmmc_rng_t * | rng, |
| lmmc_real_t | df, | ||
| lmmc_real_t * | out ) |
生成卡方分布样本 Chi-squared(df)。
| [in] | rng | 已初始化的 RNG。 |
| [in] | df | 自由度(> 0)。 |
| [out] | out | 有限且非负的样本,仅成功时写入;极小正自由度可舍入为零。 |
在文件 random_continuous.c 第 147 行定义.
引用了 lmmc_rng_chi_squared(), lmmc_rng_gamma(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 lmmc_rng_t::state.
被这些函数引用 lmmc_rng_chi_squared(), lmmc_rng_f() , 以及 lmmc_rng_student_t().
| lmmc_status_t lmmc_rng_student_t | ( | lmmc_rng_t * | rng, |
| lmmc_real_t | df, | ||
| lmmc_real_t * | out ) |
生成 Student-t 分布样本 t(df)。
| [in] | rng | 已初始化的 RNG。 |
| [in] | df | 自由度(> 0)。 |
| [out] | out | 有限样本,仅成功时写入。 |
在文件 random_continuous.c 第 177 行定义.
引用了 lmmc_rng_chi_squared(), lmmc_rng_standard_normal(), lmmc_rng_student_t(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK , 以及 lmmc_rng_t::state.
被这些函数引用 lmmc_rng_student_t().
| lmmc_status_t lmmc_rng_f | ( | lmmc_rng_t * | rng, |
| lmmc_real_t | df1, | ||
| lmmc_real_t | df2, | ||
| lmmc_real_t * | out ) |
生成 F 分布样本 F(df1, df2)。
| [in] | rng | 已初始化的 RNG。 |
| [in] | df1 | 分子自由度(> 0)。 |
| [in] | df2 | 分母自由度(> 0)。 |
| [out] | out | 有限且非负的样本,仅成功时写入。 |
在文件 random_continuous.c 第 211 行定义.
引用了 lmmc_rng_chi_squared(), lmmc_rng_f(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_rng_f().