[−][src]Struct rand_pcg::Mcg128Xsl64
A PCG random number generator (XSL 128/64 (MCG) variant).
Permuted Congruential Generator with 128-bit state, internal Multiplicative Congruential Generator, and 64-bit output via "xorshift low (bits), random rotation" output function.
This is a 128-bit MCG with the PCG-XSL-RR output function, also known as
pcg64_fast
.
Note that compared to the standard pcg64
(128-bit LCG with PCG-XSL-RR
output function), this RNG is faster, also has a long cycle, and still has
good performance on statistical tests.
Implementations
impl Mcg128Xsl64
[src]
pub fn new(state: u128) -> Self
[src]
Construct an instance compatible with PCG seed.
Note that PCG specifies a default value for the parameter:
state = 0xcafef00dd15ea5e5
Trait Implementations
impl Clone for Mcg128Xsl64
[src]
fn clone(&self) -> Mcg128Xsl64
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for Mcg128Xsl64
[src]
impl RngCore for Mcg128Xsl64
[src]
fn next_u32(&mut self) -> u32
[src]
fn next_u64(&mut self) -> u64
[src]
fn fill_bytes(&mut self, dest: &mut [u8])
[src]
fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>
[src]
impl SeedableRng for Mcg128Xsl64
[src]
We use a single 126-bit seed to initialise the state and select a stream.
Two seed
bits (lowest order of last byte) are ignored.
type Seed = [u8; 16]
Seed type, which is restricted to types mutably-dereferencable as u8
arrays (we recommend [u8; N]
for some N
). Read more
fn from_seed(seed: Self::Seed) -> Self
[src]
fn seed_from_u64(state: u64) -> Self
[src]
fn from_rng<R>(rng: R) -> Result<Self, Error> where
R: RngCore,
[src]
R: RngCore,
fn from_entropy() -> Self
[src]
Auto Trait Implementations
impl RefUnwindSafe for Mcg128Xsl64
impl Send for Mcg128Xsl64
impl Sync for Mcg128Xsl64
impl Unpin for Mcg128Xsl64
impl UnwindSafe for Mcg128Xsl64
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,