- Random123-1.09 Documentation

Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes

# r123::MicroURNG< CBRNG > Class Template Reference

`#include <Random123/MicroURNG.hpp>`

List of all members.

## 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
result_type | operator() ()
| MicroURNG (cbrng_type _b, ctr_type _c0, ukey_type _uk)
| MicroURNG (ctr_type _c0, ukey_type _uk)
const ctr_type & | 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 const int | BITS = 32
static const result_type | _Min = 0
static const result_type | _Max = ~((result_type)0)

## Detailed Description

### template<typename CBRNG>
class r123::MicroURNG< CBRNG >

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++0x Uniform Random Number Generator.

The intended purpose is for a MicroURNG to be passed as an argument to a C++0x 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".

           typedef ?someCBRNG? RNG;
           RNG::ctr_type c = ...; // under application control
           RNG::key_type k = ...; //
           std::normal_distribution<float> nd;
           MicroURNG<RNG> urng(c, k);
           for(???){
             ...
             nd(urng);  // may be called several hundred times with BITS=10
             ...
           }

## Member Typedef Documentation

template<typename CBRNG >

typedef CBRNG r123::MicroURNG< CBRNG >::cbrng_type

template<typename CBRNG >

typedef cbrng_type::ctr_type r123::MicroURNG< CBRNG >::ctr_type

template<typename CBRNG >

typedef cbrng_type::key_type r123::MicroURNG< CBRNG >::key_type

template<typename CBRNG >

typedef ctr_type::value_type r123::MicroURNG< CBRNG >::result_type

template<typename CBRNG >

typedef cbrng_type::ukey_type r123::MicroURNG< CBRNG >::ukey_type

## Constructor & Destructor Documentation

template<typename CBRNG >

r123::MicroURNG< CBRNG >::MicroURNG | ( | cbrng_type | _b,
|  | ctr_type | _c0,
|  | ukey_type | _uk |
| ) |  |  | `[inline]`

template<typename CBRNG >

r123::MicroURNG< CBRNG >::MicroURNG | ( | ctr_type | _c0,
|  | ukey_type | _uk |
| ) |  |  | `[inline]`

## Member Function Documentation

template<typename CBRNG >

const ctr_type& r123::MicroURNG< CBRNG >::counter | ( |  | ) | const`[inline]`

template<typename CBRNG >

result_type r123::MicroURNG< CBRNG >::operator() | ( |  | ) | `[inline]`

template<typename CBRNG >

static R123_CONSTEXPR result_type min r123::MicroURNG< CBRNG >::R123_NO_MACRO_SUBST | ( |  | ) | `[inline, static]`

template<typename CBRNG >

static R123_CONSTEXPR result_type max r123::MicroURNG< CBRNG >::R123_NO_MACRO_SUBST | ( |  | ) | `[inline, static]`

template<typename CBRNG >

void r123::MicroURNG< CBRNG >::reset | ( | ctr_type | _c0,
|  | ukey_type | _uk |
| ) |  |  | `[inline]`

## Member Data Documentation

template<typename CBRNG >

const result_type r123::MicroURNG< CBRNG >::_Max = ~((result_type)0)`[static]`

template<typename CBRNG >

const result_type r123::MicroURNG< CBRNG >::_Min = 0`[static]`

template<typename CBRNG >

const int r123::MicroURNG< CBRNG >::BITS = 32`[static]`

The documentation for this class was generated from the following file:

- Random123/MicroURNG.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines