![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Bruell-Balbo-Afshari effective-capacity terms for a MIXED open/closed network with limited load dependence. More...
#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::pfqn::LdmxEcResult< T > |
Namespaces | |
| namespace | line |
| namespace | line::pfqn |
Functions | |
| template<class T> | |
| LdmxEcResult< T > | line::pfqn::pfqn_ldmx_ec (const std::vector< T > &lambda, const Matrix< T > &D, const Matrix< T > &mu) |
| Bruell-Balbo-Afshari effective-capacity terms for a MIXED open/closed network with limited load dependence. | |
Bruell-Balbo-Afshari effective-capacity terms for a MIXED open/closed network with limited load dependence.
Templated port of matlab/src/api/pfqn/pfqn_ldmx_ec.m.
Station i is limited load dependent: its rate lattice mu(i,.) is arbitrary up to the saturation level b_i, the first k with mu(i,k) = mu(i,end), and constant beyond it. Writing C(i,k) = 1/mu(i,k) and Lo_i = sum_r lambda_r D(i,r) for the open load, the E-function
E_i(n) = sum_{n0 >= 0} C(n+n0, n0) Lo_i^{n0} prod_{j=n+1}^{n+n0} C(i,j)
has the closed form E_i(n) = 1/(1 - Lo_i C(i,b_i))^{n+1} once n >= b_i, and below saturation is assembled from three finite pieces E1 + E2 - E3, with E1 the geometric tail, E2 the exact head, and E3 the head of the geometric that E1 double counts. Eprime is the same construction one index up, and the effective capacity is the ratio
EC_i(n) = C(i,n) E_i(n) / E_i(n-1), n = 1, ..., Nt.
Its reciprocal is the load-dependent rate that turns the mixed model into a purely closed one, which is what pfqn_ncldmx and pfqn_mvaldmx consume.
Arithmetic: EXACT-CAPABLE. Every term is a sum, product, quotient or integer power in the field of the inputs; the reference itself uses no transcendental function. The one thing the caller must respect is the stability condition Lo_i C(i,b_i) < 1: at Lo_i C(i,b_i) = 1 the geometric denominator vanishes and the routine throws, and above 1 the sum that E represents diverges even though the closed form still evaluates. That check is exact in rational arithmetic and is not a tolerance.
Definition in file pfqn_ldmx_ec.h.