rand_mt
Implemenents a selection of Mersenne Twister random number generators.
A very fast random number generator of period 219937-1. (Makoto Matsumoto, 1997).
The Mersenne Twister algorithms are not suitable for cryptographic uses, but are ubiquitous. See the Mersenne Twister website. A variant of Mersenne Twister is the default PRNG in Ruby.
This crate optionally depends on rand_core and implements RngCore
on the
RNGs in this crate.
Usage
Add this to your Cargo.toml
:
[]
= "4.2.0"
Then create a RNG like:
use Mt64;
let mut rng = new_unseeded;
assert_ne!;
Crate Features
rand_mt
is no_std
compatible. rand_mt
has several optional features that
are enabled by default:
- rand-traits - Enables a dependency on
rand_core
. Activating this feature implementsRngCore
andSeedableRng
on the RNGs in this crate. - std - Enables a dependency on the Rust Standard Library. Activating this
feature enables
std::error::Error
impls on error types in this crate.
Mersenne Twister requires ~2.5KB of internal state. To make the RNGs implemented
in this crate practical to embed in other structs, you may wish to store the RNG
in a Box
.
Minimum Supported Rust Version
This crate requires at least Rust 1.47.0. This version can be bumped in minor releases.
License
rand_mt
is distributed under the terms of either the
MIT License or the
Apache License (Version 2.0).
rand_mt
is derived from rust-mersenne-twister
@ 1.1.1
which is Copyright
(c) 2015 rust-mersenne-twister developers.