pub trait Distrib: Clone {
type Sample;
// Required method
fn sample(&self, rng: &mut DefaultRng) -> Self::Sample;
// Provided method
fn samples(
&self,
rng: &mut DefaultRng,
) -> impl Iterator<Item = Self::Sample> { ... }
}Expand description
Trait for generating values sampled from a probability distribution.
Required Associated Types§
Required Methods§
Sourcefn sample(&self, rng: &mut DefaultRng) -> Self::Sample
fn sample(&self, rng: &mut DefaultRng) -> Self::Sample
Returns a pseudo-random value sampled from self.
§Examples
use retrofire_core::math::rand::*;
// Simulate rolling a six-sided die
let rng = &mut DefaultRng::default();
let d6 = Uniform(1..7).sample(rng);
assert_eq!(d6, 3);Provided Methods§
Sourcefn samples(&self, rng: &mut DefaultRng) -> impl Iterator<Item = Self::Sample>
fn samples(&self, rng: &mut DefaultRng) -> impl Iterator<Item = Self::Sample>
Returns an iterator that yields samples from self indefinitely.
§Examples
use retrofire_core::math::rand::*;
// Simulate rolling a six-sided die three times
let rng = &mut DefaultRng::default();
let mut iter = Uniform(1u32..7).samples(rng);
assert_eq!(iter.next(), Some(1));
assert_eq!(iter.next(), Some(2));
assert_eq!(iter.next(), Some(4));Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Implementors§
Source§impl Distrib for UnitCircle
Available on crate feature fp only.
impl Distrib for UnitCircle
Available on crate feature
fp only.Source§impl Distrib for UnitSphere
Available on crate feature fp only.
impl Distrib for UnitSphere
Available on crate feature
fp only.Source§impl<Sc, Sp, const DIM: usize> Distrib for Uniform<Point<[Sc; DIM], Sp>>
Uniformly distributed points within a rectangular volume.
impl<Sc, Sp, const DIM: usize> Distrib for Uniform<Point<[Sc; DIM], Sp>>
Uniformly distributed points within a rectangular volume.