[−][src]Crate rand_xoshiro
This crate implements the xoshiro family of pseudorandom number generators designed by David Blackman and Sebastiano Vigna. They feature high perfomance and a small state and superseed the previous xorshift-based generators. However, they are no cryptographically secure and their output can be predicted by observing a few samples.
The following generators are implemented:
64-bit generators
Xoshiro256StarStar: Recommended for all purposes. Excellent speed and a state space (256 bits) large enough for any parallel application.Xoshiro256Plus: Recommended for generating 64-bit floating-point numbers. About 15% faster thanXoshiro256StarStar, but has a low linear complexity in the lowest bits (which are discarded when generating floats), making it fail linearity tests. This is unlikely to have any impact in practise.Xoroshiro128StarStar: An alternative toXoshiro256StarStar, having the same speed but using half the state. Only suited for low-scale parallel applications.Xoroshiro128Plus: An alternative toXoshiro256Plus, having the same speed but using half the state. Only suited for low-scale parallel applications. Has a low linear complexity in the lowest bits (which are discarded when generating floats), making it fail linearity tests. This is unlikely to have any impact in practise.Xoshiro512StarStar: An alternative toXoshiro256StarStarwith more state and the same speed.Xoshiro512Plus: An alternative toXoshiro512Pluswith more state and the same speed. Has a low linear complexity in the lowest bits (which are discarded when generating floats), making it fail linearity tests. This is unlikely to have any impact in practise.SplitMix64: Recommended for initializing generators of the xoshiro familiy from a 64-bit seed. Used for implementingseed_from_u64.
32-bit generators
Xoshiro128StarStar: Recommended for all purposes. Excellent speed.Xoshiro128Plus: Recommended for generating 32-bit floating-point numbers. Faster thanXoshiro128StarStar, but has a low linear complexity in the lowest bits (which are discarded when generating floats), making it fail linearity tests. This is unlikely to have any impact in practise.Xoroshiro64StarStar: An alternative toXoshiro128StarStar, having the same speed but using half the state.Xoroshiro64Star: An alternative toXoshiro128Plus, having the same speed but using half the state. Has a low linear complexity in the lowest bits (which are discarded when generating floats), making it fail linearity tests. This is unlikely to have any impact in practise.
Re-exports
pub use rand_core; |
Structs
| Seed512 | 512-bit seed for a generator. |
| SplitMix64 | A splitmix64 random number generator. |
| Xoroshiro64StarStar | A xoroshiro64** random number generator. |
| Xoroshiro64Star | A xoroshiro64* random number generator. |
| Xoroshiro128Plus | A xoroshiro128+ random number generator. |
| Xoroshiro128StarStar | A xoroshiro128** random number generator. |
| Xoshiro128StarStar | A xoshiro128** random number generator. |
| Xoshiro128Plus | A xoshiro128+ random number generator. |
| Xoshiro256StarStar | A xoshiro256** random number generator. |
| Xoshiro256Plus | A xoshiro256+ random number generator. |
| Xoshiro512StarStar | A xoshiro512** random number generator. |
| Xoshiro512Plus | A xoshiro512+ random number generator. |