32 #ifndef __MicroURNG_dot_hpp__
33 #define __MicroURNG_dot_hpp__
78 template<
typename CBRNG>
87 static const int BITS = 32;
88 typedef typename cbrng_type::ctr_type
ctr_type;
89 typedef typename cbrng_type::key_type
key_type;
93 R123_STATIC_ASSERT( std::numeric_limits<result_type>::digits >=
BITS,
"The result_type must have at least 32 bits" );
98 const size_t W = std::numeric_limits<result_type>::digits;
100 c[c0.size()-1] |= n<<(W-
BITS);
103 last_elem = rdata.size();
105 return rdata[--last_elem];
142 throw std::runtime_error(
"MicroURNG: c0, does not have high bits clear");
MicroURNG(cbrng_type _b, ctr_type _c0, ukey_type _uk)
Definition: MicroURNG.hpp:107
cbrng_type::ukey_type ukey_type
Definition: MicroURNG.hpp:90
static const result_type _Min
Definition: MicroURNG.hpp:116
ctr_type::value_type result_type
Definition: MicroURNG.hpp:91
static const result_type _Max
Definition: MicroURNG.hpp:117
Definition: MicroURNG.hpp:79
static R123_CONSTEXPR result_type min R123_NO_MACRO_SUBST()
Definition: MicroURNG.hpp:119
cbrng_type::key_type key_type
Definition: MicroURNG.hpp:89
static const int BITS
Definition: MicroURNG.hpp:87
cbrng_type::ctr_type ctr_type
Definition: MicroURNG.hpp:88
const ctr_type & counter() const
Definition: MicroURNG.hpp:122
CBRNG cbrng_type
Definition: MicroURNG.hpp:86
result_type operator()()
Definition: MicroURNG.hpp:95
void reset(ctr_type _c0, ukey_type _uk)
Definition: MicroURNG.hpp:123
static R123_CONSTEXPR result_type max R123_NO_MACRO_SUBST()
Definition: MicroURNG.hpp:120
MicroURNG(ctr_type _c0, ukey_type _uk)
Definition: MicroURNG.hpp:110