```rust use randdistr::{Distribution, Normal}; use mixdistribution::Mix;
let mut rng = rand::thread_rng();
// Mixture of two distributions let mix = { let dists = vec![ Normal::new(0.0, 1.0).unwrap(), Normal::new(1.0, 2.0).unwrap(), ]; let weights = &[2, 1]; Mix::new(dists, weights).unwrap() }; mix.sample(&mut rng);
// Mixture of three distributions let mix = { let dists = vec![ Normal::new(0.0, 1.0).unwrap(), Normal::new(1.0, 2.0).unwrap(), Normal::new(-1.0, 1.0).unwrap(), ]; let weights = &[2, 1, 3]; Mix::new(dists, weights).unwrap() }; mix.sample(&mut rng);
// From iterator over (distribution, weight) pairs let mix = Mix::withzip(vec![ (Uniform::newinclusive(0, 0), 2), (Uniform::new_inclusive(1, 1), 1), ]) .unwrap(); mix.sample(&mut rng); ```
Copyright 2018 Hidehito Yabuuchi \ Licensed under the MIT license