pub struct RNG { /* private fields */ }Expand description
RNG is a random number generator.
Implementations§
Source§impl RNG
impl RNG
Sourcepub fn i32s(&self, count: u32) -> (Vec<i32>, Self)
pub fn i32s(&self, count: u32) -> (Vec<i32>, Self)
i32s generates a vector of i32 with pre-allocated capacity.
This method automatically selects the most efficient implementation based on the size:
- For small sizes (< 50,000), it uses a direct StdRng implementation
- For large sizes (>= 50,000), it uses parallel processing
Sourcepub fn i32s_direct(&self, count: u32) -> (Vec<i32>, Self)
pub fn i32s_direct(&self, count: u32) -> (Vec<i32>, Self)
i32s_direct generates a vector of i32 using direct StdRng access.
Sourcepub fn i32s_parallel(&self, count: u32) -> (Vec<i32>, Self)
pub fn i32s_parallel(&self, count: u32) -> (Vec<i32>, Self)
i32s_parallel generates a vector of i32 using parallel processing.
Sourcepub fn unit<A>(a: A) -> Box<dyn FnMut(RNG) -> (A, RNG)>where
A: Clone + 'static,
pub fn unit<A>(a: A) -> Box<dyn FnMut(RNG) -> (A, RNG)>where
A: Clone + 'static,
unit generates a function that returns a tuple of A and RNG.
Sourcepub fn sequence<A, F>(fs: Vec<F>) -> Box<dyn FnMut(RNG) -> (Vec<A>, RNG)>
pub fn sequence<A, F>(fs: Vec<F>) -> Box<dyn FnMut(RNG) -> (Vec<A>, RNG)>
sequence generates a function that returns a tuple of Vec<A> and RNG,
pre-allocating capacity based on the number of functions.
Sourcepub fn int_value() -> Box<dyn FnMut(RNG) -> (i32, RNG)>
pub fn int_value() -> Box<dyn FnMut(RNG) -> (i32, RNG)>
int_value generates a function that returns a tuple of i32 and RNG.
Sourcepub fn double_value() -> Box<dyn FnMut(RNG) -> (f32, RNG)>
pub fn double_value() -> Box<dyn FnMut(RNG) -> (f32, RNG)>
double_value generates a function that returns a tuple of f32 and RNG.
Sourcepub fn map<A, B, F1, F2>(s: F1, f: F2) -> Box<dyn FnMut(RNG) -> (B, RNG)>
pub fn map<A, B, F1, F2>(s: F1, f: F2) -> Box<dyn FnMut(RNG) -> (B, RNG)>
map generates a function that returns a tuple of B and RNG.
Sourcepub fn map2<F1, F2, F3, A, B, C>(
ra: F1,
rb: F2,
f: F3,
) -> Box<dyn FnMut(RNG) -> (C, RNG)>
pub fn map2<F1, F2, F3, A, B, C>( ra: F1, rb: F2, f: F3, ) -> Box<dyn FnMut(RNG) -> (C, RNG)>
map2 generates a function that returns a tuple of C and RNG.
Sourcepub fn both<F1, F2, A, B>(
ra: F1,
rb: F2,
) -> Box<dyn FnMut(RNG) -> ((A, B), RNG)>
pub fn both<F1, F2, A, B>( ra: F1, rb: F2, ) -> Box<dyn FnMut(RNG) -> ((A, B), RNG)>
both generates a function that returns a tuple of (A, B) and RNG.
Sourcepub fn rand_int_double() -> Box<dyn FnMut(RNG) -> ((i32, f32), RNG)>
pub fn rand_int_double() -> Box<dyn FnMut(RNG) -> ((i32, f32), RNG)>
rand_int_double generates a function that returns a tuple of (i32, f32) and RNG.