Expand description
This crate aims to be a functional port of the Math.NET Numerics
Distribution package and in doing so providing the Rust numerical computing
community with a robust, well-tested statistical distribution package. This
crate also ports over some of the special statistical functions from
Math.NET in so far as they are used in the computation of distribution
values. This crate depends on the rand
crate to provide RNG.
§Sampling
The common use case is to set up the distributions and sample from them which depends on the Rand
crate for random number generation.
use statrs::distribution::Exp;
use rand::distributions::Distribution;
let mut r = rand::rngs::OsRng;
let n = Exp::new(0.5).unwrap();
print!("{}", n.sample(&mut r));
§Introspecting distributions
Statrs also comes with a number of useful utility traits for more detailed introspection of distributions.
use statrs::distribution::{Exp, Continuous, ContinuousCDF}; // `cdf` and `pdf`
use statrs::statistics::Distribution; // statistical moments and entropy
let n = Exp::new(1.0).unwrap();
assert_eq!(n.mean(), Some(1.0));
assert_eq!(n.variance(), Some(1.0));
assert_eq!(n.entropy(), Some(1.0));
assert_eq!(n.skewness(), Some(2.0));
assert_eq!(n.cdf(1.0), 0.6321205588285576784045);
assert_eq!(n.pdf(1.0), 0.3678794411714423215955);
§Utility functions
as well as utility functions including erf
, gamma
, ln_gamma
, beta
, etc.
use statrs::distribution::FisherSnedecor;
use statrs::statistics::Distribution;
let n = FisherSnedecor::new(1.0, 1.0).unwrap();
assert!(n.variance().is_none());
§Distributions implemented
Statrs comes with a number of commonly used distributions including Normal, Gamma, Student’s T, Exponential, Weibull, etc. view all implemented in distributions
module.
Modules§
- consts
- Defines mathematical expressions commonly used when computing distribution values as constants
- distribution
- Defines common interfaces for interacting with statistical distributions and provides concrete implementations for a variety of distributions.
- euclid
- Provides number theory utility functions
- function
- Provides a host of special statistical functions (e.g. the beta function or the error function)
- generate
- Provides utility functions for generating data sequences
- prec
- Provides utility functions for working with floating point precision
- statistics
- Provides traits for statistical computation
- stats_
tests