pub struct RNG { /* private fields */ }
Expand description
Random Number Generator
Random number generator. It encapsulates the state (currently, a 64-bit
integer) and has methods to return scalar random values and to fill
arrays with random values. Currently it supports uniform and Gaussian
(normal) distributions. The generator uses Multiply-With-Carry
algorithm, introduced by G. Marsaglia (
http://en.wikipedia.org/wiki/Multiply-with-carry ).
Gaussian-distribution random numbers are generated using the Ziggurat
algorithm ( http://en.wikipedia.org/wiki/Ziggurat_algorithm ),
introduced by G. Marsaglia and W. W. Tsang.
constructor
These are the RNG constructors. The first form sets the state to some
pre-defined value, equal to 2**32-1 in the current implementation. The
second form sets the state to the specified value. If you passed state=0
, the constructor uses the above default value instead to avoid the
singular random number sequence, consisting of all zeros.
constructor
These are the RNG constructors. The first form sets the state to some
pre-defined value, equal to 2**32-1 in the current implementation. The
second form sets the state to the specified value. If you passed state=0
, the constructor uses the above default value instead to avoid the
singular random number sequence, consisting of all zeros.
- state: 64-bit value used to initialize the RNG.
Return an the underlying raw pointer while consuming this wrapper.
Read more
Return the underlying mutable raw pointer
Read more
Executes the destructor for this type.
Read more
The method updates the state using the MWC algorithm and returns the
next 32-bit random number.
Each of the methods updates the state using the MWC algorithm and
returns the next random number of the specified type. In case of integer
types, the returned number is from the available value range for the
specified type. In case of floating-point types, the returned value is
from [0,1) range.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
returns a random integer sampled uniformly from [0, N).
Read more
returns a random integer sampled uniformly from [0, N).
Read more
returns uniformly distributed integer random number from [a,b) range
Read more
returns uniformly distributed integer random number from [a,b) range
Read more
returns uniformly distributed integer random number from [a,b) range
Read more
Returns the next random number sampled from the Gaussian distribution
Read more
Immutably borrows from an owned value.
Read more
Mutably borrows from an owned value.
Read more
Returns the argument unchanged.
Calls U::from(self)
.
That is, this conversion is whatever the implementation of
From<T> for U
chooses to do.
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.