Struct opensrdk_probability::distribution::instant_value_differentiable::ValueDifferentiableInstantDistribution
source · pub struct 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,{ /* private fields */ }Implementations
sourceimpl<T, U, FF, FS, G> 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,
impl<T, U, FF, FS, G> 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,
pub fn new(
instant_distribution: InstantDistribution<T, U, FF, FS>,
value_diff: G
) -> Self
Trait Implementations
sourceimpl<T, U, Rhs, URhs, FF, FS, G> BitAnd<Rhs> for ValueDifferentiableInstantDistribution<T, U, FF, FS, G>where
T: RandomVariable,
U: RandomVariable,
Rhs: Distribution<Value = U, Condition = URhs>,
URhs: 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,
impl<T, U, Rhs, URhs, FF, FS, G> BitAnd<Rhs> for ValueDifferentiableInstantDistribution<T, U, FF, FS, G>where
T: RandomVariable,
U: RandomVariable,
Rhs: Distribution<Value = U, Condition = URhs>,
URhs: 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,
type Output = DependentJoint<ValueDifferentiableInstantDistribution<T, U, FF, FS, G>, Rhs, T, U, URhs>
type Output = DependentJoint<ValueDifferentiableInstantDistribution<T, U, FF, FS, G>, Rhs, T, U, URhs>
The resulting type after applying the
& operator.sourceimpl<T: Clone, U: Clone, FF: Clone, FS: Clone, G: Clone> Clone 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,
impl<T: Clone, U: Clone, FF: Clone, FS: Clone, G: Clone> Clone 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,
sourcefn clone(&self) -> ValueDifferentiableInstantDistribution<T, U, FF, FS, G>
fn clone(&self) -> ValueDifferentiableInstantDistribution<T, U, FF, FS, G>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresourceimpl<T, U, FF, FS, G> Debug 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,
impl<T, U, FF, FS, G> Debug 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,
sourceimpl<T, U, FF, FS, G> Distribution 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,
impl<T, U, FF, FS, G> Distribution 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,
sourceimpl<T, U, Rhs, TRhs, FF, FS, G> Mul<Rhs> for ValueDifferentiableInstantDistribution<T, U, FF, FS, G>where
T: RandomVariable,
U: RandomVariable,
Rhs: Distribution<Value = TRhs, Condition = U>,
TRhs: 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,
impl<T, U, Rhs, TRhs, FF, FS, G> Mul<Rhs> for ValueDifferentiableInstantDistribution<T, U, FF, FS, G>where
T: RandomVariable,
U: RandomVariable,
Rhs: Distribution<Value = TRhs, Condition = U>,
TRhs: 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,
type Output = IndependentJoint<ValueDifferentiableInstantDistribution<T, U, FF, FS, G>, Rhs, T, TRhs, U>
type Output = IndependentJoint<ValueDifferentiableInstantDistribution<T, U, FF, FS, G>, Rhs, T, TRhs, U>
The resulting type after applying the
* operator.sourceimpl<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,
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,
sourceimpl<T, U, FF, FS, G> ValueDifferentiableDistribution 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,
impl<T, U, FF, FS, G> ValueDifferentiableDistribution 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,
fn ln_diff_value(
&self,
x: &Self::Value,
theta: &Self::Condition
) -> Result<Vec<f64>, DistributionError>
Auto Trait Implementations
impl<T, U, FF, FS, G> RefUnwindSafe for ValueDifferentiableInstantDistribution<T, U, FF, FS, G>where
FF: RefUnwindSafe,
FS: RefUnwindSafe,
G: RefUnwindSafe,
T: RefUnwindSafe,
U: RefUnwindSafe,
impl<T, U, FF, FS, G> Send for ValueDifferentiableInstantDistribution<T, U, FF, FS, G>
impl<T, U, FF, FS, G> Sync for ValueDifferentiableInstantDistribution<T, U, FF, FS, G>
impl<T, U, FF, FS, G> Unpin for ValueDifferentiableInstantDistribution<T, U, FF, FS, G>where
FF: Unpin,
FS: Unpin,
G: Unpin,
T: Unpin,
U: Unpin,
impl<T, U, FF, FS, G> UnwindSafe for ValueDifferentiableInstantDistribution<T, U, FF, FS, G>where
FF: UnwindSafe,
FS: UnwindSafe,
G: UnwindSafe,
T: UnwindSafe,
U: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more