Crate rand_distr
source · [−]Expand description
Generating random samples from probability distributions.
Re-exports
This crate is a super-set of the rand::distributions
module. See the
rand::distributions
module documentation for an overview of the core
Distribution
trait and implementations.
The following are re-exported:
- The
Distribution
trait andDistIter
helper type - The
Standard
,Alphanumeric
,Uniform
,OpenClosed01
,Open01
,Bernoulli
, andWeightedIndex
distributions
Distributions
This crate provides the following probability distributions:
- Related to real-valued quantities that grow linearly
(e.g. errors, offsets):
Normal
distribution, andStandardNormal
as a primitiveSkewNormal
distributionCauchy
distribution
- Related to Bernoulli trials (yes/no events, with a given probability):
Binomial
distributionGeometric
distributionHypergeometric
distribution
- Related to positive real-valued quantities that grow exponentially
(e.g. prices, incomes, populations):
LogNormal
distribution
- Related to the occurrence of independent events at a given rate:
- Gamma and derived distributions:
Gamma
distributionChiSquared
distributionStudentT
distributionFisherF
distribution
- Triangular distribution:
Beta
distributionTriangular
distribution
- Multivariate probability distributions
Dirichlet
distributionUnitSphere
distributionUnitBall
distributionUnitCircle
distributionUnitDisc
distribution
- Alternative implementation for weighted index sampling
WeightedAliasIndex
distribution
- Misc. distributions
InverseGaussian
distributionNormalInverseGaussian
distribution
Re-exports
pub use weighted_alias::WeightedAliasIndex;
pub use num_traits;
Modules
A distribution uniformly sampling numbers within a given range.
This module contains an implementation of alias method for sampling random
indices with probabilities proportional to a collection of weights.
Structs
Sample a
u8
, uniformly distributed over ASCII letters and numbers:
a-z, A-Z and 0-9.The Bernoulli distribution.
The Beta distribution with shape parameters
alpha
and beta
.The binomial distribution
Binomial(n, p)
.The Cauchy distribution
Cauchy(median, scale)
.The chi-squared distribution
χ²(k)
, where k
is the degrees of
freedom.The Dirichlet distribution
Dirichlet(alpha)
.An iterator that generates random values of
T
with distribution D
,
using R
as the source of randomness.The exponential distribution
Exp(lambda)
.Samples floating-point numbers according to the exponential distribution,
with rate parameter
λ = 1
. This is equivalent to Exp::new(1.0)
or
sampling with -rng.gen::<f64>().ln()
, but faster.The Fisher F distribution
F(m, n)
.Samples floating-point numbers according to the Fréchet distribution
The Gamma distribution
Gamma(shape, scale)
distribution.The geometric distribution
Geometric(p)
bounded to [0, u64::MAX]
.Samples floating-point numbers according to the Gumbel distribution
The hypergeometric distribution
Hypergeometric(N, K, n)
.The log-normal distribution
ln N(mean, std_dev**2)
.The normal distribution
N(mean, std_dev**2)
.A distribution to sample floating point numbers uniformly in the open
interval
(0, 1)
, i.e. not including either endpoint.A distribution to sample floating point numbers uniformly in the half-open
interval
(0, 1]
, i.e. including 1 but not 0.Samples floating-point numbers according to the Pareto distribution
The PERT distribution.
The Poisson distribution
Poisson(lambda)
.The skew normal distribution
SN(location, scale, shape)
.A generic random value distribution, implemented for many primitive types.
Usually generates values with a numerically uniform distribution, and with a
range appropriate to the type.
Samples integers according to the geometric distribution with success
probability
p = 0.5
. This is equivalent to Geometeric::new(0.5)
,
but faster.Samples floating-point numbers according to the normal distribution
N(0, 1)
(a.k.a. a standard normal, or Gaussian). This is equivalent to
Normal::new(0.0, 1.0)
but faster.The Student t distribution,
t(nu)
, where nu
is the degrees of
freedom.The triangular distribution.
Sample values uniformly between two bounds.
Samples uniformly from the unit ball (surface and interior) in three
dimensions.
Samples uniformly from the edge of the unit circle in two dimensions.
Samples uniformly from the unit disc in two dimensions.
Samples uniformly from the surface of the unit sphere in three dimensions.
Samples floating-point numbers according to the Weibull distribution
A distribution using weighted sampling of discrete items
Samples integers according to the zeta distribution.
Samples integers according to the Zipf distribution.
Enums
Error type returned from
Bernoulli::new
.Error type returned from
Beta::new
.Error type returned from
Binomial::new
.Error type returned from
Cauchy::new
.Error type returned from
ChiSquared::new
and StudentT::new
.Error type returned from
Dirchlet::new
.Error type returned from
Exp::new
.Error type returned from
FisherF::new
.Error type returned from
Frechet::new
.Error type returned from
Gamma::new
.Error type returned from
Geometric::new
.Error type returned from
Gumbel::new
.Error type returned from
Hypergeometric::new
.Error type returned from
InverseGaussian::new
Error type returned from
Normal::new
and LogNormal::new
.Error type returned from
NormalInverseGaussian::new
Error type returned from
Pareto::new
.Error type returned from
Poisson::new
.Error type returned from
SkewNormal::new
.Error type returned from
Triangular::new
.Error type returned from
Weibull::new
.Error type returned from
WeightedIndex::new
.Error type returned from
Zeta::new
.Error type returned from
Zipf::new
.Traits
Types (distributions) that can be used to create a random instance of
T
.