Updating to 0.6
During the 0.6 cycle, Rand found a new home under the rust-random project. We already feel at home, but if you'd like to help us decorate, a new logo would be appreciated!
We also found a new home for user-centric documentation — this book!
All PRNGs in our old PRNG module have been moved to new crates. We also added an additional crate with the PCG algorithms, and an external crate with Xoshiro / Xoroshiro algorithms:
This update, we switched the algorithm behind
SmallRng from Xorshift to a
PCG algorithm (either
Pcg64Mcg aka XSL 128/64 MCG, or
XSH RR 64/32 LCG aka the standard PCG algorithm).
seq module has been completely re-written,
shuffle methods have been removed from the
Most functionality can now be found in the
WeightedChoice distribution has now been replaced with
WeightedIndex, solving a few issues by making the functionality more
For convenience, the
SliceRandom::choose_weighted method (and
variant) allow a
WeightedIndex sample to be applied directly to a slice.
Rand now has rudimentary support for generating SIMD types, gated behind the
simd_support feature flag.
Since these types are now available on stable compilers, these types are
supported automatically (with recent enough Rust version). The
feature flag still exists to avoid breakage, but no longer does anything.