LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
probability_continuous.c 文件参考
#include <math.h>
#include <float.h>
#include "lmmc/config.h"
#include "lmmc/numeric.h"
#include "lmmc/stats.h"
#include "probability_internal.h"
probability_continuous.c 的引用(Include)关系图:

浏览该文件的源代码.

函数

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_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_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_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_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_beta_pdf (lmmc_real_t x, lmmc_real_t alpha, lmmc_real_t beta_param, lmmc_real_t *out)
 贝塔分布概率密度函数。
lmmc_status_t lmmc_dist_beta_cdf (lmmc_real_t x, lmmc_real_t alpha, lmmc_real_t beta_param, lmmc_real_t *out)
 贝塔分布累积分布函数。

函数说明

◆ 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_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_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_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_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_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_param,
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().

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