#bessel #gamma #special #elliptic #normal-distribution #cephes

spec_math

Rust implementations of special mathematical functions. Includes re-implementation of the CEPHES math library for gamma functions, error functions, elliptic integrals, sine and cosine integrals, fresnel integrals, normal distribution, and bessel functions

6 releases

0.1.5 Dec 30, 2023
0.1.4 Dec 28, 2023

#451 in Algorithms

42 downloads per month

MIT/Apache

400KB
7.5K SLoC

spec_math

This crate contains approximations for a set of mathematical functions commonly referred to as "special functions". The goal of this crate is to eventually contain a full Rust re-implementation of the CEPHES library with minimal changes in modules such as the cephes64 module. The special functions will also be available as traits for easier use in Rust, potentially with modifications to correct bugs or improve performance from the original CEPHES implementation.

Currently, the gamma functions, error functions, elliptic integrals, sine and cosine integrals, fresnel integrals, normal distribution, and bessel functions are implemented.


lib.rs:

This crate contains approximations for a set of mathematical functions commonly referred to as "special functions". The goal of this crate is to eventually contain a full Rust re-implementation of the CEPHES library with minimal changes in modules such as the cephes64 module. The special functions will also be available as traits for easier use in Rust, potentially with modifications to correct bugs or improve performance from the original CEPHES implementation.

Currently, the error functions, gamma functions, beta functions, fresnel integrals, sine and cosine integrals, elliptic integrals, and bessel functions are implemented. Uses cephes64::erf Uses cephes64::erfc Uses misc::erfinv Uses misc::erfcinv Uses cephes64::fresnl Uses cephes64::sici Uses cephes64::dawsn Uses misc::norm_pdf Uses cephes64::ndtr Uses cephes64::ndtri Uses cephes64::gamma Uses cephes64::lgam Uses cephes64::igam Uses cephes64::igamc Uses cephes64::igami Uses cephes64::igamci Uses cephes64::psi Uses cephes64::rgamma Uses cephes64::beta Uses cephes64::lbeta Uses cephes64::incbet Uses cephes64::reimann_zeta Uses cephes64::zetac Uses cephes64::zeta Uses cephes64::ellpj Uses cephes64::ellpe evaluated at 1.0 - self Uses cephes64::ellpk evaluated at 1.0 - self Uses cephes64::ellie Uses cephes64::ellik Uses cephes64::airy Uses cephes64::j0 Uses cephes64::y0 Uses cephes64::i0 Uses cephes64::i0e Uses cephes64::j1 Uses cephes64::y1 Uses cephes64::i1 Uses cephes64::i1e Uses cephes64::k0 Uses cephes64::k0e Uses cephes64::k1 Uses cephes64::k1e Uses cephes64::yn Uses cephes64::kn Uses cephes64::jv Uses cephes64::yv Uses misc::besselpoly

No runtime deps