Struct pcg_rand::PcgEngine
[−]
[src]
pub struct PcgEngine<Itype, Xtype, StreamMix: Stream<Itype>, MulMix: Multiplier<Itype>, OutMix: OutputMixin<Itype, Xtype>> { /* fields omitted */ }
A generic PCG structure.
This structure allows the building of many types of PCG generators by using various Mixins for both the stream, multiplier, and permutation function.
Methods
impl<Itype, Xtype, StreamMix, MulMix, OutMix> PcgEngine<Itype, Xtype, StreamMix, MulMix, OutMix> where
Itype: Zero,
StreamMix: Stream<Itype>,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, Xtype>,
[src]
Itype: Zero,
StreamMix: Stream<Itype>,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, Xtype>,
fn new_unseeded() -> Self
[src]
Trait Implementations
impl<Itype, StreamMix, MulMix, OutMix> Rng for PcgEngine<Itype, u32, StreamMix, MulMix, OutMix> where
Itype: PcgOps + Clone,
StreamMix: Stream<Itype>,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, u32>,
[src]
Itype: PcgOps + Clone,
StreamMix: Stream<Itype>,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, u32>,
fn next_u32(&mut self) -> u32
[src]
Return the next random u32. Read more
fn next_u64(&mut self) -> u64
[src]
Return the next random u64. Read more
fn next_f32(&mut self) -> f32
[src]
Return the next random f32 selected from the half-open interval [0, 1)
. Read more
fn next_f64(&mut self) -> f64
[src]
Return the next random f64 selected from the half-open interval [0, 1)
. Read more
fn fill_bytes(&mut self, dest: &mut [u8])
[src]
Fill dest
with random data. Read more
fn gen<T>(&mut self) -> T where
T: Rand,
[src]
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,
[src]
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>,
[src]
T: SampleRange + PartialOrd<T>,
Generate a random value in the range [low
, high
). Read more
fn gen_weighted_bool(&mut self, n: u32) -> bool
[src]
Return a bool with a 1 in n chance of true Read more
fn gen_ascii_chars(&'a mut self) -> AsciiGenerator<'a, Self>
[src]
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>
[src]
Return a random element from values
. Read more
fn choose_mut<T>(&mut self, values: &'a mut [T]) -> Option<&'a mut T>
[src]
Return a mutable pointer to a random element from values
. Read more
fn shuffle<T>(&mut self, values: &mut [T])
[src]
Shuffle a mutable slice in place. Read more
impl<Itype, StreamMix, MulMix, OutMix> Rng for PcgEngine<Itype, u64, StreamMix, MulMix, OutMix> where
Itype: PcgOps + Clone,
StreamMix: Stream<Itype>,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, u64>,
[src]
Itype: PcgOps + Clone,
StreamMix: Stream<Itype>,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, u64>,
fn next_u32(&mut self) -> u32
[src]
Return the next random u32. Read more
fn next_u64(&mut self) -> u64
[src]
Return the next random u64. Read more
fn next_f32(&mut self) -> f32
[src]
Return the next random f32 selected from the half-open interval [0, 1)
. Read more
fn next_f64(&mut self) -> f64
[src]
Return the next random f64 selected from the half-open interval [0, 1)
. Read more
fn fill_bytes(&mut self, dest: &mut [u8])
[src]
Fill dest
with random data. Read more
fn gen<T>(&mut self) -> T where
T: Rand,
[src]
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,
[src]
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>,
[src]
T: SampleRange + PartialOrd<T>,
Generate a random value in the range [low
, high
). Read more
fn gen_weighted_bool(&mut self, n: u32) -> bool
[src]
Return a bool with a 1 in n chance of true Read more
fn gen_ascii_chars(&'a mut self) -> AsciiGenerator<'a, Self>
[src]
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>
[src]
Return a random element from values
. Read more
fn choose_mut<T>(&mut self, values: &'a mut [T]) -> Option<&'a mut T>
[src]
Return a mutable pointer to a random element from values
. Read more
fn shuffle<T>(&mut self, values: &mut [T])
[src]
Shuffle a mutable slice in place. Read more
impl<Itype, Xtype, StreamMix, MulMix, OutMix> Rand for PcgEngine<Itype, Xtype, StreamMix, MulMix, OutMix> where
Itype: Rand,
StreamMix: Stream<Itype> + Rand,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, Xtype>,
[src]
Itype: Rand,
StreamMix: Stream<Itype> + Rand,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, Xtype>,
fn rand<R: Rng>(rng: &mut R) -> Self
[src]
Generates a random instance of this type using the specified source of randomness. Read more
impl<Itype, Xtype, StreamMix, MulMix, OutMix> SeedableRng<Itype> for PcgEngine<Itype, Xtype, StreamMix, MulMix, OutMix> where
StreamMix: Stream<Itype>,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, Xtype>,
PcgEngine<Itype, Xtype, StreamMix, MulMix, OutMix>: Rng,
[src]
StreamMix: Stream<Itype>,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, Xtype>,
PcgEngine<Itype, Xtype, StreamMix, MulMix, OutMix>: Rng,
fn reseed(&mut self, seed: Itype)
[src]
Reseed an RNG with the given seed. Read more
fn from_seed(seed: Itype) -> Self
[src]
Create a new RNG with the given seed. Read more
impl<Itype, Xtype, MulMix, OutMix> SeedableRng<[Itype; 2]> for PcgEngine<Itype, Xtype, SpecificSeqStream<Itype>, MulMix, OutMix> where
Itype: Clone,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, Xtype>,
SpecificSeqStream<Itype>: Stream<Itype>,
PcgEngine<Itype, Xtype, SpecificSeqStream<Itype>, MulMix, OutMix>: Rng,
[src]
Itype: Clone,
MulMix: Multiplier<Itype>,
OutMix: OutputMixin<Itype, Xtype>,
SpecificSeqStream<Itype>: Stream<Itype>,
PcgEngine<Itype, Xtype, SpecificSeqStream<Itype>, MulMix, OutMix>: Rng,
fn reseed(&mut self, seed: [Itype; 2])
[src]
Reseed an RNG with the given seed. Read more
fn from_seed(seed: [Itype; 2]) -> Self
[src]
Create a new RNG with the given seed. Read more
impl<Xtype, StreamMix, MulMix, OutMix> SeedableRng<[u64; 2]> for PcgEngine<u128, Xtype, StreamMix, MulMix, OutMix> where
StreamMix: Stream<u128>,
MulMix: Multiplier<u128>,
OutMix: OutputMixin<u128, Xtype>,
PcgEngine<u128, Xtype, StreamMix, MulMix, OutMix>: Rng,
[src]
StreamMix: Stream<u128>,
MulMix: Multiplier<u128>,
OutMix: OutputMixin<u128, Xtype>,
PcgEngine<u128, Xtype, StreamMix, MulMix, OutMix>: Rng,
fn reseed(&mut self, seed: [u64; 2])
[src]
Reseed an RNG with the given seed. Read more
fn from_seed(seed: [u64; 2]) -> Self
[src]
Create a new RNG with the given seed. Read more
impl<Xtype, MulMix, OutMix> SeedableRng<[u64; 4]> for PcgEngine<u128, Xtype, SpecificSeqStream<u128>, MulMix, OutMix> where
MulMix: Multiplier<u128>,
OutMix: OutputMixin<u128, Xtype>,
PcgEngine<u128, Xtype, SpecificSeqStream<u128>, MulMix, OutMix>: Rng,
[src]
MulMix: Multiplier<u128>,
OutMix: OutputMixin<u128, Xtype>,
PcgEngine<u128, Xtype, SpecificSeqStream<u128>, MulMix, OutMix>: Rng,