1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//! # Universal RNG
//!
//! A collection of random number generators.
//!
//! This crate provides implementations of various pseudo-random number generators (PRNGs),
//! including:
//!
//! * **Mersenne Twister**: [`rng32::Mt19937`] (32-bit), [`rng64::Mt1993764`] (64-bit).
//! * **SIMD-oriented Fast Mersenne Twister**: [`rng32::Sfmt19937`] (32-bit), [`rng64::Sfmt1993764`] (64-bit).
//! * **Permuted Congruential Generator**: [`rng32::Pcg32`] (32-bit output).
//! * **Philox**: [`rng32::Philox32x4`] (4x32-bit), [`rng64::Philox64`] (2x64-bit).
//! * **Twisted Generalized Feedback Shift Register**: [`rng64::TwistedGFSR`] (64-bit).
//! * **Small Fast Chaotic**: [`rng64::Sfc64`] (64-bit).
//! * **Threefry**: [`rng32::Threefry32x4`] (4x32-bit), [`rng32::Threefry32x2`] (2x32-bit).
//! * **Threefish**: [`rng64::Threefish256`] (256-bit block cipher PRNG).
//! * **Xorshift**: [`rng32::Xorshift32`] (32-bit), [`rng64::Xorshift64`] (64-bit), [`rng128::Xorshift128`] (128-bit state).
//! * **Xorwow**: [`rng32::Xorwow`] (32-bit).
//! * **Xoshiro** (32-bit): [`rng32::Xoshiro128Pp`], [`rng32::Xoshiro128Ss`].
//! * **Xoshiro** (64-bit): [`rng64::Xoshiro256Pp`], [`rng64::Xoshiro256Ss`].
//! * **Xoroshiro**: [`rng64::xoroshiro::Xoroshiro128Pp`], [`rng64::xoroshiro::Xoroshiro128Ss`] (64-bit).
//! * **Linear Congruential Generator**: [`rng32::Lcg32`] (32-bit), [`rng64::Lcg64`] (64-bit).
//! * **Cet**: [`rng64::Cet64`] (64-bit), [`rng64::Cet256`] (256-bit state).
//! * **SplitMix**: [`rng32::SplitMix32`] (32-bit), [`rng64::SplitMix64`] (64-bit).
//! * **Jenkins Small Fast**: [`rng32::Jsf32`] (32-bit).
//!
//! Each generator supports generating uniform random numbers for various types (u32, u64, f32, f64)
//! and ranges.
/// A 32/64-bit random number generator trait.
/// Consolidated 32-bit random number generators.
/// Consolidated 64-bit random number generators.
pub
/// Wide SIMD-accelerated random number generators (e.g., `Sfmt19937x8`).
pub
/// Weighted random selection traits (`Sampler32`, `Sampler64`).
/// Weighted random selection for 32-bit RNGs (`Bst32`, `Alias32`).
/// Weighted random selection for 64-bit RNGs (`Bst64`, `Alias64`).