ExRandom
3.0
|
Sample u-rands exactly from the unit normal distribution. More...
#include <exrandom/unit_normal_dist.hpp>
Public Member Functions | |
unit_normal_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 normal distribution.
This samples from the unit normal distribution P(x) = exp(− x2/2) / √(2π). This implements Algorithm N with improvements due to Du et al. (2020).
digit_gen | the type of digit generator. |
This class allows a u-rand to be returned via the unit_normal_dist::generate member function or a floating point result via the unit_normal_dist::value<RealType> member function.
See unit_normal_distribution for a simpler interface to sampling normal deviates. (But, you can't obtain u-rands with this class and the constructor locks you into a specific floating point type.)
Definition at line 36 of file unit_normal_dist.hpp.
|
inline |
The constructor.
D | a reference to the digit generator to be used. |
Definition at line 43 of file unit_normal_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 53 of file unit_normal_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 76 of file unit_normal_dist.hpp.
|
inline |
Definition at line 84 of file unit_normal_dist.hpp.
|
static |
The base of the digit generator.
Definition at line 89 of file unit_normal_dist.hpp.