pub(crate) struct FastRand {
one: u32,
two: u32,
}
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
Fields§
§one: u32
§two: u32
Implementations§
source§impl FastRand
impl FastRand
sourcepub(crate) fn replace_seed(&mut self, seed: RngSeed) -> RngSeed
pub(crate) fn replace_seed(&mut 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.
source§impl FastRand
impl FastRand
sourcepub(crate) fn new() -> FastRand
pub(crate) fn new() -> FastRand
Initialize a new fast random number generator using the default source of entropy.
sourcepub(crate) fn from_seed(seed: RngSeed) -> FastRand
pub(crate) fn from_seed(seed: RngSeed) -> FastRand
Initializes a new, thread-local, fast random number generator.
pub(crate) fn fastrand_n(&mut self, n: u32) -> u32
fn fastrand(&mut self) -> 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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)