Skip to main content

Module probability

Module probability 

Source
Expand description

crate::probability → distributional primitives now in gam-math.

Structs§

WeightedChiSquareTerm
One λ_j · χ²_{h_j} term of a linear combination of independent chi-squares, with the weight’s SIGN and the term’s degrees of freedom both carried explicitly.

Enums§

ExactBinary64SumSignError
Why exact_binary64_sum_sign could not classify its finite exact sum.

Constants§

IMHOF_MAX_PANELS
Cost backstop on the Imhof panel sweep.
WEIGHTED_CHI_SQUARE_TOLERANCE
Default absolute accuracy weighted_chi_square_sf certifies on its Imhof truncation. It is four orders below the smallest probability any consumer of a survival function resolves in practice and eleven below one, so the truncation is never the term that limits a reported tail.

Functions§

beta_quantile
Quantile (inverse CDF) of a Beta distribution with shape parameters a > 0 and b > 0 at probability p: the value x in [0, 1] with I_x(a, b) = p, where I is the regularized incomplete beta.
chi_square_sf
Chi-squared survival probability P(X_ν > statistic).
cone_boundary_log_factor
Log of the standardized one-sided truncated-Gaussian boundary factor for the constrained-LAML cone correction (gam#2306 §4).
cone_boundary_log_factor_and_derivatives
cone_boundary_log_factor together with its exact partial derivatives in the standardized arguments — the pieces the outer ρ-gradient chains through (μ̃, h̃, s)(ρ) (gam#2306 §4 “the g-factors differentiate in closed form”). With ξ = b − a and the Mills ratio λ(ξ) = φ(ξ)/Φ(ξ):
erfcx_nonnegative
Scaled complementary error function erfcx(x) = exp(x²) · erfc(x), specialized to the closed domain x ∈ [0, +∞].
exact_binary64_sum_sign
Exact sign of a finite binary64 sum, independent of order and cancellation.
fisher_snedecor_sf
Fisher-Snedecor survival probability P(F_{d1,d2} > statistic).
log1mexp_positive
Computes log(1 - exp(-a)) for a >= 0 without cancellation.
normal_cdf
Standard normal CDF Phi(x) evaluated via the exact special-function identity
normal_logcdf
Numerically stable ln Φ(x) for the standard normal CDF. For x ≥ 0, evaluates ln(1 - 0.5 erfc(x/sqrt(2))) with ln_1p, retaining the small negative result after Φ(x) itself rounds to one. For x < 0, rewrites ln Φ(x) = −u² + ln(½·erfcx(u)), u = −x/√2, which preserves digits throughout the representable left tail without a probability floor. Returns the corresponding IEEE limit at infinities and propagates NaN.
normal_logcdf_derivatives
Stable value and first four derivatives of ln Φ(x).
normal_logsf
Numerically stable ln(1 − Φ(x)) = ln Φ(−x) for the standard normal survival function. Delegates to normal_logcdf(-x) so the deep-right tail benefits from the same erfcx-based representation.
normal_pdf
Standard normal PDF phi(x).
normal_sf
Standard normal survival probability P(Z > x).
normal_two_sided_probability
Two-sided standard-normal probability P(|Z| ≥ |z|).
signed_log_sum_exp
Numerically stable signed log-sum-exp. Given pairs (log|aⱼ|, sign(aⱼ)) (with signs[j] ∈ {−1, 0, +1}), returns (log|S|, sign(S)) for S = Σⱼ signs[j]·exp(log_mags[j]). Positive and negative magnitudes are first reduced together, after one common log-space rescaling, with a twofold compensated sum. This avoids rounding each same-sign subtotal through ln and exp before subtracting them — an avoidable loss that is amplified in cancellation-conditioned derivative cumulants. If the compensated residual lies inside its forward-error bound, the function instead uses the two-subtotal log-domain difference log(|p − n|) = max(log p, log n) + log1mexp(|log p − log n|). That branch retains differences between two input logs even when their exponentials round to the same f64. When all signs are zero or all magnitudes are −∞, returns (NEG_INFINITY, 0.0).
signed_probit_logcdf_and_mills_ratio
Joint evaluation of ln Φ(x) and the Mills-ratio analogue φ(x) / Φ(x), signed for the symmetric branch. Used by the latent probit families where the inverse-link gradient needs the ratio and the likelihood needs the log-CDF on the same x; computing both in one call shares the erfcx evaluation that dominates the cost in the deep tail.
signed_weighted_chi_square_sf
Survival probability P(Σ_j λ_j χ²_{h_j} > statistic) for independent central chi-squares, with weights of EITHER SIGN, at WEIGHTED_CHI_SQUARE_TOLERANCE.
signed_weighted_chi_square_sf_to_tolerance
signed_weighted_chi_square_sf at a caller-chosen absolute accuracy, returning the bound actually achieved alongside the value.
standard_normal_quantile
Standard normal quantile Φ⁻¹(p) using Acklam’s rational approximation.
standard_normal_quantile_from_log_cdf
Standard normal quantile from log_p = ln Φ(x).
student_t_sf
Student-t survival probability P(T_ν > t).
student_t_two_sided_probability
Two-sided Student-t probability P(|T_ν| ≥ |t|).
weighted_chi_square_sf
Survival probability P(Σ_j w_j Z_j² > statistic) for independent standard normals Z_j and non-negative weights w.
weighted_chi_square_sf_to_tolerance
weighted_chi_square_sf_with_bound at a caller-chosen absolute accuracy.
weighted_chi_square_sf_with_bound
weighted_chi_square_sf together with the certified absolute bound on its own truncation error, so a consumer (or a test) can see the accuracy rather than trust it.