![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The common corrected asymptotic expansion (LE-KT), computed on the cheaper side. More...
#include <cmath>#include <cstddef>#include <string>#include <vector>#include "line/api/pfqn/pfqn_asympt_common.h"#include "line/api/pfqn/pfqn_bkt.h"#include "line/api/pfqn/pfqn_ble.h"#include "line/lang/lang_types.h"#include "line/num/number.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::pfqn::LektResult< T > |
| Return value of pfqn_lekt, mirroring [Gn, lGn, route]. More... | |
Namespaces | |
| namespace | line |
| namespace | line::pfqn |
Functions | |
| template<class T> | |
| std::string | line::pfqn::pfqn_lekt_route (const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z) |
| "kt" when R <= M or a class self-loops, "le" otherwise. | |
| template<class T> | |
| LektResult< T > | line::pfqn::pfqn_lekt (const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z) |
| The common corrected asymptotic expansion (LE-KT), computed on the cheaper side. | |
| template<class T> | |
| LektResult< T > | line::pfqn::pfqn_lekt (const Matrix< T > &L, const std::vector< T > &N) |
The common corrected asymptotic expansion (LE-KT), computed on the cheaper side.
Templated port of matlab/src/api/pfqn/pfqn_lekt.m. The corrected logistic expansion (pfqn_ble) and the corrected Knessl-Tier expansion (pfqn_bkt) are ONE estimator, evaluated in M-1 and in R dimensions. With a think time their stationary points are one point in dual coordinates,
xi_r = N_r / (Z_r + v u'L_r) (the class throughputs of the LE fixed point) v u_k = 1 / (1 - U_k) (the M/M/1 factor of the KT saddle)
and Sylvester's identity det(I_R + C'C) = det(I_M + CC') exchanges the R x R Hessian determinant for the M x M one, after which every 2 pi cancels on both sides; the two agree to the accuracy of the saddle-point solvers. Without a think time the LE branch integrates the radius exactly as Gamma(N+M) while KT Laplaces it, so they differ by the constant (1 - log(2 pi)/2) - r(N+M), r the Stirling remainder of a Gamma direction; the common estimator is defined as the KT value, and the LE side here carries M (1 - log(2 pi)/2) - r(N+M) in place of pfqn_ble's (M-1)(1 - log(2 pi)/2). See _kb/03-api-layer.md.
ROUTE. The KT side is an R-dimensional convex solve and an R x R determinant, the LE side an M-dimensional fixed point and an (M-1) x (M-1) one, so the KT side is taken when R <= M, and whenever a class self-loops (one nonzero demand and no think time), which pfqn_kt extracts exactly.
ARITHMETIC. Inherited from both sides: gated on has_transcendental.
Definition in file pfqn_lekt.h.