#[repr(C)]pub struct FastRand { /* private fields */ }
Expand description
Fast random number generate.
Implement xorshift64+: 2 32-bit xorshift sequences added together.
Shift triplet [17,7,16]
was calculated as indicated in Marsaglia’s
Xorshift paper: https://www.jstatsoft.org/article/view/v008i14/xorshift.pdf
This generator passes the SmallCrush
suite, part of TestU01
framework:
http://simul.iro.umontreal.ca/testu01/tu01.html
Implementations§
Source§impl FastRand
impl FastRand
Sourcepub fn new(seed: RngSeed) -> FastRand
pub fn new(seed: RngSeed) -> FastRand
Initializes a new, thread-local, fast random number generator.
Sourcepub fn replace_seed(&self, seed: RngSeed) -> RngSeed
pub fn replace_seed(&self, seed: RngSeed) -> RngSeed
Replaces the state of the random number generator with the provided seed, returning the seed that represents the previous state of the random number generator.
The random number generator will become equivalent to one created with the same seed.
pub fn fastrand_n(&self, n: u32) -> u32
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for FastRand
impl !RefUnwindSafe for FastRand
impl Send for FastRand
impl !Sync for FastRand
impl Unpin for FastRand
impl UnwindSafe for FastRand
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more