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
.