![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Exact PH/M/c by Neuts' matrix-geometric method. More...
#include <cstddef>#include <vector>#include "line/api/qsys/qsys_types.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/linalg.h"#include "line/util/lu.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::qsys::PhMcResult< T > |
Namespaces | |
| namespace | line |
| namespace | line::qsys |
Functions | |
| template<class T> | |
| PhMcResult< T > | line::qsys::qsys_phmc (const std::vector< T > &alpha, const Matrix< T > &Tm, const T &mu, unsigned c, unsigned maxIter, const T &tol) |
| Exact PH/M/c by Neuts' matrix-geometric method. | |
| template<class T> | |
| PhMcResult< T > | line::qsys::qsys_phmc (const std::vector< T > &alpha, const Matrix< T > &Tm, const T &mu, unsigned c) |
| qsys_phmc with the MATLAB defaults, 50000 iterations and tolerance 1e-14. | |
Exact PH/M/c by Neuts' matrix-geometric method.
Templated port of matlab/src/api/qsys/qsys_phmc.m, cross-checked against jar/src/main/java/jline/api/qsys/Qsys_phmc.java.
The level is the number in system and the phase is the arrival PH phase. Above level c the QBD is level independent with
A0 = (-T e) alpha, A1 = T - c mu I, A2 = c mu I,
and pi_n = pi_c R^(n-c) for n >= c, R the minimal solution of R^2 A2 + R A1 + A0 = 0 reached by the fixed point R <- -A0 (A1 + R A2)^-1. The boundary vectors pi_0..pi_c come from the level balance equations with the last one replaced by the normalization
sum_{n<c} pi_n e + pi_c (I-R)^-1 e = 1,
after which Lq = pi_c R (I-R)^-2 e and L = sum_{n<c} n pi_n e + pi_c (c (I-R)^-1 + R (I-R)^-2) e.
ARITHMETIC. R is a fixed point driven to a tolerance and never terminates in a finite number of field operations, so the function is gated on transcendental arithmetic, for the same reason qbd_R is (see qbd_r.h).
At k = 1 with T = [-lambda] the arrival process is Poisson and every metric must collapse onto M/M/c, which is the check the tests apply.
Definition in file qsys_phmc.h.