pub trait SampleableDistribution: Distribution {
    // Required method
    fn sample(
&self,
theta: &Self::Condition,
rng: &mut dyn RngCore
) -> Result<Self::Value, DistributionError>; }

Required Methods§

source

fn sample(
&self,
theta: &Self::Condition,
rng: &mut dyn RngCore
) -> Result<Self::Value, DistributionError>

Implementors§

source§

impl SampleableDistribution for Dirichlet

source§

impl SampleableDistribution for Beta

source§

impl SampleableDistribution for MultivariateCauchy

source§

impl SampleableDistribution for Cauchy

source§

impl SampleableDistribution for MultivariateNormal

source§

impl SampleableDistribution for Normal

source§

impl SampleableDistribution for MultivariateStudentT

source§

impl SampleableDistribution for StudentT

source§

impl SampleableDistribution for Exp

source§

impl SampleableDistribution for FisherF

source§

impl SampleableDistribution for InverseWishart

source§

impl SampleableDistribution for NormalInverseWishart

source§

impl SampleableDistribution for Wishart

source§

impl SampleableDistribution for ChiSquared

source§

impl SampleableDistribution for Gamma

source§

impl SampleableDistribution for ContinuousUniform

source§

impl SampleableDistribution for Geometric

source§

impl SampleableDistribution for Bernoulli

source§

impl SampleableDistribution for Categorical

source§

impl SampleableDistribution for Binomial

source§

impl SampleableDistribution for Multinominal

source§

impl SampleableDistribution for Poisson

source§

impl<'a, D, T, U> SampleableDistribution for SwitchedDistribution<'a, D, T, U>where
D: SampleableDistribution<Value = T, Condition = U>,
T: RandomVariable,
U: Event,

source§

impl<D, T1, T2, U, F> SampleableDistribution for ValuedDistribution<D, T1, T2, U, F>where
D: SampleableDistribution<Value = T1, Condition = U>,
T1: RandomVariable,
T2: RandomVariable,
U: Event,
F: Fn(&T2) -> Result<T1, DistributionError> + Clone + Send + Sync,

source§

impl<D, T1, T2, U, F, G> SampleableDistribution for ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>where
D: Distribution<Value = T1, Condition = U>,
T1: RandomVariable,
T2: RandomVariable,
U: Event,
F: Fn(&T2) -> Result<T1, DistributionError> + Clone + Send + Sync,
G: Fn(&T2) -> Matrix + Clone + Send + Sync,

source§

impl<D, T, U1, U2, F> SampleableDistribution for ConditionedDistribution<D, T, U1, U2, F>where
D: SampleableDistribution<Value = T, Condition = U1>,
T: RandomVariable,
U1: Event,
U2: Event,
F: Fn(&U2) -> Result<U1, DistributionError> + Clone + Send + Sync,

source§

impl<D, T, U1, U2, F, G> SampleableDistribution for ConditionDifferentiableConditionedDistribution<D, T, U1, U2, F, G>where
D: SampleableDistribution<Value = T, Condition = U1>,
T: RandomVariable,
U1: Event,
U2: Event,
F: Fn(&U2) -> Result<U1, DistributionError> + Clone + Send + Sync,
G: Fn(&U2) -> Matrix + Clone + Send + Sync,

source§

impl<D, T, U> SampleableDistribution for IndependentArrayJoint<D, T, U>where
D: SampleableDistribution<Value = T, Condition = U>,
T: RandomVariable,
U: RandomVariable,

source§

impl<D, T, U> SampleableDistribution for IndependentValueArrayJoint<D, T, U>where
D: SampleableDistribution<Value = T, Condition = U>,
T: RandomVariable,
U: RandomVariable,

source§

impl<D, T, U, V> SampleableDistribution for TransformedDistribution<D, T, U, V>where
D: SampleableDistribution<Value = T, Condition = U>,
T: RandomVariable,
U: RandomVariable,
V: RandomVariable,

source§

impl<L, P, A, B> SampleableDistribution for DiscretePosterior<L, P, A, B>where
L: Distribution<Value = A, Condition = B>,
P: Distribution<Value = B, Condition = ()>,
A: RandomVariable,
B: RandomVariable + Eq + Hash,

source§

impl<L, R, T, UL, UR> SampleableDistribution for DependentJoint<L, R, T, UL, UR>where
L: SampleableDistribution<Value = T, Condition = UL>,
R: SampleableDistribution<Value = UL, Condition = UR>,
T: RandomVariable,
UL: RandomVariable,
UR: Event,

source§

impl<L, R, TL, TR, U> SampleableDistribution for IndependentJoint<L, R, TL, TR, U>where
L: SampleableDistribution<Value = TL, Condition = U>,
R: SampleableDistribution<Value = TR, Condition = U>,
TL: RandomVariable,
TR: RandomVariable,
U: Event,

source§

impl<S, A, K> SampleableDistribution for GeneralizedKernelDensityEstimation<S, A, K>where
S: RandomVariable,
A: RandomVariable,
K: PositiveDefiniteKernel<Vec<f64>>,

source§

impl<T> SampleableDistribution for DiscreteUniform<T>where
T: RandomVariable + Eq + Hash,

source§

impl<T> SampleableDistribution for ContinuousSamplesDistribution<T>where
T: RandomVariable + PartialEq,

source§

impl<T> SampleableDistribution for Degenerate<T>where
T: RandomVariable + PartialEq,

source§

impl<T> SampleableDistribution for DiscreteSamplesDistribution<T>where
T: RandomVariable + Eq + Hash,

source§

impl<T, U, FF, FS> SampleableDistribution for InstantDistribution<T, U, FF, FS>where
T: RandomVariable,
U: RandomVariable,
FF: Fn(&T, &U) -> Result<f64, DistributionError> + Clone + Send + Sync,
FS: Fn(&U, &mut dyn RngCore) -> Result<T, DistributionError> + Clone + Send + Sync,

source§

impl<T, U, FF, FS, G> SampleableDistribution for ConditionDifferentiableInstantDistribution<T, U, FF, FS, G>where
T: RandomVariable,
U: RandomVariable,
FF: Fn(&T, &U) -> Result<f64, DistributionError> + Clone + Send + Sync,
FS: Fn(&U, &mut dyn RngCore) -> Result<T, DistributionError> + Clone + Send + Sync,
G: Fn(&T, &U) -> Result<Vec<f64>, DistributionError> + Clone + Send + Sync,

source§

impl<T, U, FF, FS, G> SampleableDistribution for ValueDifferentiableInstantDistribution<T, U, FF, FS, G>where
T: RandomVariable,
U: RandomVariable,
FF: Fn(&T, &U) -> Result<f64, DistributionError> + Clone + Send + Sync,
FS: Fn(&U, &mut dyn RngCore) -> Result<T, DistributionError> + Clone + Send + Sync,
G: Fn(&T, &U) -> Result<Vec<f64>, DistributionError> + Clone + Send + Sync,