1#ifndef LMMC_STATISTICS_INTERNAL_H
2#define LMMC_STATISTICS_INTERNAL_H
17 return lmmc_vec_descriptor_is_valid(x)
23 return lmmc_mat_descriptor_is_valid(x)
30 if (!lmmc_is_finite(&value) || out_value == NULL) {
59#define LMMC_SQRT_2PI 2.5066282746310002
62#ifndef LMMC_LOG_SQRT_2PI
63#define LMMC_LOG_SQRT_2PI 0.9189385332046727
78 double x,
double complement_x,
double a,
double b,
double* out_log_kernel);
LMMC binary real type and arithmetic spelling.
#define LMMC_REAL_CLEAR(x)
释放一个 lmmc_real_t 变量(POD 类型为空操作)。
#define LMMC_REAL_INIT(x)
初始化一个 lmmc_real_t 变量(POD 类型为空操作)。
double lmmc_real_t
Public and internal LMMC real type.
#define LMMC_REAL_SET(dst, src)
将一个 lmmc_real_t 赋值到另一个:*dst = *src 。
#define LMMC_REAL_EPSILON
既有算法的经验近似阈值,非机器 epsilon。
#define LMMC_REAL_CMP(a, b)
比较 *a 与 *b ,返回 -1/0/1 。
#define LMMC_REAL_NEG(res, a)
取相反数,*res = -*a 。
#define LMMC_REAL_SET_D(dst, dbl)
将一个 double 字面量赋值到 lmmc_real_t 。
Private recoverable allocator for persistent LMMC ownership.
lmmc_status_t lmmc_log_beta(double a, double b, double *out_log_beta)
稳定计算 log B(a,b) 和 log(x^a complement_x^b / B(a,b))。 独立传入补数以保留微小上尾;负无穷表示有效下溢,失败时输出保持不变。
lmmc_real_t lmmc_stirling_error(lmmc_real_t x)
lmmc_status_t regularized_gamma_lower(lmmc_real_t a, lmmc_real_t x, lmmc_real_t *out)
正则化不完全伽马函数下尾 P(a, x) = gamma(a, x) / Gamma(a)。 使用级数展开或连分数展开。
lmmc_status_t regularized_gamma_upper_cf(lmmc_real_t a, lmmc_real_t x, lmmc_real_t *out)
正则化不完全伽马函数上尾 Q(a, x) = 1 - P(a, x)。 使用 Lentz 连分数展开。
lmmc_status_t regularized_beta(lmmc_real_t x, lmmc_real_t a, lmmc_real_t b, lmmc_real_t *out)
lmmc_status_t regularized_beta_upper(lmmc_real_t x, lmmc_real_t a, lmmc_real_t b, lmmc_real_t *out)
计算上尾;1 - x 舍入至端点时仍保留 x。
lmmc_real_t lmmc_log_gamma_stirling_error(lmmc_real_t x)
lmmc_status_t regularized_gamma_upper(lmmc_real_t a, lmmc_real_t x, lmmc_real_t *out)
正则化不完全伽马函数上尾 Q(a, x)。
lmmc_real_t lmmc_deviance_part(lmmc_real_t x, lmmc_real_t mean)
lmmc_status_t lmmc_beta_log_kernel(double x, double complement_x, double a, double b, double *out_log_kernel)
lmmc_status_t
LMMC 库统一返回的状态码.
@ LMMC_STATUS_NUMERICAL_FAILURE
@ LMMC_STATUS_INVALID_ARGUMENT