abax
A lightweight Rust library providing high-precision mathematical constants and special functions.
Features
-
Mathematical Constants:
- Bernoulli numbers (B2n) up to n=16.
- Riemann Zeta function values for integers 2 through 16.
- Euler-Mascheroni constant.
- Stirling series coefficients for asymptotic expansions.
-
Special Functions:
- Gamma and Polygamma Functions:
gamma(x): Gamma function Γ(x) computed with the Lanczos approximation and reflection formula.gammaln(x): Natural logarithm of the Gamma function ln(Γ(x)) using Stirling's approximation.digamma(x),trigamma(x),tetragamma(x): Polygamma functions ψ(n)(x) implemented with reflection and recurrence shifting.psi(k, x): Polygamma interface for arbitrary order $k$ with stable handling of poles and infinities.gammainc(x, a, lower, scaled): Regularized incomplete gamma function with scaling for improved conditioning.gammaincinv(y, a, lower): Robust inverse incomplete gamma function using a combined Halley-Newton-Bisection method.
- Beta Functions:
beta(z, w),betaln(z, w): Beta function and its natural logarithm.betainc(x, z, w, lower): Regularized incomplete beta function Ix(z,w).betaincinv(y, z, w, lower): Inverse of the regularized incomplete beta function.
- Error Functions:
erf(x),erfc(x),erfcx(x): Error function, complementary error function, and scaled variant.erfinv(x),erfcinv(x): Inverse error functions implemented with piecewise rational approximations.
- Gamma and Polygamma Functions:
-
Probability Distributions:
Family PDF CDF Inverse (Quantile) Normal normpdf(x, μ, σ)normcdf(x, μ, σ, upper)norminv(p, μ, σ)Lognormal lognpdf(x, μ, σ)logncdf(x, μ, σ, upper)logninv(p, μ, σ)Student's T tpdf(x, v)tcdf(x, v, upper)tinv(p, v)Noncentral T nctpdf(x, ν, δ)nctcdf(x, ν, δ, upper)nctinv(p, ν, δ)Gamma gampdf(x, a, b)gamcdf(x, a, b, upper)gaminv(p, a, b)Beta betapdf(x, a, b)betacdf(x, a, b, upper)betainv(p, a, b)Exponential expdf(x, λ)expcdf(x, λ, upper)expinv(p, λ)
Usage
Add this to your Cargo.toml:
[]
= "0.1.35"
License
This project is licensed under the MIT License - see the LICENSE file for details.
Repository
Source code is available on GitHub.