Crates.io | mix-distribution |
lib.rs | mix-distribution |
version | 0.3.0 |
source | src |
created_at | 2018-10-24 03:04:24.225281 |
updated_at | 2019-07-26 03:32:08.86903 |
description | Mixture distributions |
homepage | https://crates.io/crates/mix-distribution |
repository | https://github.com/ordovicia/mix-distribution |
max_upload_size | |
id | 92306 |
size | 14,123 |
use rand_distr::{Distribution, Normal};
use mix_distribution::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::with_zip(vec![
(Uniform::new_inclusive(0, 0), 2),
(Uniform::new_inclusive(1, 1), 1),
])
.unwrap();
mix.sample(&mut rng);
Copyright 2018 Hidehito Yabuuchi <hdht.ybuc@gmail.com>
Licensed under the MIT license <LICENSE-MIT or http://opensource.org/licenses/MIT>, or the Apache License, Version 2.0 <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> at your option. All files in the project carrying such notice may not be copied, modified, or distributed except according to those terms.