Struct xorshift::xorshift128::Xorshift128 [] [src]

pub struct Xorshift128(_);

A random number generator that uses the xorshift128+ algorithm [1].

Description

Quoted from [1].

This generator has been replaced by xoroshiro128plus, which is significantly faster and has better statistical properties.

It might be nonetheless useful for languages in which low-level rotate instructions are not available. Due to the relatively short period it is acceptable only for applications with a mild amount of parallelism; otherwise, use a xorshift1024* generator.

Note that the lowest bit of this generator is an LSFR, and thus it is 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, xorshift128+

Parallelism

The RngJump implementation is equivalent to 264 calls to next_u64(). Used to generate 264 non-overlapping subsequences for parallel computations.

Trait Implementations

impl Copy for Xorshift128
[src]

impl Clone for Xorshift128
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Rng for Xorshift128
[src]

Return the next random u32. Read more

Return the next random u64. Read more

Return the next random f32 selected from the half-open interval [0, 1). Read more

Return the next random f64 selected from the half-open interval [0, 1). Read more

Fill dest with random data. Read more

Return a random value of a Rand type. Read more

Return an iterator that will yield an infinite number of randomly generated items. Read more

Generate a random value in the range [low, high). Read more

Return a bool with a 1 in n chance of true Read more

Return an iterator of random characters from the set A-Z,a-z,0-9. Read more

Return a random element from values. Read more

Return a mutable pointer to a random element from values. Read more

Shuffle a mutable slice in place. Read more

impl<'a> SeedableRng<&'a [u64]> for Xorshift128
[src]

Reseed an RNG with the given seed. Read more

Create a new RNG with the given seed. Read more

impl Rand for Xorshift128
[src]

Generates a random instance of this type using the specified source of randomness. Read more

impl RngJump for Xorshift128
[src]

Forward the state of the random number generator. Read more