Struct opensrdk_probability::distribution::valued::value_differentiable::ValueDifferentiableValuedDistribution
source · pub struct 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,{ /* private fields */ }Implementations§
source§impl<D, T1, T2, U, F, G> 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,
impl<D, T1, T2, U, F, G> 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,
pub fn new(
valued_distribution: ValuedDistribution<D, T1, T2, U, F>,
value_diff: G
) -> Self
Trait Implementations§
source§impl<D, T1, T2, U, Rhs, URhs, F, G> BitAnd<Rhs> for ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>where
D: Distribution<Value = T1, Condition = U>,
T1: RandomVariable,
T2: RandomVariable,
U: Event,
Rhs: Distribution<Value = U, Condition = URhs>,
URhs: RandomVariable,
F: Fn(&T2) -> Result<T1, DistributionError> + Clone + Send + Sync,
G: Fn(&T2) -> Matrix + Clone + Send + Sync,
impl<D, T1, T2, U, Rhs, URhs, F, G> BitAnd<Rhs> for ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>where
D: Distribution<Value = T1, Condition = U>,
T1: RandomVariable,
T2: RandomVariable,
U: Event,
Rhs: Distribution<Value = U, Condition = URhs>,
URhs: RandomVariable,
F: Fn(&T2) -> Result<T1, DistributionError> + Clone + Send + Sync,
G: Fn(&T2) -> Matrix + Clone + Send + Sync,
§type Output = DependentJoint<ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>, Rhs, T2, U, URhs>
type Output = DependentJoint<ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>, Rhs, T2, U, URhs>
The resulting type after applying the
& operator.source§impl<D, T1, T2, U, F, G> Clone for ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>where
D: Distribution<Value = T1, Condition = U> + Clone,
T1: RandomVariable + Clone,
T2: RandomVariable + Clone,
U: Event + Clone,
F: Fn(&T2) -> Result<T1, DistributionError> + Clone + Send + Sync + Clone,
G: Fn(&T2) -> Matrix + Clone + Send + Sync + Clone,
impl<D, T1, T2, U, F, G> Clone for ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>where
D: Distribution<Value = T1, Condition = U> + Clone,
T1: RandomVariable + Clone,
T2: RandomVariable + Clone,
U: Event + Clone,
F: Fn(&T2) -> Result<T1, DistributionError> + Clone + Send + Sync + Clone,
G: Fn(&T2) -> Matrix + Clone + Send + Sync + Clone,
source§fn clone(&self) -> ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>
fn clone(&self) -> ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<D, T1, T2, U, F, G> ConditionDifferentiableDistribution for ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>where
D: Distribution<Value = T1, Condition = U> + ConditionDifferentiableDistribution,
T1: RandomVariable,
T2: RandomVariable,
U: Event,
F: Fn(&T2) -> Result<T1, DistributionError> + Clone + Send + Sync,
G: Fn(&T2) -> Matrix + Clone + Send + Sync,
impl<D, T1, T2, U, F, G> ConditionDifferentiableDistribution for ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>where
D: Distribution<Value = T1, Condition = U> + ConditionDifferentiableDistribution,
T1: RandomVariable,
T2: RandomVariable,
U: Event,
F: Fn(&T2) -> Result<T1, DistributionError> + Clone + Send + Sync,
G: Fn(&T2) -> Matrix + Clone + Send + Sync,
fn ln_diff_condition(
&self,
x: &Self::Value,
theta: &Self::Condition
) -> Result<Vec<f64>, DistributionError>
source§impl<D, T1, T2, U, F, G> Debug 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,
impl<D, T1, T2, U, F, G> Debug 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, T1, T2, U, F, G> Distribution 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,
impl<D, T1, T2, U, F, G> Distribution 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, T1, T2, U, Rhs, TRhs, F, G> Mul<Rhs> for ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>where
D: Distribution<Value = T1, Condition = U>,
T1: RandomVariable,
T2: RandomVariable,
U: Event,
Rhs: Distribution<Value = TRhs, Condition = U>,
TRhs: RandomVariable,
F: Fn(&T2) -> Result<T1, DistributionError> + Clone + Send + Sync,
G: Fn(&T2) -> Matrix + Clone + Send + Sync,
impl<D, T1, T2, U, Rhs, TRhs, F, G> Mul<Rhs> for ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>where
D: Distribution<Value = T1, Condition = U>,
T1: RandomVariable,
T2: RandomVariable,
U: Event,
Rhs: Distribution<Value = TRhs, Condition = U>,
TRhs: RandomVariable,
F: Fn(&T2) -> Result<T1, DistributionError> + Clone + Send + Sync,
G: Fn(&T2) -> Matrix + Clone + Send + Sync,
§type Output = IndependentJoint<ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>, Rhs, T2, TRhs, U>
type Output = IndependentJoint<ValueDifferentiableValuedDistribution<D, T1, T2, U, F, G>, Rhs, T2, TRhs, U>
The resulting type after applying the
* operator.