pub trait AdvancedTarget<F>: Send + Sync{
// Required methods
fn log_density(&self, x: &Array1<F>) -> F;
fn gradient(&self, x: &Array1<F>) -> Array1<F>;
fn dim(&self) -> usize;
// Provided methods
fn log_density_and_gradient(&self, x: &Array1<F>) -> (F, Array1<F>) { ... }
fn hessian(x: &Array1<F>) -> Option<Array2<F>> { ... }
fn fisher_information(x: &Array1<F>) -> Option<Array2<F>> { ... }
fn riemann_metric(x: &Array1<F>) -> Option<Array2<F>> { ... }
fn modeldimension(&self, modelid: usize) -> usize { ... }
fn model_transition_prob(from_model: usize, _tomodel: usize) -> F { ... }
fn batch_log_density(&self, xbatch: &Array2<F>) -> Array1<F> { ... }
}Expand description
Advanced-advanced target distribution interface
Required Methods§
Sourcefn log_density(&self, x: &Array1<F>) -> F
fn log_density(&self, x: &Array1<F>) -> F
Compute log probability density
Provided Methods§
Sourcefn log_density_and_gradient(&self, x: &Array1<F>) -> (F, Array1<F>)
fn log_density_and_gradient(&self, x: &Array1<F>) -> (F, Array1<F>)
Compute both log density and gradient efficiently
Sourcefn fisher_information(x: &Array1<F>) -> Option<Array2<F>>
fn fisher_information(x: &Array1<F>) -> Option<Array2<F>>
Compute Fisher information matrix
Sourcefn riemann_metric(x: &Array1<F>) -> Option<Array2<F>>
fn riemann_metric(x: &Array1<F>) -> Option<Array2<F>>
Compute Riemann metric tensor (for Riemannian methods)
Sourcefn modeldimension(&self, modelid: usize) -> usize
fn modeldimension(&self, modelid: usize) -> usize
Support for discontinuous model spaces (for Reversible Jump)
Sourcefn model_transition_prob(from_model: usize, _tomodel: usize) -> F
fn model_transition_prob(from_model: usize, _tomodel: usize) -> F
Model transition probability (for Reversible Jump)
Sourcefn batch_log_density(&self, xbatch: &Array2<F>) -> Array1<F>
fn batch_log_density(&self, xbatch: &Array2<F>) -> Array1<F>
Support parallel evaluation of multiple points
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".