LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
ssa_types.h File Reference

Controls, results and the random source of SolverSSA. More...

#include <cstddef>
#include <cstdint>
#include <limits>
#include <random>
#include <string>
#include <vector>
#include "line/util/matrix.h"
Include dependency graph for ssa_types.h:

Go to the source code of this file.

Classes

struct  line::ssa::SsaOptions
 Controls, defaulting to SolverOptions('SSA') in the reference. More...
struct  line::ssa::SsaSolution
 What the analyzer returns, in the same shape as the MVA and fluid results. More...
struct  line::ssa::SsaCacheRatio
 What the cache write-back of solver_ssa_analyzer_serial.m produces (and the NRM's). More...
class  line::ssa::SsaRng
 The uniform source, MATLAB's rand. More...

Namespaces

namespace  line
 Conservation laws of a layered queueing network, enumerated from its structure.
namespace  line::ssa

Detailed Description

Controls, results and the random source of SolverSSA.

WHICH RANDOM STREAM, AND WHAT THAT COSTS. An SSA answer is a function of the random stream, so a seed-fixed golden belongs to one implementation only. MATLAB draws from rand (its own Mersenne Twister wrapper); the JAR and native Python share an MT19937. This port uses MT19937 too, but it does NOT claim stream compatibility with any of them: the ORDER in which the sample path consumes draws is part of the algorithm, and no two of the four implementations consume in the same order (the JAR, for instance, spends a draw on a single-phase entry-phase pick where this port does not). So a cross-codebase check against this engine is STATISTICAL, never exact – which is what _kb/14-cpp-multiprecision.md records and what the tests assert.

Definition in file ssa_types.h.