Project Alice
|
#include <MicroURNG.hpp>
Public Types | |
typedef CBRNG | cbrng_type |
typedef cbrng_type::ctr_type | ctr_type |
typedef cbrng_type::key_type | key_type |
typedef cbrng_type::ukey_type | ukey_type |
typedef ctr_type::value_type | result_type |
Public Member Functions | |
R123_STATIC_ASSERT (std::numeric_limits< result_type >::digits >=BITS, "The result_type must have at least 32 bits") | |
result_type | operator() () |
MicroURNG (cbrng_type _b, ctr_type _c0, ukey_type _uk) | |
MicroURNG (ctr_type _c0, ukey_type _uk) | |
ctr_type const & | counter () const |
void | reset (ctr_type _c0, ukey_type _uk) |
Static Public Member Functions | |
static R123_CONSTEXPR result_type min | R123_NO_MACRO_SUBST () |
static R123_CONSTEXPR result_type max | R123_NO_MACRO_SUBST () |
Static Public Attributes | |
static int const | BITS = 32 |
static const result_type | _Min = 0 |
static const result_type | _Max = ~((result_type)0) |
Given a CBRNG whose ctr_type has an unsigned integral value_type, MicroURNG<CBRNG>(c, k) is a type that satisfies the requirements of a C++11 Uniform Random Number Generator. The intended purpose is for a MicroURNG to be passed as an argument to a C++11 Distribution, e.g., std::normal_distribution. See examples/MicroURNG.cpp. The MicroURNG functor has a period of "only" ctr_type.size()*2^32, after which it will silently repeat. The high 32 bits of the highest word in the counter c, passed to the constructor must be zero. MicroURNG uses these bits to "count". Older versions of the library permitted a second template parameter by which the caller could control the number of bits devoted to the URNG's internal counter. This flexibility has been disabled because URNGs created with different numbers of counter bits could, conceivably "collide".
Definition at line 79 of file MicroURNG.hpp.
typedef CBRNG r123::MicroURNG< CBRNG >::cbrng_type |
Definition at line 86 of file MicroURNG.hpp.
typedef cbrng_type::ctr_type r123::MicroURNG< CBRNG >::ctr_type |
Definition at line 88 of file MicroURNG.hpp.
typedef cbrng_type::key_type r123::MicroURNG< CBRNG >::key_type |
Definition at line 89 of file MicroURNG.hpp.
typedef ctr_type::value_type r123::MicroURNG< CBRNG >::result_type |
Definition at line 91 of file MicroURNG.hpp.
typedef cbrng_type::ukey_type r123::MicroURNG< CBRNG >::ukey_type |
Definition at line 90 of file MicroURNG.hpp.
|
inline |
Definition at line 107 of file MicroURNG.hpp.
|
inline |
Definition at line 110 of file MicroURNG.hpp.
|
inline |
Definition at line 126 of file MicroURNG.hpp.
|
inline |
Definition at line 95 of file MicroURNG.hpp.
|
inlinestatic |
Definition at line 119 of file MicroURNG.hpp.
|
inlinestatic |
Definition at line 122 of file MicroURNG.hpp.
r123::MicroURNG< CBRNG >::R123_STATIC_ASSERT | ( | std::numeric_limits< result_type >::digits >= | BITS, |
"The result_type must have at least 32 bits" | |||
) |
|
inline |
Definition at line 129 of file MicroURNG.hpp.
|
static |
Definition at line 117 of file MicroURNG.hpp.
|
static |
Definition at line 116 of file MicroURNG.hpp.
|
static |
Definition at line 87 of file MicroURNG.hpp.