4 releases (breaking)
0.4.0 | Aug 6, 2019 |
---|---|
0.3.0 | Jun 6, 2019 |
0.2.0 | Jun 6, 2019 |
0.1.0 | Aug 23, 2016 |
#61 in #sampling
Used in locustdb
7KB
119 lines
aliasmethod
Implementation of Walker's Alias method by Rust.
The algorithm is principally useful when you need to random sampling with replacement by O(1)
.
Example
use rand::XorShiftRng;
use aliasmethod::AliasTable
let weights = vec![1.0, 1.0, 8.0];
let alias_table = AliasTable::new(weights)?;
let rng = XorShiftRng::from_seed([189522394, 1694417663, 1363148323, 4087496301]);
let n = alias_table.random(rng);
assert!(0 <= n && n <= weights.length);
Dependencies
~1.4–2MB
~36K SLoC