Class RngStream and MRG32k3a implementation. More...
#include <cstdlib>#include <iostream>#include "rng-stream.h"#include "fatal-error.h"#include "log.h"
 Include dependency graph for rng-stream.cc:Go to the source code of this file.
Classes | |
| struct | anonymous_namespace{rng-stream.cc}::Precalculated | 
| The transition matrices of the two MRG components (in matrix form), raised to all powers of 2 from 1 to 191.  More... | |
Namespaces | |
| anonymous_namespace{rng-stream.cc} | |
| Unnamed namespace for MRG32k3a implementation details.  | |
| ns3 | |
| Every class exported by the ns3 library is enclosed in the ns3 namespace.  | |
Typedefs | |
| typedef double | anonymous_namespace{rng-stream.cc}::Matrix[3][3] | 
| Type for 3x3 matrix of doubles.  More... | |
Functions | |
| void | anonymous_namespace{rng-stream.cc}::MatMatModM (const Matrix A, const Matrix B, Matrix C, double m) | 
| Compute the matrix C = A*B MOD m.  More... | |
| void | anonymous_namespace{rng-stream.cc}::MatTwoPowModM (const Matrix src, Matrix dst, double m, int32_t e) | 
| Compute the matrix B = (A^(2^e) Mod m); works also if A = B.  More... | |
| void | anonymous_namespace{rng-stream.cc}::MatVecModM (const Matrix A, const double s[3], double v[3], double m) | 
| Compute the vector v = A*s MOD m.  More... | |
| double | anonymous_namespace{rng-stream.cc}::MultModM (double a, double s, double c, double m) | 
| Return (a*s + c) MOD m; a, s, c and m must be < 2^35.  More... | |
| struct Precalculated | anonymous_namespace{rng-stream.cc}::PowerOfTwoConstants (void) | 
| Compute the transition matrices of the two MRG components.  More... | |
| void | anonymous_namespace{rng-stream.cc}::PowerOfTwoMatrix (int n, Matrix a1p, Matrix a2p) | 
| Get the transition matrices raised to a power of 2.  More... | |
Variables | |
| const double | anonymous_namespace{rng-stream.cc}::a12 = 1403580.0 | 
| First component multiplier of n - 2 value.  More... | |
| const double | anonymous_namespace{rng-stream.cc}::a13n = 810728.0 | 
| First component multiplier of n - 3 value.  More... | |
| const Matrix | anonymous_namespace{rng-stream.cc}::A1p0 | 
| First component transition matrix.  More... | |
| const double | anonymous_namespace{rng-stream.cc}::a21 = 527612.0 | 
| Second component multiplier of n - 1 value.  More... | |
| const double | anonymous_namespace{rng-stream.cc}::a23n = 1370589.0 | 
| Second component multiplier of n - 3 value.  More... | |
| const Matrix | anonymous_namespace{rng-stream.cc}::A2p0 | 
| Second component transition matrix.  More... | |
| const double | anonymous_namespace{rng-stream.cc}::m1 = 4294967087.0 | 
| First component modulus, 232 - 209.  More... | |
| const double | anonymous_namespace{rng-stream.cc}::m2 = 4294944443.0 | 
| Second component modulus, 232 - 22853.  More... | |
| const double | anonymous_namespace{rng-stream.cc}::norm = 1.0 / (m1 + 1.0) | 
| Normalization to obtain randoms on [0,1).  More... | |
| const double | anonymous_namespace{rng-stream.cc}::two17 = 131072.0 | 
| Decomposition factor for computing a*s in less than 53 bits, 217  More... | |
| const double | anonymous_namespace{rng-stream.cc}::two53 = 9007199254740992.0 | 
| IEEE-754 floating point precision, 253  More... | |
Class RngStream and MRG32k3a implementation.
Definition in file rng-stream.cc.