aliasmethod 0.4.0

Implementation of Walker's Alias method.
Documentation

aliasmethod

Build Status

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