#include "RandomLib/Random.hpp"
#include <fstream>
#include <ctime>
#include <sstream>
#include <iomanip>
#include <sys/time.h>
#include <unistd.h>
Go to the source code of this file.
Namespaces | |
| namespace | RandomLib |
Defines | |
| #define | RANDOM_CPP "$Id: Random.cpp 6489 2008-11-10 21:37:47Z ckarney $" |
| #define | MT19937_STEP(I, J, K) |
| #define | MT19937_REVSTEP(I, J, K) |
| #define | SFMT19937_STEP32(I, J) |
| #define | SFMT19937_REVSTEP32(I, J, K, L) |
| #define | SFMT19937_STEP64(I, J) |
| #define | SFMT19937_REVSTEP64(I, J, K, L) |
Functions | |
| RCSID_DECL (RANDOM_CPP) | |
| RCSID_DECL (RANDOMTYPE_HPP) | |
| RCSID_DECL (RANDOMSEED_HPP) | |
| RCSID_DECL (RANDOMENGINE_HPP) | |
| RCSID_DECL (RANDOMMIXER_HPP) | |
| RCSID_DECL (RANDOMALGORITHM_HPP) | |
| RCSID_DECL (RANDOMPOWER2_HPP) | |
| RCSID_DECL (RANDOMCANONICAL_HPP) | |
Written by Charles Karney <charles@karney.com> and licensed under the LGPL. For more information, see http://charles.karney.info/random/
Definition in file Random.cpp.
| #define RANDOM_CPP "$Id: Random.cpp 6489 2008-11-10 21:37:47Z ckarney $" |
Definition at line 82 of file Random.cpp.
| #define MT19937_STEP | ( | I, | |||
| J, | |||||
| K | ) |
Value:
statev[I] = statev[K] ^ \
(statev[J] & engine_type(1) ? magic : engine_type(0)) ^ \
((statev[I] & upper) | (statev[J] & lower)) >> 1
Definition at line 677 of file Random.cpp.
Referenced by RandomLib::MT19937< RandomType >::Transition().
| #define MT19937_REVSTEP | ( | I, | |||
| J, | |||||
| K | ) |
Value:
{ \
engine_type q = statev[J] ^ statev[K], s = q >> (width - 1); \
q = (q ^ (s ? magic : engine_type(0))) << 1 | s; \
statev[I] = (p & upper) | (q & lower); \
p = q; \
}
Definition at line 688 of file Random.cpp.
Referenced by RandomLib::MT19937< RandomType >::Transition().
| #define SFMT19937_STEP32 | ( | I, | |||
| J | ) |
Value:
{ \
internal_type t = statev[I] ^ statev[I] << 8 ^ \
statev[J] >> 11 & magic0 ^ \
(s0 >> 8 | s1 << 24) ^ r0 << 18; \
s0 = r0; r0 = t & mask; \
t = statev[I + 1] ^ \
(statev[I + 1] << 8 | statev[I] >> 24) ^ \
statev[J + 1] >> 11 & magic1 ^ \
(s1 >> 8 | s2 << 24) ^ r1 << 18; \
s1 = r1; r1 = t & mask; \
t = statev[I + 2] ^ \
(statev[I + 2] << 8 | statev[I + 1] >> 24) ^ \
statev[J + 2] >> 11 & magic2 ^ \
(s2 >> 8 | s3 << 24) ^ r2 << 18; \
s2 = r2; r2 = t & mask; \
t = statev[I + 3] ^ \
(statev[I + 3] << 8 | statev[I + 2] >> 24) ^ \
statev[J + 3] >> 11 & magic3 ^ s3 >> 8 ^ r3 << 18; \
s3 = r3; r3 = t & mask; \
statev[I ] = r0; statev[I + 1] = r1; \
statev[I + 2] = r2; statev[I + 3] = r3; \
}
Definition at line 997 of file Random.cpp.
Referenced by RandomLib::SFMT19937< RandomType >::Transition().
| #define SFMT19937_REVSTEP32 | ( | I, | |||
| J, | |||||
| K, | |||||
| L | ) |
Value:
{ \
internal_type \
t0 = (statev[I] ^ statev[J] >> 11 & magic0 ^ \
(statev[K] >> 8 | statev[K + 1] << 24) ^ \
statev[L] << 18) & mask, \
t1 = (statev[I + 1] ^ \
statev[J + 1] >> 11 & magic1 ^ \
(statev[K + 1] >> 8 | statev[K + 2] << 24) ^ \
statev[L + 1] << 18) & mask, \
t2 = (statev[I + 2] ^ \
statev[J + 2] >> 11 & magic2 ^ \
(statev[K + 2] >> 8 | statev[K + 3] << 24) ^ \
statev[L + 2] << 18) & mask, \
t3 = (statev[I + 3] ^ \
statev[J + 3] >> 11 & magic3 ^ \
statev[K + 3] >> 8 ^ \
statev[L + 3] << 18) & mask; \
t3 ^= t1; t2 ^= t0; t3 ^= t2; t2 ^= t1; t1 ^= t0; \
t3 ^= t2 >> 16 | t3 << 16 & mask; \
t2 ^= t1 >> 16 | t2 << 16 & mask; \
t1 ^= t0 >> 16 | t1 << 16 & mask; \
t0 ^= t0 << 16 & mask; \
statev[I ] = t0 ^ t0 << 8 & mask; \
statev[I + 1] = t1 ^ (t0 >> 24 | t1 << 8 & mask); \
statev[I + 2] = t2 ^ (t1 >> 24 | t2 << 8 & mask); \
statev[I + 3] = t3 ^ (t2 >> 24 | t3 << 8 & mask); \
}
Definition at line 1020 of file Random.cpp.
Referenced by RandomLib::SFMT19937< RandomType >::Transition().
| #define SFMT19937_STEP64 | ( | I, | |||
| J | ) |
Value:
{ \
internal_type t = statev[I] ^ statev[I] << 8 ^ \
statev[J] >> 11 & magic0 ^ \
(s0 >> 8 | s1 << 56) ^ r0 << 18 & mask18; \
s0 = r0; r0 = t & mask; \
t = statev[I + 1] ^ \
(statev[I + 1] << 8 | statev[I] >> 56) ^ \
statev[J + 1] >> 11 & magic1 ^ \
s1 >> 8 ^ r1 << 18 & mask18; \
s1 = r1; r1 = t & mask; \
statev[I] = r0; statev[I + 1] = r1; \
}
Definition at line 1080 of file Random.cpp.
Referenced by RandomLib::SFMT19937< RandomType >::Transition().
| #define SFMT19937_REVSTEP64 | ( | I, | |||
| J, | |||||
| K, | |||||
| L | ) |
Value:
{ \
internal_type \
t0 = statev[I] ^ statev[J] >> 11 & magic0 ^ \
(statev[K] >> 8 | statev[K + 1] << 56 & mask) \
^ statev[L] << 18 & mask18, \
t1 = statev[I + 1] ^ statev[J + 1] >> 11 & magic1 ^ \
statev[K + 1] >> 8 ^ statev[L + 1] << 18 & mask18; \
t1 ^= t0; \
t1 ^= t0 >> 32 ^ t1 << 32 & mask; \
t0 ^= t0 << 32 & mask; \
t1 ^= t0 >> 48 ^ t1 << 16 & mask; \
t0 ^= t0 << 16 & mask; \
statev[I ] = t0 ^ t0 << 8 & mask; \
statev[I + 1] = t1 ^ t0 >> 56 ^ t1 << 8 & mask; \
}
Definition at line 1098 of file Random.cpp.
Referenced by RandomLib::SFMT19937< RandomType >::Transition().
| RCSID_DECL | ( | RANDOM_CPP | ) |
| RCSID_DECL | ( | RANDOMTYPE_HPP | ) |
| RCSID_DECL | ( | RANDOMSEED_HPP | ) |
| RCSID_DECL | ( | RANDOMENGINE_HPP | ) |
| RCSID_DECL | ( | RANDOMMIXER_HPP | ) |
| RCSID_DECL | ( | RANDOMALGORITHM_HPP | ) |
| RCSID_DECL | ( | RANDOMPOWER2_HPP | ) |
| RCSID_DECL | ( | RANDOMCANONICAL_HPP | ) |
1.5.6