![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The variate generators of the native LDES engine. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <limits>#include <memory>#include <random>#include <string>#include <vector>#include "line/api/mam/map_sample.h"#include "line/api/mam/me_sample.h"#include "line/solvers/ldes/ldes_ssj_variates.h"#include "line/util/rng_ssj.h"#include "line/lang/lang_types.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::ldes::engine::Rng |
| The engine's randomness, in the SHAPE the Java engine uses it. More... | |
| class | line::ldes::engine::Sampler |
| One variate generator, holding whatever state its family needs. More... | |
Namespaces | |
| namespace | line |
| namespace | line::ldes |
| namespace | line::ldes::engine |
Functions | |
| double | line::ldes::engine::uniform01 (Rng &g) |
| Uniform on (0,1) off the MRG stream; next_double never returns 0. | |
The variate generators of the native LDES engine.
ONE SAMPLER PER (station, class) PAIR, built once and then advanced, which is what Solver_ssj.initializeGenerators does and is not an optimization: a MAP, a RAP and an ME carry a PHASE across successive samples, and rebuilding the generator per variate would restart that phase every time and silently turn a correlated process into a renewal one with the same marginal. The autocorrelation is the reason those processes are in the model at all, so losing it produces a run that looks converged and answers a different question.
WHERE THE PARAMETERS COME FROM, transcribed from createNonMarkovianArrivalGen and firingGenFromMeanScv:
A moment pair that no member of the family can realise is REFUSED by name. A non-negative uniform needs SCV <= 1/3; papering over that with a clamp would run a model with a different variance and report it as the user's.
Definition in file ldes_sampler.h.