![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Shared declarations for the maximum-entropy (Kouvatsos) queueing network algorithms. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <vector>#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::me::MeOptions |
| Iteration control, mirroring the MATLAB options struct. More... | |
| struct | line::me::MeResult< T > |
| Mean-value results shared by the open, closed and mixed algorithms. More... | |
Namespaces | |
| namespace | line |
| namespace | line::me |
Shared declarations for the maximum-entropy (Kouvatsos) queueing network algorithms.
Templated port of matlab/src/api/me/, cross-checked against jar/src/main/java/jline/api/nc/Me_oqn.java, Me_cqn.java and Me_mqn.java.
Reference: D.D. Kouvatsos, "Entropy Maximisation and Queueing Network Models", Annals of Operations Research 48:63-126, 1994.
CONVENTIONS
ARITHMETIC Every function in this domain is a damped fixed-point iteration stopped by a relative tolerance, and me_cqn additionally evaluates its Lagrangian coefficient functions through log-gamma and exp. They therefore all carry static_assert(num_traits<T>::has_transcendental) and are instantiated for double and Real50 only. Raising the precision is a legitimate use here: the ME coefficients of (3.8) are products of up to sum(N) factors, and the convolution that normalizes them cancels heavily at high population, which is precisely where the double solution starts to lose its population constraint sum_i L(i,r) = N(r).
Definition in file me_types.h.