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...
class  line::ssa::SsaRng
 The uniform source, MATLAB's rand. More...

Namespaces

namespace  line
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.