simsam 0.1.0

Sample from custom discrete and continuous distributions (SciPy-like API)
Documentation
use crate::continuous::ContinuousSampler;
use crate::discrete::DiscreteSampler;
use rand::distr::Distribution;
use rand::Rng;

impl<D> Distribution<f64> for ContinuousSampler<D>
where
    D: crate::continuous::CdfSource,
{
    fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64 {
        self.sample_with_rng(rng).unwrap_or(f64::NAN)
    }
}

impl Distribution<f64> for DiscreteSampler {
    fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64 {
        self.sample_with_rng(rng).unwrap_or(f64::NAN)
    }
}