12 stable releases (7 major)
|7.0.0||Dec 25, 2020|
|6.1.0||Oct 22, 2019|
|6.0.1||Aug 24, 2019|
|6.0.0||Jun 28, 2019|
|0.2.0||Jan 23, 2017|
#540 in Algorithms
10,410 downloads per month
Used in 6 crates (5 directly)
Rust implementation of a fast, discrete, bounded,
number generator. Compared to the implementation provided by
randomkit (which binds
to NumPy's fork of RandomKit), this crate is approximately twice as
$ cargo +nightly bench test tests::bench_randomkit ... bench: 339 ns/iter (+/- 18) test tests::bench_us ... bench: 68 ns/iter (+/- 1) test tests::bench_threadrng ... bench: 11 ns/iter (+/- 0)
It is also both driven by, and provides, a Rust random number generator.
This implementation is effectively a direct port of Apache Common's RejectionInversionZipfSampler, written in Java. It is based on the method described by Wolfgang Hörmann and Gerhard Derflinger in Rejection-inversion to generate variates from monotone discrete distributions from ACM Transactions on Modeling and Computer Simulation (TOMACS) 6.3 (1996).