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}