![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Exact per-class throughput and loss ratio of an MMAP[K]/G/1/K tail-drop queue. More...
#include <cstddef>#include <vector>#include "line/api/mam/map_moment.h"#include "line/api/qsys/qsys_mapg1k.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/linalg.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::qsys::MmapG1kResult< T > |
| Return value of qsys_mmapg1k, mirroring the MATLAB result struct. More... | |
Namespaces | |
| namespace | line |
| namespace | line::qsys |
Functions | |
| template<class T> | |
| MmapG1kResult< T > | line::qsys::qsys_mmapg1k (const Matrix< T > &D0, const std::vector< Matrix< T > > &D1c, const ServiceLaw< T > &svc, std::size_t K, const T &tol, std::size_t nmaxCap) |
| MMAP[K]/G/1/K with tail drop. | |
| template<class T> | |
| MmapG1kResult< T > | line::qsys::qsys_mmapg1k (const Matrix< T > &D0, const std::vector< Matrix< T > > &D1c, const ServiceLaw< T > &svc, std::size_t K) |
| qsys_mmapg1k with the qsys_mapg1k defaults tol = 1e-12, nmax = 200000. | |
Exact per-class throughput and loss ratio of an MMAP[K]/G/1/K tail-drop queue.
Port of matlab/src/api/qsys/qsys_mmapg1k.m.
Two classes of equal arrival rate but different interarrival variability or autocorrelation receive different loss ratios. An aggregate-only finite buffer analysis cannot express that: it returns one blocking probability p and sets T_k = lambda_k (1 - p), making the loss ratio identical across classes BY CONSTRUCTION. What breaks the tie here is the phase resolution of the full-buffer probability. A class-k arrival leaves phase i at rate (D1c_k e)_i, so
lambda_k = pi D1c_k e, L_k = (pKvec D1c_k e)/lambda_k, T_k = lambda_k (1 - L_k),
with pi the stationary phase law of the aggregate MAP and pKvec the joint law of (level = K, phase) that qsys_mapg1k returns. No independence between classes is assumed and no PASTA argument is used.
This is exact whenever the joint MMAP is available, which it is inside a solver that propagates MMAPs between stations. Use qsys_mapg1k_perflow for the setting where the flows are given as separate MAPs and the joint process would cost prod_n M_n phases.
The model assumes a single server and a service law that is iid and independent of class: per-class service would make the departure rate depend on which class holds the server, which this state space does not represent.
ARITHMETIC. Inherits the transcendental gate from qsys_mapg1k; the per-class layer on top is finite exact linear algebra.
Reference: Chydzinski, A. Per-Flow Throughput of a FIFO Buffer. Applied System Innovation 2026, 9, 112.
Definition in file qsys_mmapg1k.h.