- Update dependencies (#48)
- Thanks to JSorngard
- Export
erfcxfrom public API - Add max iteration guard to
gser/gcfto prevent potential infinite loops - Add input validation to
beta() - Clarify misleading comment in faddeeva.rs
- Implement the Gamma function by Toshio Fukushima with very low relative error
- Replace the previous Lanczos + reflection formula based implementation with Fukushima's polynomial approximation algorithm
- Reduce relative error from ~1e-10 to ~1e-14 (often within a single ULP)
- Add comprehensive special case handling following the ISO C 99 standard (NaN, ±∞, ±0, negative integers)
- Add
polynomial(Horner's method) andmul_addutility functions with optional FMA support - Contributors: JSorngard
- Related PR: #47
- Improve numerical stability in
gammpandgammq- Add overflow/underflow guards in series and continued fraction methods
- Implement log-sum-exp trick in quadrature approximation
- Add edge case handling and result clamping to [0,1]
- Fix NaN issue when x << a for large a (a >= 100) by using series expansion instead of quadrature
- For large a with x < 0.2*a, now uses more stable series method
- Resolves edge case failures in test suite (e.g., gammp(120, 0.1))
- Add all branches of the complex Lambert W function
- Enhance CI / Fix proptest & lint
- Contributors: ethanbarry, inkydragon, Axect, JSorngard
- Related PRs
- Newly added dependencies
- #32 : Fix swapped doc for
inverfandinverfc(Thanks to ethanbarry) - #36 : Fix
gammafunction for1f64(Thanks to arihant2math)
- Contributors: JSorngard, Axect, ethanbarry
- Related issue: #12
- Related PRs
- Newly added dependencies
- Implement Dawson's integral (#9) (Thanks to ethanbarry)
dawson(x: f64) -> f64: Dawson's integral
- Implement Bessel & Modified Bessel functions
- Integer order
Jn(n: usize, x: f64) -> f64: Bessel function of the first kindYn(n: usize, x: f64) -> f64: Bessel function of the second kindIn(n: usize, x: f64) -> f64: Modified Bessel function of the first kindKn(n: usize, x: f64) -> f64: Modified Bessel function of the second kind
- Fractional order
besseljy(nu: f64, x: f64) -> (f64, f64, f64, f64): Bessel functions (include derivatives)besselik(nu: f64, x: f64) -> (f64, f64, f64, f64): Modified Bessel functions (include derivatives)Jnu_Ynu(nu: f64, x: f64) -> (f64, f64): Bessel functionsInu_Knu(nu: f64, x: f64) -> (f64, f64): Modified Bessel functions
- Integer order
- Add
docs.rsbadge to README.md - Add latex support to
gammpandgammqin docs
- Update README.md
- Fix typo (
gammap->gammp,gammaq->gammq)
- Fix typo (
- Fix bugs (#4)
- LICENSE Update : BSD-3-Clause -> MIT or Apache-2.0
- Make public
ln_gamma. (Thanks to rw)