Struct xorshift::xorshift1024::Xorshift1024
[−]
[src]
pub struct Xorshift1024 { /* fields omitted */ }
A random number generator that uses the xorshift1024* algorithm [1].
Description
Quoted from [1].
This is a fast, top-quality generator. If 1024 bits of state are too much, try a xoroshiro128+ generator.
Note that the three lowest bits of this generator are LSFRs, and thus they are slightly less random than the other bits. We suggest to use a sign test to extract a random Boolean value.
The state must be seeded so that it is not everywhere zero. If you have a 64-bit seed, we suggest to seed a splitmix64 generator and use its output to fill s.
[1]: Sebastiano Vigna, xorshift1024*
Parallelism
The RngJump
implementation is equivalent to 2512 calls to next_u64
().
Used to generate 2512 non-overlapping subsequences for parallel
computations.
Trait Implementations
impl Clone for Xorshift1024
[src]
fn clone(&self) -> Xorshift1024
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl Copy for Xorshift1024
[src]
impl Rng for Xorshift1024
[src]
fn next_u32(&mut self) -> u32
Return the next random u32. Read more
fn next_u64(&mut self) -> u64
Return the next random u64. Read more
fn next_f32(&mut self) -> f32
Return the next random f32 selected from the half-open interval [0, 1)
. Read more
fn next_f64(&mut self) -> f64
Return the next random f64 selected from the half-open interval [0, 1)
. Read more
fn fill_bytes(&mut self, dest: &mut [u8])
Fill dest
with random data. Read more
fn gen<T>(&mut self) -> T where
T: Rand,
T: Rand,
Return a random value of a Rand
type. Read more
fn gen_iter<T>(&'a mut self) -> Generator<'a, T, Self> where
T: Rand,
T: Rand,
Return an iterator that will yield an infinite number of randomly generated items. Read more
fn gen_range<T>(&mut self, low: T, high: T) -> T where
T: SampleRange + PartialOrd<T>,
T: SampleRange + PartialOrd<T>,
Generate a random value in the range [low
, high
). Read more
fn gen_weighted_bool(&mut self, n: u32) -> bool
Return a bool with a 1 in n chance of true Read more
fn gen_ascii_chars(&'a mut self) -> AsciiGenerator<'a, Self>
Return an iterator of random characters from the set A-Z,a-z,0-9. Read more
fn choose<T>(&mut self, values: &'a [T]) -> Option<&'a T>
Return a random element from values
. Read more
fn choose_mut<T>(&mut self, values: &'a mut [T]) -> Option<&'a mut T>
Return a mutable pointer to a random element from values
. Read more
fn shuffle<T>(&mut self, values: &mut [T])
Shuffle a mutable slice in place. Read more
impl<'a> SeedableRng<&'a [u64]> for Xorshift1024
[src]
fn reseed(&mut self, seed: &'a [u64])
Reseed an RNG with the given seed. Read more
fn from_seed(seed: &'a [u64]) -> Xorshift1024
Create a new RNG with the given seed. Read more
impl Rand for Xorshift1024
[src]
fn rand<R: Rng>(other: &mut R) -> Xorshift1024
Generates a random instance of this type using the specified source of randomness. Read more