pub struct Hrng { /* private fields */ }Expand description
Hierarchical random number generator.
Produce deterministic random series of numbers with uniform distribution. Handy to be used for paralelism.
Master random number generator produce children and each child might produce more children as much as dataflows in progam.
Implementations§
Source§impl Hrng
impl Hrng
Sourcepub fn master() -> Self
pub fn master() -> Self
Construct master hierarchical random number generator with default seed phrase.
§Example
use deterministic_rand :: { Hrng, Rng };
let hrng = Hrng ::master();
let rng_ref = hrng.rng_ref();
let mut rng = rng_ref.lock().unwrap();
let got: u64 = rng.gen();Sourcepub fn master_with_seed(seed: Seed) -> Self
pub fn master_with_seed(seed: Seed) -> Self
Construct hierarchical random number generator with help of seed phrase.
§Example
use deterministic_rand :: { Hrng, Rng };
let hrng = Hrng ::master_with_seed( "master1".into() );
let rng_ref = hrng.rng_ref();
let mut rng = rng_ref.lock().unwrap();
let got: u64 = rng.gen();Sourcepub fn rng_ref(&self) -> Arc<Mutex<ChaCha8Rng>> ⓘ
pub fn rng_ref(&self) -> Arc<Mutex<ChaCha8Rng>> ⓘ
Get a reference to the current random number generator using a reference counter and mutex.
Returns a shared Arc< Mutex< Generator >>.
§Example
let rng_ref = hrng.rng_ref();
let mut rng = rng_ref.lock().unwrap();
let got: u64 = rng.gen();Sourcepub fn child(&self, index: usize) -> Self
pub fn child(&self, index: usize) -> Self
Creates new child hierarchical random number generator by index seed.
Sourcepub fn _children_len(&self) -> usize
pub fn _children_len(&self) -> usize
Returns number of children created by this generator. Used only for diagnostics.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Hrng
impl RefUnwindSafe for Hrng
impl Send for Hrng
impl Sync for Hrng
impl Unpin for Hrng
impl UnsafeUnpin for Hrng
impl UnwindSafe for Hrng
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