Skip to main content

simsam/
sample.rs

1use crate::continuous::ContinuousSampler;
2use crate::discrete::DiscreteSampler;
3use rand::distr::Distribution;
4use rand::Rng;
5
6impl<D> Distribution<f64> for ContinuousSampler<D>
7where
8    D: crate::continuous::CdfSource,
9{
10    fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64 {
11        self.sample_with_rng(rng).unwrap_or(f64::NAN)
12    }
13}
14
15impl Distribution<f64> for DiscreteSampler {
16    fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64 {
17        self.sample_with_rng(rng).unwrap_or(f64::NAN)
18    }
19}