LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
stats.h 文件参考

基础统计量与组合数学接口。 更多...

#include "lmmc/dense.h"
#include <stdint.h>
stats.h 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

浏览该文件的源代码.

函数

void lmmc_stats_factorial (lmmc_real_t *out_val, uint32_t n)
 计算 \(n!\) ,溢出时按 IEEE-754 规则返回 inf 。
void lmmc_stats_npr (lmmc_real_t *out_val, uint32_t n, uint32_t r)
 计算排列数 \(P(n,r)=n!/(n-r)!\) 。
void lmmc_stats_ncr (lmmc_real_t *out_val, uint32_t n, uint32_t r)
 计算组合数 \(C(n,r)=\binom{n}{r}\) 的近似 binary64 值。 r>n 返回 0;r=0 或 r=n 返回 1。乘除递推处理可溢出的中间乘积, 仅最终结果不可表示时返回正 inf。输出为 NULL 时直接返回。
lmmc_status_t lmmc_vec_mean (const lmmc_vec_t *x, lmmc_real_t *out_mean)
 计算向量样本均值 \(\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i\) 。
lmmc_status_t lmmc_vec_variance_population (const lmmc_vec_t *x, lmmc_real_t *out_variance)
 总体方差 \(\sigma^2 = \frac{1}{n}\sum (x_i-\bar{x})^2\) 。
lmmc_status_t lmmc_vec_variance_sample (const lmmc_vec_t *x, lmmc_real_t *out_variance)
 计算样本方差 \(s^2 = \frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})^2\) 。
lmmc_status_t lmmc_vec_stddev_population (const lmmc_vec_t *x, lmmc_real_t *out_stddev)
 总体标准差。 缩放计算支持方差超出 binary64 范围的情况。 输入非有限或标准差结果溢出时返回 ::LMMC_STATUS_NUMERICAL_FAILURE。
lmmc_status_t lmmc_vec_stddev_sample (const lmmc_vec_t *x, lmmc_real_t *out_stddev)
 样本标准差,要求 n>=2 。 缩放计算支持方差超出 binary64 范围的情况。 输入非有限或标准差结果溢出时返回 ::LMMC_STATUS_NUMERICAL_FAILURE。
lmmc_status_t lmmc_vec_covariance_population (const lmmc_vec_t *x, const lmmc_vec_t *y, lmmc_real_t *out_covariance)
 总体协方差 \(\mathrm{Cov}(X,Y)\) 。
lmmc_status_t lmmc_vec_covariance_sample (const lmmc_vec_t *x, const lmmc_vec_t *y, lmmc_real_t *out_covariance)
 样本协方差,要求 n>=2 。
lmmc_status_t lmmc_vec_correlation_population (const lmmc_vec_t *x, const lmmc_vec_t *y, lmmc_real_t *out_correlation)
 总体 Pearson 相关系数。
lmmc_status_t lmmc_vec_correlation_sample (const lmmc_vec_t *x, const lmmc_vec_t *y, lmmc_real_t *out_correlation)
 样本 Pearson 相关系数;使用同一缩放累计路径,要求 n>=2。
lmmc_status_t lmmc_mat_column_mean (const lmmc_mat_t *x, lmmc_vec_t *out_means)
 计算矩阵各列均值,输出长度为 x->cols 的向量。
lmmc_status_t lmmc_mat_covariance_population (const lmmc_mat_t *x, lmmc_mat_t *out_covariance)
 计算总体协方差矩阵(cols × cols)。
lmmc_status_t lmmc_mat_covariance_sample (const lmmc_mat_t *x, lmmc_mat_t *out_covariance)
 计算样本协方差矩阵(cols × cols),要求行数 >= 2 。
lmmc_status_t lmmc_mat_correlation_population (const lmmc_mat_t *x, lmmc_mat_t *out_correlation)
 计算总体 Pearson 相关矩阵。
lmmc_status_t lmmc_mat_correlation_sample (const lmmc_mat_t *x, lmmc_mat_t *out_correlation)
 使用同一缩放路径计算样本 Pearson 相关矩阵,要求行数 >= 2。
lmmc_status_t lmmc_vec_median (const lmmc_vec_t *x, lmmc_real_t *out)
 计算向量中位数。
lmmc_status_t lmmc_vec_quantile (const lmmc_vec_t *x, lmmc_real_t p, lmmc_real_t *out)
 计算向量的 p 分位数(线性插值法)。
lmmc_status_t lmmc_vec_histogram (const lmmc_vec_t *x, size_t nbins, lmmc_real_t *edges, size_t *counts)
 计算向量的等宽直方图。
lmmc_status_t lmmc_dist_normal_pdf (lmmc_real_t x, lmmc_real_t mu, lmmc_real_t sigma, lmmc_real_t *out)
 连续分布函数的公共参数约束。
lmmc_status_t lmmc_dist_normal_cdf (lmmc_real_t x, lmmc_real_t mu, lmmc_real_t sigma, lmmc_real_t *out)
 正态分布累积分布函数。
lmmc_status_t lmmc_dist_normal_quantile (lmmc_real_t p, lmmc_real_t mu, lmmc_real_t sigma, lmmc_real_t *out)
 正态分布分位数函数(逆 CDF)。
lmmc_status_t lmmc_dist_t_pdf (lmmc_real_t x, lmmc_real_t df, lmmc_real_t *out)
 t 分布概率密度函数。
lmmc_status_t lmmc_dist_t_cdf (lmmc_real_t x, lmmc_real_t df, lmmc_real_t *out)
 t 分布累积分布函数。
lmmc_status_t lmmc_dist_t_quantile (lmmc_real_t p, lmmc_real_t df, lmmc_real_t *out)
 t 分布分位数函数。
lmmc_status_t lmmc_dist_chi2_pdf (lmmc_real_t x, lmmc_real_t df, lmmc_real_t *out)
 χ² 分布概率密度函数。
lmmc_status_t lmmc_dist_chi2_cdf (lmmc_real_t x, lmmc_real_t df, lmmc_real_t *out)
 χ² 分布累积分布函数。
lmmc_status_t lmmc_dist_chi2_quantile (lmmc_real_t p, lmmc_real_t df, lmmc_real_t *out)
 χ² 分布分位数函数。
lmmc_status_t lmmc_dist_f_pdf (lmmc_real_t x, lmmc_real_t df1, lmmc_real_t df2, lmmc_real_t *out)
 F 分布概率密度函数。
lmmc_status_t lmmc_dist_f_cdf (lmmc_real_t x, lmmc_real_t df1, lmmc_real_t df2, lmmc_real_t *out)
 F 分布累积分布函数。
lmmc_status_t lmmc_dist_f_quantile (lmmc_real_t p, lmmc_real_t df1, lmmc_real_t df2, lmmc_real_t *out)
 F 分布分位数函数。
lmmc_status_t lmmc_dist_gamma_pdf (lmmc_real_t x, lmmc_real_t shape, lmmc_real_t scale, lmmc_real_t *out)
 伽马分布概率密度函数。
lmmc_status_t lmmc_dist_gamma_cdf (lmmc_real_t x, lmmc_real_t shape, lmmc_real_t scale, lmmc_real_t *out)
 伽马分布累积分布函数。
lmmc_status_t lmmc_dist_gamma_quantile (lmmc_real_t p, lmmc_real_t shape, lmmc_real_t scale, lmmc_real_t *out)
 伽马分布分位数函数。
lmmc_status_t lmmc_dist_beta_pdf (lmmc_real_t x, lmmc_real_t alpha, lmmc_real_t beta, lmmc_real_t *out)
 贝塔分布概率密度函数。
lmmc_status_t lmmc_dist_beta_cdf (lmmc_real_t x, lmmc_real_t alpha, lmmc_real_t beta, lmmc_real_t *out)
 贝塔分布累积分布函数。
lmmc_status_t lmmc_dist_beta_quantile (lmmc_real_t p, lmmc_real_t alpha, lmmc_real_t beta, lmmc_real_t *out)
 贝塔分布分位数函数。
lmmc_status_t lmmc_dist_binomial_pmf (size_t k, size_t n, lmmc_real_t p, lmmc_real_t *out)
 离散分布函数的公共参数约束。
lmmc_status_t lmmc_dist_binomial_cdf (size_t k, size_t n, lmmc_real_t p_param, lmmc_real_t *out)
 二项分布累积分布函数。
lmmc_status_t lmmc_dist_poisson_pmf (size_t k, lmmc_real_t lambda, lmmc_real_t *out)
 泊松分布概率质量函数。
lmmc_status_t lmmc_dist_poisson_cdf (size_t k, lmmc_real_t lambda, lmmc_real_t *out)
 泊松分布累积分布函数;直接计算正则化上不完全伽马尾。

详细描述

基础统计量与组合数学接口。

提供阶乘、排列数 npr、组合数 ncr,以及一维向量与列优先矩阵的 均值、方差、标准差、协方差、相关系数等。

在文件 stats.h 中定义.

函数说明

◆ lmmc_stats_factorial()

void lmmc_stats_factorial ( lmmc_real_t * out_val,
uint32_t n )

计算 \(n!\) ,溢出时按 IEEE-754 规则返回 inf 。

在文件 statistics_combinatorics.c 第 13 行定义.

引用了 LMMC_REAL_SET, LMMC_REAL_SET_D , 以及 lmmc_stats_factorial().

被这些函数引用 lmmc_stats_factorial().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_stats_npr()

void lmmc_stats_npr ( lmmc_real_t * out_val,
uint32_t n,
uint32_t r )

计算排列数 \(P(n,r)=n!/(n-r)!\) 。

在文件 statistics_combinatorics.c 第 29 行定义.

引用了 LMMC_REAL_SET, LMMC_REAL_SET_D , 以及 lmmc_stats_npr().

被这些函数引用 lmmc_stats_npr().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_stats_ncr()

void lmmc_stats_ncr ( lmmc_real_t * out_val,
uint32_t n,
uint32_t r )

计算组合数 \(C(n,r)=\binom{n}{r}\) 的近似 binary64 值。 r>n 返回 0;r=0 或 r=n 返回 1。乘除递推处理可溢出的中间乘积, 仅最终结果不可表示时返回正 inf。输出为 NULL 时直接返回。

尾数乘积小于 2^32;完成除法归一化后再检查结果可表示性。

在文件 statistics_combinatorics.c 第 49 行定义.

引用了 LMMC_REAL_SET_D , 以及 lmmc_stats_ncr().

被这些函数引用 lmmc_stats_ncr().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_mean()

lmmc_status_t lmmc_vec_mean ( const lmmc_vec_t * x,
lmmc_real_t * out_mean )

计算向量样本均值 \(\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i\) 。

使用在线均值更新;当 x-mean 溢出时切换到等价的有限凸组合,因此 只要最终均值可表示,就不会因为原始总和、极差或无关的方差溢出而失败。

参数
[in]x输入有限向量,size >= 1。
[out]out_mean输出均值。
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 x 为空向量或指针为 NULL; LMMC_STATUS_NUMERICAL_FAILURE 若输入包含非有限值。
副作用
  • 无。只读访问输入向量,不分配内存。

在文件 statistics_descriptive.c 第 402 行定义.

引用了 lmmc_vec_t::data, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_vec_mean() , 以及 lmmc_vec_t::size.

被这些函数引用 lmmc_std_stats_mean() , 以及 lmmc_vec_mean().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_variance_population()

lmmc_status_t lmmc_vec_variance_population ( const lmmc_vec_t * x,
lmmc_real_t * out_variance )

总体方差 \(\sigma^2 = \frac{1}{n}\sum (x_i-\bar{x})^2\) 。

在文件 statistics_descriptive.c 第 410 行定义.

引用了 lmmc_vec_variance_population().

被这些函数引用 lmmc_vec_variance_population().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_variance_sample()

lmmc_status_t lmmc_vec_variance_sample ( const lmmc_vec_t * x,
lmmc_real_t * out_variance )

计算样本方差 \(s^2 = \frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})^2\) 。

使用 Bessel 校正(除以 n-1),要求至少 2 个样本。

参数
[in]x输入向量,size >= 2。
[out]out_variance输出样本方差。
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 x->size < 2 或指针为 NULL。
副作用
  • 无。只读访问输入向量,不分配内存。

在文件 statistics_descriptive.c 第 414 行定义.

引用了 lmmc_vec_variance_sample().

被这些函数引用 lmmc_std_stats_var() , 以及 lmmc_vec_variance_sample().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_stddev_population()

lmmc_status_t lmmc_vec_stddev_population ( const lmmc_vec_t * x,
lmmc_real_t * out_stddev )

总体标准差。 缩放计算支持方差超出 binary64 范围的情况。 输入非有限或标准差结果溢出时返回 ::LMMC_STATUS_NUMERICAL_FAILURE。

在文件 statistics_descriptive.c 第 418 行定义.

引用了 lmmc_vec_stddev_population().

被这些函数引用 lmmc_vec_stddev_population().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_stddev_sample()

lmmc_status_t lmmc_vec_stddev_sample ( const lmmc_vec_t * x,
lmmc_real_t * out_stddev )

样本标准差,要求 n>=2 。 缩放计算支持方差超出 binary64 范围的情况。 输入非有限或标准差结果溢出时返回 ::LMMC_STATUS_NUMERICAL_FAILURE。

在文件 statistics_descriptive.c 第 422 行定义.

引用了 lmmc_vec_stddev_sample().

被这些函数引用 lmmc_std_stats_std() , 以及 lmmc_vec_stddev_sample().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_covariance_population()

lmmc_status_t lmmc_vec_covariance_population ( const lmmc_vec_t * x,
const lmmc_vec_t * y,
lmmc_real_t * out_covariance )

总体协方差 \(\mathrm{Cov}(X,Y)\) 。

在文件 statistics_descriptive.c 第 426 行定义.

引用了 lmmc_vec_covariance_population().

被这些函数引用 lmmc_vec_covariance_population().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_covariance_sample()

lmmc_status_t lmmc_vec_covariance_sample ( const lmmc_vec_t * x,
const lmmc_vec_t * y,
lmmc_real_t * out_covariance )

样本协方差,要求 n>=2 。

在文件 statistics_descriptive.c 第 430 行定义.

引用了 lmmc_vec_covariance_sample().

被这些函数引用 lmmc_std_stats_cov() , 以及 lmmc_vec_covariance_sample().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_correlation_population()

lmmc_status_t lmmc_vec_correlation_population ( const lmmc_vec_t * x,
const lmmc_vec_t * y,
lmmc_real_t * out_correlation )

总体 Pearson 相关系数。

两列分别平移原点、按二进制缩放,再缩放中心偏差;以联合补偿累计 修正中心矩,在缩放域完成零分配计算。 常量列或非有限输入返回 ::LMMC_STATUS_NUMERICAL_FAILURE; 输出仅成功时写入,仅将舍入误差范围内的越界结果截断至 [-1,1]。

在文件 statistics_descriptive.c 第 434 行定义.

引用了 lmmc_vec_correlation_population().

被这些函数引用 lmmc_vec_correlation_population().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_correlation_sample()

lmmc_status_t lmmc_vec_correlation_sample ( const lmmc_vec_t * x,
const lmmc_vec_t * y,
lmmc_real_t * out_correlation )

样本 Pearson 相关系数;使用同一缩放累计路径,要求 n>=2。

在文件 statistics_descriptive.c 第 438 行定义.

引用了 lmmc_vec_correlation_sample().

被这些函数引用 lmmc_std_stats_corr() , 以及 lmmc_vec_correlation_sample().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_mat_column_mean()

lmmc_status_t lmmc_mat_column_mean ( const lmmc_mat_t * x,
lmmc_vec_t * out_means )

计算矩阵各列均值,输出长度为 x->cols 的向量。

矩阵 x 的每行视为一次观测样本;每列复用向量均值的溢出安全在线 更新,不分配临时存储。

在文件 statistics_descriptive.c 第 442 行定义.

引用了 lmmc_mat_t::cols, lmmc_vec_t::data, lmmc_mat_column_mean(), LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 lmmc_vec_t::size.

被这些函数引用 lmmc_mat_column_mean().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_mat_covariance_population()

lmmc_status_t lmmc_mat_covariance_population ( const lmmc_mat_t * x,
lmmc_mat_t * out_covariance )

计算总体协方差矩阵(cols × cols)。

在文件 statistics_descriptive.c 第 455 行定义.

引用了 lmmc_mat_covariance_population().

被这些函数引用 lmmc_mat_covariance_population().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_mat_covariance_sample()

lmmc_status_t lmmc_mat_covariance_sample ( const lmmc_mat_t * x,
lmmc_mat_t * out_covariance )

计算样本协方差矩阵(cols × cols),要求行数 >= 2 。

输出矩阵 out_covariance 的 (i,j) 元素为第 i 列与第 j 列的样本协方差。 使用 Bessel 校正(除以 rows-1)。

参数
[in]x输入矩阵,rows >= 2,每行为一次观测。
[out]out_covariance输出协方差矩阵,大小 cols × cols,调用方需预分配。
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 rows < 2、维度不匹配或指针为 NULL。
副作用
  • 就地写入 out_covariance 矩阵的全部元素。
  • 内部可能分配临时向量用于列均值计算,函数返回前释放。

在文件 statistics_descriptive.c 第 459 行定义.

引用了 lmmc_mat_covariance_sample().

被这些函数引用 lmmc_mat_covariance_sample().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_mat_correlation_population()

lmmc_status_t lmmc_mat_correlation_population ( const lmmc_mat_t * x,
lmmc_mat_t * out_correlation )

计算总体 Pearson 相关矩阵。

对每对列使用原点平移、二进制缩放及联合修正中心矩,在缩放域完成 零分配计算。常量列(包括对角项)或非有限输入返回 ::LMMC_STATUS_NUMERICAL_FAILURE。

在文件 statistics_descriptive.c 第 463 行定义.

引用了 lmmc_mat_correlation_population().

被这些函数引用 lmmc_mat_correlation_population().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_mat_correlation_sample()

lmmc_status_t lmmc_mat_correlation_sample ( const lmmc_mat_t * x,
lmmc_mat_t * out_correlation )

使用同一缩放路径计算样本 Pearson 相关矩阵,要求行数 >= 2。

在文件 statistics_descriptive.c 第 467 行定义.

引用了 lmmc_mat_correlation_sample().

被这些函数引用 lmmc_mat_correlation_sample().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_median()

lmmc_status_t lmmc_vec_median ( const lmmc_vec_t * x,
lmmc_real_t * out )

计算向量中位数。

内部会复制并排序数据。对偶数长度使用无溢出的浮点中点计算。 所有观测值必须有限;非有限观测不会进入排序比较器。

参数
[in]x输入有限向量,size >= 1。
[out]out输出中位数。
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 x->size == 0 或指针为 NULL; LMMC_STATUS_NUMERICAL_FAILURE 若任一观测值非有限; LMMC_STATUS_ALLOCATION_FAILED 若临时数组分配失败。
副作用
  • 内部分配长度为 x->size 的临时数组用于排序,函数返回前释放。
  • 不修改输入向量 x 。

在文件 statistics_selection.c 第 26 行定义.

引用了 lmmc_vec_t::data, lmmc_memory_alloc_array(), lmmc_memory_free(), LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_vec_median() , 以及 lmmc_vec_t::size.

被这些函数引用 lmmc_std_stats_median() , 以及 lmmc_vec_median().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_quantile()

lmmc_status_t lmmc_vec_quantile ( const lmmc_vec_t * x,
lmmc_real_t p,
lmmc_real_t * out )

计算向量的 p 分位数(线性插值法)。

非有限概率会在转换为数组索引前拒绝;所有观测值必须有限。

参数
[in]x输入有限向量,size >= 1。
[in]p有限分位数,范围 [0, 1]。
[out]out输出分位数值。
返回
LMMC_STATUS_OK 成功;LMMC_STATUS_INVALID_ARGUMENT 若 p 非有限 或不在 [0,1];LMMC_STATUS_NUMERICAL_FAILURE 若观测值非有限。

使用与 NumPy 默认方式相同的线性插值。

在文件 statistics_selection.c 第 56 行定义.

引用了 lmmc_vec_t::data, lmmc_memory_alloc_array(), lmmc_memory_free(), LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_vec_quantile() , 以及 lmmc_vec_t::size.

被这些函数引用 lmmc_std_stats_quantile() , 以及 lmmc_vec_quantile().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_vec_histogram()

lmmc_status_t lmmc_vec_histogram ( const lmmc_vec_t * x,
size_t nbins,
lmmc_real_t * edges,
size_t * counts )

计算向量的等宽直方图。

将有限数据范围 [min, max] 等分为 nbins 个区间。跨零范围采用 凸组合构造边界,避免 max-min 的中间溢出;分箱使用缩放后的归一化 坐标,保持线性时间复杂度。最后一个区间包含右端点。

参数
[in]x输入有限向量,size >= 1。
[in]nbins区间数,必须 >= 1。
[out]edges输出区间边界数组,长度 nbins+1,调用方预分配。
[out]counts输出每个区间的计数,长度 nbins,调用方预分配。
返回
LMMC_STATUS_OK 成功;LMMC_STATUS_NUMERICAL_FAILURE 若任一 观测值非有限,此时输出数组保持不变。

在文件 statistics_selection.c 第 182 行定义.

引用了 lmmc_vec_t::data, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_vec_histogram() , 以及 lmmc_vec_t::size.

被这些函数引用 lmmc_vec_histogram().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_normal_pdf()

lmmc_status_t lmmc_dist_normal_pdf ( lmmc_real_t x,
lmmc_real_t mu,
lmmc_real_t sigma,
lmmc_real_t * out )

连续分布函数的公共参数约束。

所有实数输入必须有限;尺度、形状和自由度参数必须为正数;分位数函数的 概率参数必须严格位于 (0, 1)。违反约束时返回 LMMC_STATUS_INVALID_ARGUMENT。 t、χ²、F、Gamma 和 Beta 分位数使用保持根区间的求解器;不能建立 有限根区间时返回 LMMC_STATUS_OUT_OF_RANGE,达到数值分辨率或迭代上限 但未满足概率残差时返回 LMMC_STATUS_CONVERGENCE_FAILED。基于不完全 Gamma/Beta 的 CDF 达到内部级数或连分数迭代上限时也返回该状态。 连续分布 PDF 在对数域组合密度项;若有限参数对应的密度不可用有限 double 表示,或中间计算无法得到有限密度,则返回 LMMC_STATUS_NUMERICAL_FAILURE。CDF 的计算结果必须是 [0, 1] 内的有限 概率,否则返回同一状态。正态分位数产生不可表示的结果时亦如此。 数值失败和收敛失败均不写入输出参数;其他非成功状态不保证写入。

正态分布概率密度函数。

在对数域组合指数与尺度项;标准化在原始 x-mu 溢出时改用等价的 x/sigma-mu/sigma,避免丢失仍可表示的标准分数。

返回
成功时写入有限密度;密度不可表示时返回 LMMC_STATUS_NUMERICAL_FAILURE。

在文件 probability_continuous.c 第 17 行定义.

引用了 lmmc_dist_normal_pdf(), LMMC_SQRT_2PI , 以及 LMMC_STATUS_INVALID_ARGUMENT.

被这些函数引用 lmmc_dist_normal_pdf() , 以及 lmmc_std_stats_normal_pdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_normal_cdf()

lmmc_status_t lmmc_dist_normal_cdf ( lmmc_real_t x,
lmmc_real_t mu,
lmmc_real_t sigma,
lmmc_real_t * out )

正态分布累积分布函数。

使用与 PDF 相同的溢出安全标准化,并通过 erfc 直接保留可表示的下尾概率。

在文件 probability_continuous.c 第 29 行定义.

引用了 lmmc_dist_normal_cdf() , 以及 LMMC_STATUS_INVALID_ARGUMENT.

被这些函数引用 lmmc_dist_normal_cdf() , 以及 lmmc_std_stats_normal_cdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_normal_quantile()

lmmc_status_t lmmc_dist_normal_quantile ( lmmc_real_t p,
lmmc_real_t mu,
lmmc_real_t sigma,
lmmc_real_t * out )

正态分布分位数函数(逆 CDF)。

位置尺度变换使用融合乘加,使 sigma*z+mu 仅舍入一次,并避免最终 结果可表示时乘积中间值的虚假溢出。

在文件 probability_quantiles.c 第 298 行定义.

引用了 lmmc_dist_normal_quantile(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_dist_normal_quantile() , 以及 lmmc_std_stats_normal_quantile().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_t_pdf()

lmmc_status_t lmmc_dist_t_pdf ( lmmc_real_t x,
lmmc_real_t df,
lmmc_real_t * out )

t 分布概率密度函数。

对数核按 |x|/sqrt(df) 的大小选取等价形式,避免直接计算 x*x。 当自由度大到 t 分布与标准正态分布的差异低于双精度分辨率时,直接 使用正态极限,避免两个巨大 lgamma 值相减。 极小正自由度使半自由度下溢时,密度仍按正自由度的极限计算。

在文件 probability_continuous.c 第 71 行定义.

引用了 lmmc_dist_t_pdf(), lmmc_log_beta(), LMMC_LOG_SQRT_2PI, LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_dist_t_pdf() , 以及 lmmc_std_stats_t_pdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_t_cdf()

lmmc_status_t lmmc_dist_t_cdf ( lmmc_real_t x,
lmmc_real_t df,
lmmc_real_t * out )

t 分布累积分布函数。

不完全 Beta 参数通过尺度比构造;参数本身下溢时在对数域计算其 小参数渐近值,使可表示的重尾概率不因 x*x 溢出而被截断为零。 超大自由度使用标准正态极限。 极小正自由度使半自由度下溢时,有限自变量的概率舍入到 0.5。

在文件 probability_continuous.c 第 96 行定义.

引用了 lmmc_dist_t_cdf(), lmmc_log_beta(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 regularized_beta().

被这些函数引用 lmmc_dist_t_cdf() , 以及 lmmc_std_stats_t_cdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_t_quantile()

lmmc_status_t lmmc_dist_t_quantile ( lmmc_real_t p,
lmmc_real_t df,
lmmc_real_t * out )

t 分布分位数函数。

超大自由度使用标准正态分位数,避免退化的不完全 Beta 反演。

在文件 probability_quantiles.c 第 310 行定义.

引用了 distribution_parameters_t::first, lmmc_dist_t_quantile(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK , 以及 distribution_parameters_t::second.

被这些函数引用 lmmc_dist_t_quantile() , 以及 lmmc_std_stats_t_quantile().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_chi2_pdf()

lmmc_status_t lmmc_dist_chi2_pdf ( lmmc_real_t x,
lmmc_real_t df,
lmmc_real_t * out )

χ² 分布概率密度函数。

大自由度通过形状 df / 2、尺度 2 的稳定 Gamma PDF 求值,避免 多个巨大对数 Gamma 项抵消。 极小正自由度使 df / 2 下溢时,通过 Gamma 的零形状极限计算正自变量的密度。

在文件 probability_continuous.c 第 127 行定义.

引用了 lmmc_dist_chi2_pdf(), lmmc_dist_gamma_pdf(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_dist_chi2_pdf() , 以及 lmmc_std_stats_chi2_pdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_chi2_cdf()

lmmc_status_t lmmc_dist_chi2_cdf ( lmmc_real_t x,
lmmc_real_t df,
lmmc_real_t * out )

χ² 分布累积分布函数。

通过形状 df / 2、尺度 2 的 Gamma CDF 求值,共享其极小下尾 对数域路径,避免先计算 x / 2 导致下溢。 极小正自由度使半自由度下溢时,有限正自变量的概率舍入到 1。

在文件 probability_continuous.c 第 154 行定义.

引用了 lmmc_dist_chi2_cdf(), lmmc_dist_gamma_cdf(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_dist_chi2_cdf() , 以及 lmmc_std_stats_chi2_cdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_chi2_quantile()

lmmc_status_t lmmc_dist_chi2_quantile ( lmmc_real_t p,
lmmc_real_t df,
lmmc_real_t * out )

χ² 分布分位数函数。

在文件 probability_quantiles.c 第 328 行定义.

引用了 distribution_parameters_t::first, lmmc_dist_chi2_quantile(), LMMC_STATUS_INVALID_ARGUMENT , 以及 distribution_parameters_t::second.

被这些函数引用 lmmc_dist_chi2_quantile() , 以及 lmmc_std_stats_chi2_quantile().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_f_pdf()

lmmc_status_t lmmc_dist_f_pdf ( lmmc_real_t x,
lmmc_real_t df1,
lmmc_real_t df2,
lmmc_real_t * out )

F 分布概率密度函数。

大自由度使用 Beta 变量变换、偏差函数和 Stirling 余项计算对数密度, 避免中心区域的 log-gamma 灾难性抵消。

在文件 probability_continuous.c 第 194 行定义.

引用了 lmmc_dist_f_pdf(), lmmc_log_beta(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_dist_f_pdf() , 以及 lmmc_std_stats_f_pdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_f_cdf()

lmmc_status_t lmmc_dist_f_cdf ( lmmc_real_t x,
lmmc_real_t df1,
lmmc_real_t df2,
lmmc_real_t * out )

F 分布累积分布函数。

极小正分子自由度使半自由度下溢时,有限正自变量的概率按 df2 / (df1 + df2) 的极限计算。

在文件 probability_continuous.c 第 229 行定义.

引用了 lmmc_dist_f_cdf(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, regularized_beta() , 以及 regularized_beta_upper().

被这些函数引用 lmmc_dist_f_cdf() , 以及 lmmc_std_stats_f_cdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_f_quantile()

lmmc_status_t lmmc_dist_f_quantile ( lmmc_real_t p,
lmmc_real_t df1,
lmmc_real_t df2,
lmmc_real_t * out )

F 分布分位数函数。

在文件 probability_quantiles.c 第 347 行定义.

引用了 distribution_parameters_t::first, lmmc_dist_f_quantile(), LMMC_STATUS_INVALID_ARGUMENT , 以及 distribution_parameters_t::second.

被这些函数引用 lmmc_dist_f_quantile() , 以及 lmmc_std_stats_f_quantile().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_gamma_pdf()

lmmc_status_t lmmc_dist_gamma_pdf ( lmmc_real_t x,
lmmc_real_t shape,
lmmc_real_t scale,
lmmc_real_t * out )

伽马分布概率密度函数。

大形状参数通过 Poisson 偏差与 Stirling 余项计算,避免在分布中心 抵消多个巨大对数项。

在文件 probability_continuous.c 第 260 行定义.

引用了 lmmc_deviance_part(), lmmc_dist_gamma_pdf(), lmmc_log_gamma_stirling_error(), LMMC_LOG_SQRT_2PI, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_dist_chi2_pdf(), lmmc_dist_gamma_pdf() , 以及 lmmc_std_stats_gamma_pdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_gamma_cdf()

lmmc_status_t lmmc_dist_gamma_cdf ( lmmc_real_t x,
lmmc_real_t shape,
lmmc_real_t scale,
lmmc_real_t * out )

伽马分布累积分布函数。

当 x / scale 下溢但最终概率仍可表示时,在对数域计算小参数下 不完全 Gamma 的首项,避免把可表示的极小尾概率错误截断为零。

在文件 probability_continuous.c 第 289 行定义.

引用了 lmmc_dist_gamma_cdf(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 regularized_gamma_lower().

被这些函数引用 lmmc_dist_chi2_cdf(), lmmc_dist_gamma_cdf() , 以及 lmmc_std_stats_gamma_cdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_gamma_quantile()

lmmc_status_t lmmc_dist_gamma_quantile ( lmmc_real_t p,
lmmc_real_t shape,
lmmc_real_t scale,
lmmc_real_t * out )

伽马分布分位数函数。

在文件 probability_quantiles.c 第 360 行定义.

引用了 distribution_parameters_t::first, lmmc_dist_gamma_quantile(), LMMC_STATUS_INVALID_ARGUMENT , 以及 distribution_parameters_t::second.

被这些函数引用 lmmc_dist_gamma_quantile() , 以及 lmmc_std_stats_gamma_quantile().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_beta_pdf()

lmmc_status_t lmmc_dist_beta_pdf ( lmmc_real_t x,
lmmc_real_t alpha,
lmmc_real_t beta,
lmmc_real_t * out )

贝塔分布概率密度函数。

大形状参数使用 Stirling 余项与偏差形式组合对数密度,避免中心区域 的 log-gamma 灾难性抵消。对称中心在形状和溢出时使用 Gamma 比值 渐近式,不要求显式构造 alpha + beta。

在文件 probability_continuous.c 第 314 行定义.

引用了 lmmc_dist_beta_pdf(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_dist_beta_pdf() , 以及 lmmc_std_stats_beta_pdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_beta_cdf()

lmmc_status_t lmmc_dist_beta_cdf ( lmmc_real_t x,
lmmc_real_t alpha,
lmmc_real_t beta,
lmmc_real_t * out )

贝塔分布累积分布函数。

在文件 probability_continuous.c 第 333 行定义.

引用了 lmmc_dist_beta_cdf(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 regularized_beta().

被这些函数引用 lmmc_dist_beta_cdf() , 以及 lmmc_std_stats_beta_cdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_beta_quantile()

lmmc_status_t lmmc_dist_beta_quantile ( lmmc_real_t p,
lmmc_real_t alpha,
lmmc_real_t beta,
lmmc_real_t * out )

贝塔分布分位数函数。

在文件 probability_quantiles.c 第 378 行定义.

引用了 distribution_parameters_t::first, lmmc_dist_beta_quantile(), LMMC_STATUS_INVALID_ARGUMENT , 以及 distribution_parameters_t::second.

被这些函数引用 lmmc_dist_beta_quantile() , 以及 lmmc_std_stats_beta_quantile().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_binomial_pmf()

lmmc_status_t lmmc_dist_binomial_pmf ( size_t k,
size_t n,
lmmc_real_t p,
lmmc_real_t * out )

离散分布函数的公共参数约束。

二项分布概率 p 必须为 [0, 1] 内的有限值;泊松分布率 lambda 必须为 非负有限值。违反约束时返回 LMMC_STATUS_INVALID_ARGUMENT。PMF 中间值或 最终值不是有限概率时返回 LMMC_STATUS_NUMERICAL_FAILURE;允许正确结果 下溢为零。CDF 在大参数中心区域使用不完全 Gamma 的一致渐近式以及 对称 Beta 恒等式,其他区域的迭代达到上限时返回 LMMC_STATUS_CONVERGENCE_FAILED。数值失败和收敛失败均不写入输出参数。

二项分布概率质量函数。

使用 Stirling 余项与二项偏差形式组合对数质量,避免大 n 中心区域 的多个 log-gamma 项发生灾难性抵消。

在文件 probability_discrete.c 第 25 行定义.

引用了 lmmc_deviance_part(), lmmc_dist_binomial_pmf(), LMMC_LOG_SQRT_2PI, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 lmmc_stirling_error().

被这些函数引用 lmmc_dist_binomial_pmf() , 以及 lmmc_std_stats_binomial_pmf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_binomial_cdf()

lmmc_status_t lmmc_dist_binomial_cdf ( size_t k,
size_t n,
lmmc_real_t p_param,
lmmc_real_t * out )

二项分布累积分布函数。

对称奇数试验的中心概率通过 Beta 对称性精确返回 1/2。

CDF = 1 - I_p(k+1, n-k);beta 上尾内核保留 p。

在文件 probability_discrete.c 第 70 行定义.

引用了 lmmc_dist_binomial_cdf(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 regularized_beta_upper().

被这些函数引用 lmmc_dist_binomial_cdf() , 以及 lmmc_std_stats_binomial_cdf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_poisson_pmf()

lmmc_status_t lmmc_dist_poisson_pmf ( size_t k,
lmmc_real_t lambda,
lmmc_real_t * out )

泊松分布概率质量函数。

使用 Stirling 余项与泊松偏差形式组合对数质量,避免大率中心区域 的 count*log(lambda)-lambda-log-gamma 灾难性抵消。

在文件 probability_discrete.c 第 84 行定义.

引用了 lmmc_deviance_part(), lmmc_dist_poisson_pmf(), LMMC_LOG_SQRT_2PI, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 lmmc_stirling_error().

被这些函数引用 lmmc_dist_poisson_pmf() , 以及 lmmc_std_stats_poisson_pmf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_dist_poisson_cdf()

lmmc_status_t lmmc_dist_poisson_cdf ( size_t k,
lmmc_real_t lambda,
lmmc_real_t * out )

泊松分布累积分布函数;直接计算正则化上不完全伽马尾。

大率中心区域采用一致渐近展开,避免级数或连分数工作量随率的平方根增长。

在文件 probability_discrete.c 第 109 行定义.

引用了 lmmc_dist_poisson_cdf(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK , 以及 regularized_gamma_upper().

被这些函数引用 lmmc_dist_poisson_cdf() , 以及 lmmc_std_stats_poisson_cdf().

函数调用图:
这是这个函数的调用关系图: