|
CORSIKA
@c8_version@
The framework to simulate particle cascades for astroparticle physics
|
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. More...
#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 |
Static Public Attributes | |
| static const int | 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.