๐Ÿ“ฆ ordovicia / mix-distribution

Mixture distribution

โ˜… 0 stars โ‘‚ 0 forks ๐Ÿ‘ 0 watching โš–๏ธ Other
๐Ÿ“ฅ Clone https://github.com/ordovicia/mix-distribution.git
HTTPS git clone https://github.com/ordovicia/mix-distribution.git
SSH git clone git@github.com:ordovicia/mix-distribution.git
CLI gh repo clone ordovicia/mix-distribution
Hidehito Yabuuchi Hidehito Yabuuchi Bump 0.3.0 eb87605 6 years ago ๐Ÿ“ History
๐Ÿ“‚ master View all commits โ†’
๐Ÿ“ src
๐Ÿ“„ .gitignore
๐Ÿ“„ .travis.yml
๐Ÿ“„ Cargo.toml
๐Ÿ“„ COPYRIGHT
๐Ÿ“„ LICENSE-APACHE
๐Ÿ“„ LICENSE-MIT
๐Ÿ“„ README.md
๐Ÿ“„ README.md

Mixture Distributions

Build Status mix-distribution mix-distribution

Examples

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);

License

Copyright 2018 Hidehito Yabuuchi \

Licensed under the MIT license , or the Apache License, Version 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.