pub fn sample<T>(
addr: Address,
dist: impl Distribution<T> + 'static,
) -> Model<T>where
T: SampleType,Expand description
Sample from a distribution (generic version - chooses the right variant automatically).
Type-specific variants:
sample_f64- Sample from f64 distributions (continuous distributions)sample_bool- Sample from bool distributions (Bernoulli)sample_u64- Sample from u64 distributions (Poisson, Binomial)sample_usize- Sample from usize distributions (Categorical)
Example:
// Automatically returns f64 for continuous distributions
let normal_sample: Model<f64> = sample(addr!("x"), Normal::new(0.0, 1.0).unwrap());
// Automatically returns bool for Bernoulli
let coin_flip: Model<bool> = sample(addr!("coin"), Bernoulli::new(0.5).unwrap());
// Automatically returns u64 for Poisson
let count: Model<u64> = sample(addr!("count"), Poisson::new(3.0).unwrap());
// Automatically returns usize for Categorical
let choice: Model<usize> = sample(addr!("choice"),
Categorical::new(vec![0.3, 0.5, 0.2]).unwrap());