32#ifndef __MicroURNG_dot_hpp__
33#define __MicroURNG_dot_hpp__
78template<
typename CBRNG>
87 static int const BITS = 32;
88 typedef typename cbrng_type::ctr_type
ctr_type;
89 typedef typename cbrng_type::key_type
key_type;
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];
148 throw std::runtime_error(
"MicroURNG: c0, does not have high bits clear");
MicroURNG(cbrng_type _b, ctr_type _c0, ukey_type _uk)
static const result_type _Min
ctr_type const & counter() const
static R123_CONSTEXPR result_type max R123_NO_MACRO_SUBST()
static const result_type _Max
ctr_type::value_type result_type
cbrng_type::ctr_type ctr_type
cbrng_type::ukey_type ukey_type
MicroURNG(ctr_type _c0, ukey_type _uk)
R123_STATIC_ASSERT(std::numeric_limits< result_type >::digits >=BITS, "The result_type must have at least 32 bits")
static R123_CONSTEXPR result_type min R123_NO_MACRO_SUBST()
void reset(ctr_type _c0, ukey_type _uk)
cbrng_type::key_type key_type