ExRandom
3.0
|
Sample u-rands exactly from the unit exponential distribution. More...
#include <exrandom/unit_exponential_dist.hpp>
Public Member Functions | |
unit_exponential_dist (digit_gen &D) | |
template<typename Generator > | |
void | generate (Generator &g, u_rand< digit_gen > &x) |
template<typename RealType , typename Generator > | |
RealType | value (Generator &g) |
digit_gen & | digit_generator () const |
Static Public Attributes | |
static const uint_t | base |
Sample u-rands exactly from the unit exponential distribution.
This samples from the unit exponential distribution P(x) = exp(−x) for x > 0. This implements Algorithms E and V.
digit_gen | the type of digit generator. |
bit_optimized | if true use Algorithm E, else use Algorithm V. |
This class allows a u-rand to be returned via the unit_exponential_dist::generate member function or a floating point result via the unit_exponential_dist::value<RealType> member function.
See unit_exponential_distribution for a simpler interface to sampling exponential deviates. (But, you can't obtain u-rands with this class and the constructor locks you into a specific floating point type.)
If bit_optimized is true, digit_gen::base must be even.
Definition at line 43 of file unit_exponential_dist.hpp.
|
inline |
The constructor.
D | a reference to the digit generator to be used. |
Definition at line 50 of file unit_exponential_dist.hpp.
|
inline |
Generate the next deviate as a u_rand.
Generator | the type of g. |
g | the random generator engine. | |
[out] | x | the u_rand to set. |
Definition at line 60 of file unit_exponential_dist.hpp.
|
inline |
Generate the next deviate and round it to a floating point number.
RealType | the floating point type of the result. |
Generator | the type of g. |
g | the random generator engine. |
Definition at line 83 of file unit_exponential_dist.hpp.
|
inline |
Definition at line 91 of file unit_exponential_dist.hpp.
|
static |
The base of the digit generator.
Definition at line 96 of file unit_exponential_dist.hpp.