Presentation
This project contains functions and classes for statistical calculations, kernel computations and usual distribution computations (as probability distribution computation, random number generation...)
It is divided in three sub-projects :
- The StatDesc sub-project contains functions and classes for computing the usual descriptive statistics,
- The Kernel sub-project contains functions and classes for computing the usual kernels,
- The Law sub-project contains functions and classes for usual probability density functions (or discrete probability distribution) computations, cumulative probability distribution, inverse cumulative distribution computations (quantile), random number generation.
Distributions laws
Density, log-density, cumulative distribution function, quantile function and random variate generation for many standard probability distributions are available in the Law sub-project. The complete list is
- Bernoulli distribution,
- Binomial distribution,
- Categorical distribution,
- Cauchy distribution,
- Chi-squared distribution,
- Exponential distribution,
- Fisher-Snedecor distribution,
- Gamma distribution,
- Geometric distribution,
- Hyper-Geometric distribution,
- Normal distribution,
- t-Student distribution,
- Uniform distribution,
- Weibull distribution.
All these distributions are implemented in the namespace STK::Law and derive from the Interface base class IUnivLaw and should implement the following pure virtual methods :
virtual Type rand() const =0;
virtual Real pdf(Type const& x) const =0;
virtual Real lpdf(Type const& x) const = 0;
virtual Real cdf(Real const& t) const =0;
virtual Real cdfc(Real const& t) const =0;
virtual Type icdf(Real const& p) const=0;
Multivariate Distributions laws
Support for some multivariate distribution laws is given.