Trait Distribution
pub trait Distribution<T> {
// Required method
fn sample<R>(&self, rng: &mut R) -> T
where R: Rng + ?Sized;
// Provided methods
fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T> ⓘ
where R: Rng,
Self: Sized { ... }
fn map<F, S>(self, func: F) -> Map<Self, F, T, S>
where F: Fn(T) -> S,
Self: Sized { ... }
}Expand description
Types (distributions) that can be used to create a random instance of T.
It is possible to sample from a distribution through both the
Distribution and [RngExt] traits, via distr.sample(&mut rng) and
rng.sample(distr). They also both offer the sample_iter method, which
produces an iterator that samples from the distribution.
All implementations are expected to be immutable; this has the significant advantage of not needing to consider thread safety, and for most distributions efficient state-less sampling algorithms are available.
Implementations are typically expected to be portable with reproducible
results when used with a PRNG with fixed seed; see the
portability chapter
of The Rust Rand Book. In some cases this does not apply, e.g. the usize
type requires different sampling on 32-bit and 64-bit machines.
Required Methods§
Provided Methods§
fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T> ⓘwhere
R: Rng,
Self: Sized,
fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T> ⓘwhere
R: Rng,
Self: Sized,
Create an iterator that generates random values of T, using rng as
the source of randomness.
Note that this function takes self by value. This works since
Distribution<T> is impl’d for &D where D: Distribution<T>,
however borrowing is not automatic hence distr.sample_iter(...) may
need to be replaced with (&distr).sample_iter(...) to borrow or
(&*distr).sample_iter(...) to reborrow an existing reference.
§Example
use rand::distr::{Distribution, Alphanumeric, Uniform, StandardUniform};
let mut rng = rand::rng();
// Vec of 16 x f32:
let v: Vec<f32> = StandardUniform.sample_iter(&mut rng).take(16).collect();
// String:
let s: String = Alphanumeric
.sample_iter(&mut rng)
.take(7)
.map(char::from)
.collect();
// Dice-rolling:
let die_range = Uniform::new_inclusive(1, 6).unwrap();
let mut roll_die = die_range.sample_iter(&mut rng);
while roll_die.next().unwrap() != 6 {
println!("Not a 6; rolling again!");
}fn map<F, S>(self, func: F) -> Map<Self, F, T, S>
fn map<F, S>(self, func: F) -> Map<Self, F, T, S>
Map sampled values to type S
§Example
use rand::distr::{Distribution, Uniform};
let die = Uniform::new_inclusive(1, 6).unwrap();
let even_number = die.map(|num| num % 2 == 0);
while !even_number.sample(&mut rand::rng()) {
println!("Still odd; rolling again!");
}Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
§impl Distribution<bool> for Bernoulli
Available on crate feature rand only.
impl Distribution<bool> for Bernoulli
rand only.§impl Distribution<f32> for StandardNormal
impl Distribution<f32> for StandardNormal
§impl Distribution<f64> for Bernoulli
Available on crate feature rand only.
impl Distribution<f64> for Bernoulli
rand only.§impl Distribution<f64> for Beta
Available on crate feature rand only.
impl Distribution<f64> for Beta
rand only.§impl Distribution<f64> for Binomial
Available on crate feature rand only.
impl Distribution<f64> for Binomial
rand only.§impl Distribution<f64> for Categorical
Available on crate feature rand only.
impl Distribution<f64> for Categorical
rand only.§impl Distribution<f64> for Cauchy
Available on crate feature rand only.
impl Distribution<f64> for Cauchy
rand only.§impl Distribution<f64> for Chi
Available on crate feature rand only.
impl Distribution<f64> for Chi
rand only.§impl Distribution<f64> for ChiSquared
Available on crate feature rand only.
impl Distribution<f64> for ChiSquared
rand only.§impl Distribution<f64> for Dirac
Available on crate feature rand only.
impl Distribution<f64> for Dirac
rand only.§impl Distribution<f64> for DiscreteUniform
Available on crate feature rand only.
impl Distribution<f64> for DiscreteUniform
rand only.§impl Distribution<f64> for Empirical
Available on crate feature rand only.
impl Distribution<f64> for Empirical
rand only.§impl Distribution<f64> for Erlang
Available on crate feature rand only.
impl Distribution<f64> for Erlang
rand only.§impl Distribution<f64> for Exp
Available on crate feature rand only.
impl Distribution<f64> for Exp
rand only.§impl Distribution<f64> for FisherSnedecor
Available on crate feature rand only.
impl Distribution<f64> for FisherSnedecor
rand only.§impl Distribution<f64> for Gamma
Available on crate feature rand only.
impl Distribution<f64> for Gamma
rand only.§impl Distribution<f64> for Geometric
Available on crate feature rand only.
impl Distribution<f64> for Geometric
rand only.§impl Distribution<f64> for Gumbel
Available on crate feature rand only.
impl Distribution<f64> for Gumbel
rand only.§impl Distribution<f64> for Hypergeometric
Available on crate feature rand only.
impl Distribution<f64> for Hypergeometric
rand only.§impl Distribution<f64> for InverseGamma
Available on crate feature rand only.
impl Distribution<f64> for InverseGamma
rand only.§impl Distribution<f64> for Laplace
Available on crate feature rand only.
impl Distribution<f64> for Laplace
rand only.§impl Distribution<f64> for Levy
Available on crate feature rand only.
impl Distribution<f64> for Levy
rand only.§impl Distribution<f64> for LogNormal
Available on crate feature rand only.
impl Distribution<f64> for LogNormal
rand only.§impl Distribution<f64> for Normal
Available on crate feature rand only.
impl Distribution<f64> for Normal
rand only.§impl Distribution<f64> for Pareto
Available on crate feature rand only.
impl Distribution<f64> for Pareto
rand only.§impl Distribution<f64> for Poisson
Available on crate feature rand only.
impl Distribution<f64> for Poisson
rand only.§fn sample<R>(&self, rng: &mut R) -> f64where
R: Rng + ?Sized,
fn sample<R>(&self, rng: &mut R) -> f64where
R: Rng + ?Sized,
Generates one sample from the Poisson distribution either by Knuth’s method if lambda < 30.0 or Rejection method PA by A. C. Atkinson from the Journal of the Royal Statistical Society Series C (Applied Statistics) Vol. 28 No. 1. (1979) pp. 29 - 35 otherwise
§impl Distribution<f64> for StandardNormal
impl Distribution<f64> for StandardNormal
§impl Distribution<f64> for StudentsT
Available on crate feature rand only.
impl Distribution<f64> for StudentsT
rand only.§impl Distribution<f64> for Triangular
Available on crate feature rand only.
impl Distribution<f64> for Triangular
rand only.§impl Distribution<f64> for Uniform
Available on crate feature rand only.
impl Distribution<f64> for Uniform
rand only.§impl Distribution<f64> for Weibull
Available on crate feature rand only.
impl Distribution<f64> for Weibull
rand only.§impl Distribution<i64> for DiscreteUniform
Available on crate feature rand only.
impl Distribution<i64> for DiscreteUniform
rand only.§impl Distribution<u64> for Binomial
Available on crate feature rand only.
impl Distribution<u64> for Binomial
rand only.§impl Distribution<u64> for Categorical
Available on crate feature rand only.
impl Distribution<u64> for Categorical
rand only.§impl Distribution<u64> for Geometric
Available on crate feature rand only.
impl Distribution<u64> for Geometric
rand only.§impl Distribution<u64> for Hypergeometric
impl Distribution<u64> for Hypergeometric
§impl Distribution<u64> for Hypergeometric
Available on crate feature rand only.
impl Distribution<u64> for Hypergeometric
rand only.§impl Distribution<u64> for NegativeBinomial
Available on crate feature rand only.
impl Distribution<u64> for NegativeBinomial
rand only.§impl Distribution<u64> for Poisson
Available on crate feature rand only.
impl Distribution<u64> for Poisson
rand only.§fn sample<R>(&self, rng: &mut R) -> u64where
R: Rng + ?Sized,
fn sample<R>(&self, rng: &mut R) -> u64where
R: Rng + ?Sized,
Generates one sample from the Poisson distribution either by Knuth’s method if lambda < 30.0 or Rejection method PA by A. C. Atkinson from the Journal of the Royal Statistical Society Series C (Applied Statistics) Vol. 28 No. 1. (1979) pp. 29 - 35 otherwise
§impl Distribution<u64> for StandardGeometric
impl Distribution<u64> for StandardGeometric
§impl Distribution<usize> for Categorical
Available on crate feature rand only.
impl Distribution<usize> for Categorical
rand only.§impl<D> Distribution<Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>> for Dirichlet<D>
Available on crate feature rand only.
impl<D> Distribution<Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>> for Dirichlet<D>
rand only.§impl<D> Distribution<Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>> for Multinomial<D>
Available on crate feature rand only.
impl<D> Distribution<Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>> for Multinomial<D>
rand only.§fn sample<R>(
&self,
rng: &mut R,
) -> Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>where
R: Rng + ?Sized,
fn sample<R>(
&self,
rng: &mut R,
) -> Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>where
R: Rng + ?Sized,
§Numerical stability
Each category’s count is drawn from a Binomial
conditioned on the categories already sampled, using a probability
renormalized against the probability mass not yet assigned
(p_i / remaining_mass). As sampling proceeds and fewer categories
remain unprocessed, remaining_mass shrinks towards zero, which
can amplify floating-point error in that renormalized ratio. The
ratio is clamped to [0.0, 1.0] so this can never panic, but for
distributions with many categories, or a long tail of very small
probabilities, this may introduce a small bias in the
last-processed categories’ counts.
§impl<D> Distribution<Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>> for MultivariateNormal<D>
Available on crate feature rand only.
impl<D> Distribution<Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>> for MultivariateNormal<D>
rand only.§fn sample<R>(
&self,
rng: &mut R,
) -> Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>where
R: Rng + ?Sized,
fn sample<R>(
&self,
rng: &mut R,
) -> Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>where
R: Rng + ?Sized,
Samples from the multivariate normal distribution
§Formula
L * Z + μwhere L is the Cholesky decomposition of the covariance matrix,
Z is a vector of normally distributed random variables, and
μ is the mean vector
§impl<D> Distribution<Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>> for MultivariateStudent<D>
Available on crate feature rand only.
impl<D> Distribution<Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>> for MultivariateStudent<D>
rand only.§fn sample<R>(
&self,
rng: &mut R,
) -> Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>where
R: Rng + ?Sized,
fn sample<R>(
&self,
rng: &mut R,
) -> Matrix<f64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<f64>>where
R: Rng + ?Sized,
Samples from the multivariate student distribution
§Formula
W ⋅ L ⋅ Z + μwhere W has √(ν/Sν) distribution, Sν has Chi-squared
distribution with ν degrees of freedom,
L is the Cholesky decomposition of the scale matrix,
Z is a vector of normally distributed random variables, and
μ is the location vector
§impl<D> Distribution<Matrix<u64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<u64>>> for Multinomial<D>
Available on crate feature rand only.
impl<D> Distribution<Matrix<u64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<u64>>> for Multinomial<D>
rand only.§fn sample<R>(
&self,
rng: &mut R,
) -> Matrix<u64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<u64>>where
R: Rng + ?Sized,
fn sample<R>(
&self,
rng: &mut R,
) -> Matrix<u64, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<u64>>where
R: Rng + ?Sized,
§Numerical stability
Each category’s count is drawn from a Binomial
conditioned on the categories already sampled, using a probability
renormalized against the probability mass not yet assigned
(p_i / remaining_mass). As sampling proceeds and fewer categories
remain unprocessed, remaining_mass shrinks towards zero, which
can amplify floating-point error in that renormalized ratio. The
ratio is clamped to [0.0, 1.0] so this can never panic, but for
distributions with many categories, or a long tail of very small
probabilities, this may introduce a small bias in the
last-processed categories’ counts.
§impl<D> Distribution<f64> for Data<D>
Available on crate feature rand only.
impl<D> Distribution<f64> for Data<D>
rand only.§impl<F> Distribution<F> for Beta<F>where
F: Float,
Open01: Distribution<F>,
impl<F> Distribution<F> for Beta<F>where
F: Float,
Open01: Distribution<F>,
§impl<F> Distribution<F> for Cauchy<F>
impl<F> Distribution<F> for Cauchy<F>
§impl<F> Distribution<F> for ChiSquared<F>
impl<F> Distribution<F> for ChiSquared<F>
§impl<F> Distribution<F> for Exp<F>where
F: Float,
Exp1: Distribution<F>,
impl<F> Distribution<F> for Exp<F>where
F: Float,
Exp1: Distribution<F>,
§impl<F> Distribution<F> for FisherF<F>
impl<F> Distribution<F> for FisherF<F>
§impl<F> Distribution<F> for Frechet<F>where
F: Float,
OpenClosed01: Distribution<F>,
impl<F> Distribution<F> for Frechet<F>where
F: Float,
OpenClosed01: Distribution<F>,
§impl<F> Distribution<F> for Gamma<F>
impl<F> Distribution<F> for Gamma<F>
§impl<F> Distribution<F> for Gumbel<F>where
F: Float,
OpenClosed01: Distribution<F>,
impl<F> Distribution<F> for Gumbel<F>where
F: Float,
OpenClosed01: Distribution<F>,
§impl<F> Distribution<F> for InverseGaussian<F>
impl<F> Distribution<F> for InverseGaussian<F>
§impl<F> Distribution<F> for LogNormal<F>where
F: Float,
StandardNormal: Distribution<F>,
impl<F> Distribution<F> for LogNormal<F>where
F: Float,
StandardNormal: Distribution<F>,
§impl<F> Distribution<F> for NormalInverseGaussian<F>
impl<F> Distribution<F> for NormalInverseGaussian<F>
§impl<F> Distribution<F> for Pareto<F>where
F: Float,
OpenClosed01: Distribution<F>,
impl<F> Distribution<F> for Pareto<F>where
F: Float,
OpenClosed01: Distribution<F>,
§impl<F> Distribution<F> for Pert<F>
impl<F> Distribution<F> for Pert<F>
§impl<F> Distribution<F> for Poisson<F>where
F: Float + FloatConst,
StandardUniform: Distribution<F>,
StandardNormal: Distribution<F>,
Exp1: Distribution<F>,
impl<F> Distribution<F> for Poisson<F>where
F: Float + FloatConst,
StandardUniform: Distribution<F>,
StandardNormal: Distribution<F>,
Exp1: Distribution<F>,
§impl<F> Distribution<F> for SkewNormal<F>where
F: Float,
StandardNormal: Distribution<F>,
impl<F> Distribution<F> for SkewNormal<F>where
F: Float,
StandardNormal: Distribution<F>,
§impl<F> Distribution<F> for StudentT<F>
impl<F> Distribution<F> for StudentT<F>
§impl<F> Distribution<F> for Triangular<F>where
F: Float,
StandardUniform: Distribution<F>,
impl<F> Distribution<F> for Triangular<F>where
F: Float,
StandardUniform: Distribution<F>,
§impl<F> Distribution<F> for Weibull<F>where
F: Float,
OpenClosed01: Distribution<F>,
impl<F> Distribution<F> for Weibull<F>where
F: Float,
OpenClosed01: Distribution<F>,
§impl<F> Distribution<F> for Zeta<F>
impl<F> Distribution<F> for Zeta<F>
§impl<F> Distribution<F> for Zipf<F>where
F: Float,
StandardUniform: Distribution<F>,
impl<F> Distribution<F> for Zipf<F>where
F: Float,
StandardUniform: Distribution<F>,
§impl<F> Distribution<Vec<F>> for Dirichlet<F>where
F: Float + Default,
StandardNormal: Distribution<F>,
Exp1: Distribution<F>,
Open01: Distribution<F>,
impl<F> Distribution<Vec<F>> for Dirichlet<F>where
F: Float + Default,
StandardNormal: Distribution<F>,
Exp1: Distribution<F>,
Open01: Distribution<F>,
§impl<F> Distribution<[F; 2]> for UnitCirclewhere
F: Float + SampleUniform,
impl<F> Distribution<[F; 2]> for UnitCirclewhere
F: Float + SampleUniform,
§impl<F> Distribution<[F; 2]> for UnitDiscwhere
F: Float + SampleUniform,
impl<F> Distribution<[F; 2]> for UnitDiscwhere
F: Float + SampleUniform,
§impl<F> Distribution<[F; 3]> for UnitBallwhere
F: Float + SampleUniform,
impl<F> Distribution<[F; 3]> for UnitBallwhere
F: Float + SampleUniform,
§impl<F> Distribution<[F; 3]> for UnitSpherewhere
F: Float + SampleUniform,
impl<F> Distribution<[F; 3]> for UnitSpherewhere
F: Float + SampleUniform,
§impl<T, D> Distribution<T> for &Dwhere
D: Distribution<T> + ?Sized,
impl<T, D> Distribution<T> for &Dwhere
D: Distribution<T> + ?Sized,
§impl<W> Distribution<usize> for WeightedAliasIndex<W>where
W: AliasableWeight,
impl<W> Distribution<usize> for WeightedAliasIndex<W>where
W: AliasableWeight,
§impl<W> Distribution<usize> for WeightedTreeIndex<W>
Samples a randomly selected index from the weighted distribution.
impl<W> Distribution<usize> for WeightedTreeIndex<W>
Samples a randomly selected index from the weighted distribution.
Caution: This method panics if there are no elements or all weights are zero. However,
it is guaranteed that this method will not panic if a call to [WeightedTreeIndex::is_valid]
returns true.
Implementors§
impl Distribution<()> for StandardUniform
impl Distribution<DispersedState<Spacecraft>> for MvnSpacecraft
impl Distribution<NonZero<i8>> for StandardUniform
impl Distribution<NonZero<i16>> for StandardUniform
impl Distribution<NonZero<i32>> for StandardUniform
impl Distribution<NonZero<i64>> for StandardUniform
impl Distribution<NonZero<i128>> for StandardUniform
impl Distribution<NonZero<u8>> for StandardUniform
impl Distribution<NonZero<u16>> for StandardUniform
impl Distribution<NonZero<u32>> for StandardUniform
impl Distribution<NonZero<u64>> for StandardUniform
impl Distribution<NonZero<u128>> for StandardUniform
impl Distribution<__m128i> for StandardUniform
impl Distribution<__m256i> for StandardUniform
impl Distribution<bool> for Bernoulli
impl Distribution<bool> for StandardUniform
impl Distribution<char> for StandardUniform
impl Distribution<f32> for Open01
impl Distribution<f32> for OpenClosed01
impl Distribution<f32> for StandardUniform
impl Distribution<f64> for Open01
impl Distribution<f64> for OpenClosed01
impl Distribution<f64> for StandardUniform
impl Distribution<i8> for StandardUniform
impl Distribution<i16> for StandardUniform
impl Distribution<i32> for StandardUniform
impl Distribution<i64> for StandardUniform
impl Distribution<i128> for StandardUniform
impl Distribution<u8> for Alphabetic
impl Distribution<u8> for Alphanumeric
impl Distribution<u8> for StandardUniform
impl Distribution<u16> for StandardUniform
impl Distribution<u32> for StandardUniform
impl Distribution<u64> for StandardUniform
impl Distribution<u128> for StandardUniform
impl<'a, T> Distribution<&'a T> for Choose<'a, T>
impl<A, B, C, D, E, F, G, H, I, J, K, L> Distribution<(A, B, C, D, E, F, G, H, I, J, K, L)> for StandardUniformwhere
StandardUniform: Distribution<A> + Distribution<B> + Distribution<C> + Distribution<D> + Distribution<E> + Distribution<F> + Distribution<G> + Distribution<H> + Distribution<I> + Distribution<J> + Distribution<K> + Distribution<L>,
impl<A, B, C, D, E, F, G, H, I, J, K> Distribution<(A, B, C, D, E, F, G, H, I, J, K)> for StandardUniformwhere
StandardUniform: Distribution<A> + Distribution<B> + Distribution<C> + Distribution<D> + Distribution<E> + Distribution<F> + Distribution<G> + Distribution<H> + Distribution<I> + Distribution<J> + Distribution<K>,
impl<A, B, C, D, E, F, G, H, I, J> Distribution<(A, B, C, D, E, F, G, H, I, J)> for StandardUniformwhere
StandardUniform: Distribution<A> + Distribution<B> + Distribution<C> + Distribution<D> + Distribution<E> + Distribution<F> + Distribution<G> + Distribution<H> + Distribution<I> + Distribution<J>,
impl<A, B, C, D, E, F, G, H, I> Distribution<(A, B, C, D, E, F, G, H, I)> for StandardUniformwhere
StandardUniform: Distribution<A> + Distribution<B> + Distribution<C> + Distribution<D> + Distribution<E> + Distribution<F> + Distribution<G> + Distribution<H> + Distribution<I>,
impl<A, B, C, D, E, F, G, H> Distribution<(A, B, C, D, E, F, G, H)> for StandardUniformwhere
StandardUniform: Distribution<A> + Distribution<B> + Distribution<C> + Distribution<D> + Distribution<E> + Distribution<F> + Distribution<G> + Distribution<H>,
impl<A, B, C, D, E, F, G> Distribution<(A, B, C, D, E, F, G)> for StandardUniformwhere
StandardUniform: Distribution<A> + Distribution<B> + Distribution<C> + Distribution<D> + Distribution<E> + Distribution<F> + Distribution<G>,
impl<A, B, C, D, E, F> Distribution<(A, B, C, D, E, F)> for StandardUniformwhere
StandardUniform: Distribution<A> + Distribution<B> + Distribution<C> + Distribution<D> + Distribution<E> + Distribution<F>,
impl<A, B, C, D, E> Distribution<(A, B, C, D, E)> for StandardUniformwhere
StandardUniform: Distribution<A> + Distribution<B> + Distribution<C> + Distribution<D> + Distribution<E>,
impl<A, B, C, D> Distribution<(A, B, C, D)> for StandardUniform
impl<A, B, C> Distribution<(A, B, C)> for StandardUniform
impl<A, B> Distribution<(A, B)> for StandardUniformwhere
StandardUniform: Distribution<A> + Distribution<B>,
impl<A> Distribution<(A,)> for StandardUniformwhere
StandardUniform: Distribution<A>,
impl<D, F, T, S> Distribution<S> for Map<D, F, T, S>where
D: Distribution<T>,
F: Fn(T) -> S,
impl<F> Distribution<F> for nyx_space::mc::Normal<F>where
F: Float,
StandardNormal: Distribution<F>,
impl<T, D> Distribution<OPoint<T, D>> for StandardUniform
rand-no-std only.impl<T, R, C> Distribution<Matrix<T, R, C, <DefaultAllocator as Allocator<R, C>>::Buffer<T>>> for StandardUniformwhere
T: Scalar,
R: Dim,
C: Dim,
DefaultAllocator: Allocator<R, C>,
StandardUniform: Distribution<T>,
rand-no-std only.impl<T, R, const D: usize> Distribution<Isometry<T, R, D>> for StandardUniform
rand-no-std only.impl<T, R, const D: usize> Distribution<Similarity<T, R, D>> for StandardUniform
rand-no-std only.impl<T, const D: usize> Distribution<Scale<T, D>> for StandardUniformwhere
T: Scalar,
StandardUniform: Distribution<T>,
rand-no-std only.impl<T, const D: usize> Distribution<Translation<T, D>> for StandardUniformwhere
T: Scalar,
StandardUniform: Distribution<T>,
rand-no-std only.impl<T, const N: usize> Distribution<[T; N]> for StandardUniformwhere
StandardUniform: Distribution<T>,
impl<T> Distribution<Orthographic3<T>> for StandardUniformwhere
T: RealField,
StandardUniform: Distribution<T>,
rand-no-std only.impl<T> Distribution<Perspective3<T>> for StandardUniformwhere
T: RealField,
StandardUniform: Distribution<T>,
rand-no-std only.impl<T> Distribution<Quaternion<T>> for StandardUniformwhere
T: SimdRealField,
StandardUniform: Distribution<T>,
rand-no-std only.impl<T> Distribution<Rotation<T, 2>> for StandardUniformwhere
T: SimdRealField + SampleUniform,
<T as SimdValue>::Element: SimdRealField,
rand-no-std only.impl<T> Distribution<Rotation<T, 3>> for StandardUniformwhere
T: SimdRealField + SampleUniform,
<T as SimdValue>::Element: SimdRealField,
OpenClosed01: Distribution<T>,
rand-no-std only.impl<T> Distribution<Unit<Quaternion<T>>> for StandardUniformwhere
T: SimdRealField + SampleUniform,
<T as SimdValue>::Element: SimdRealField,
OpenClosed01: Distribution<T>,
rand-no-std only.