pub trait Inference {
type Mat: IoOps + MeltOps + CandleDataLoaderOps;
type Scalar: Into<f32>;
// Required methods
fn posterior_mean(&self) -> &Self::Mat;
fn posterior_sd(&self) -> &Self::Mat;
fn posterior_log_mean(&self) -> &Self::Mat;
fn posterior_log_sd(&self) -> &Self::Mat;
fn posterior_sample(&self) -> Result<Self::Mat>;
fn posterior_log_sample(&self, seed: u64) -> Result<Self::Mat>;
fn nrows(&self) -> usize;
fn ncols(&self) -> usize;
}Required Associated Types§
Required Methods§
fn posterior_mean(&self) -> &Self::Mat
fn posterior_sd(&self) -> &Self::Mat
fn posterior_log_mean(&self) -> &Self::Mat
fn posterior_log_sd(&self) -> &Self::Mat
fn posterior_sample(&self) -> Result<Self::Mat>
Sourcefn posterior_log_sample(&self, seed: u64) -> Result<Self::Mat>
fn posterior_log_sample(&self, seed: u64) -> Result<Self::Mat>
Draw a fresh sample of log λ per element. Delta-method
approximation: log λ ≈ Normal(posterior_log_mean, posterior_log_sd²). Caller must have called
calibrate_with(CalibrateTarget::All) first so log_mean / log_sd
are populated.
seed makes the draw reproducible. It used to come from
rand::rng() inside a map_init, which is OS-seeded AND partitioned
by rayon, so a caller could not reproduce its own null distribution
even with every other seed pinned. Seeding per CHUNK rather than per
element keeps the draw parallel and independent of how rayon happens
to split the work.
fn nrows(&self) -> usize
fn ncols(&self) -> usize
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".