abax 0.1.29

A lightweight Rust library providing high-precision mathematical constants and special functions, including Bernoulli numbers, Riemann Zeta values, robust incomplete gamma functions, and probability distribution functions like normal and lognormal CDF.
Documentation

abax

A lightweight Rust library providing high-precision mathematical constants and special functions.

Crates.io License docs.rs Crates.io Size Crates.io Total Downloads

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.
  • Probability Distributions:
    • normcdf(x, mu, sigma, upper): Normal cumulative distribution function.
    • normpdf(x, mu, sigma): Normal probability density function.
    • norminv(p, mu, sigma): Inverse of the normal cumulative distribution function (quantile function).
    • lognpdf(x, mu, sigma): Lognormal probability density function.
    • logncdf(x, mu, sigma, upper): Lognormal cumulative distribution function.
    • logninv(p, mu, sigma): Inverse of the lognormal cumulative distribution function.
    • tpdf(x, v): Student's T probability density function.
    • tcdf(x, v, upper): Student's T cumulative distribution function.
    • tinv(p, v): Inverse of the Student's T cumulative distribution function.
    • nctpdf(x, nu, delta): Noncentral T probability density function.
    • nctcdf(x, nu, delta, upper): Noncentral T cumulative distribution function.
    • gampdf(x, a, b): Gamma probability density function.

Usage

Add this to your Cargo.toml:

[dependencies]
abax = "0.1.29"

License

This project is licensed under the MIT License - see the LICENSE file for details.

Repository

Source code is available on GitHub.