![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Distinct-load Normalizing Constant (DNC) at a nonintegral population. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <limits>#include <vector>#include "line/api/pfqn/pfqn_asympt_common.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/lu.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::pfqn::DncResult< T > |
| Normalizing constant and throughput at a real-valued population. More... | |
Namespaces | |
| namespace | line |
| namespace | line::pfqn |
Functions | |
| template<class T> | |
| DncResult< T > | line::pfqn::pfqn_dnc (const std::vector< T > &L, const T &N) |
| Distinct-load Normalizing Constant (DNC) at a nonintegral population. | |
Distinct-load Normalizing Constant (DNC) at a nonintegral population.
Templated port of matlab/src/api/pfqn/pfqn_dnc.m.
Normalizing constant and throughput of a single-class closed product-form network at a REAL-VALUED population, by partial-fraction inversion of the network generating function (Dowdy and Gordon 1984). With distinct loads x_1..x_G of multiplicities m_1..m_G the generating function prod_g (1 - x_g u)^{-m_g} expands as
G(n) = sum_g sum_{j = 1..m_g} A_gj C(n+j-1, j-1) x_g^n,
every term of which is an analytic function of n. Evaluating it at a real n therefore interpolates the integral normalizing constants exactly (it reproduces them at every integer) and gives a smooth throughput curve X(N) = G(N-1)/G(N) through the integral points, rather than the rounding or linear interpolation the paper compares against. For all-distinct loads the coefficients have the closed form A_g = prod_{l != g} x_g / (x_g - x_l), used directly; with repeated loads they are recovered from the M integral constants G(0..M-1), which determine them uniquely.
Only the queueing part admits this continuation: the delay sequence Z^n / n! is entire and has no partial-fraction expansion, so a think time is rejected here. Use pfqn_nintmva for nonintegral populations with a delay.
Reference: L. W. Dowdy, K. D. Gordon, "Algorithms for Nonintegral Degrees of Multiprogramming in Closed Queuing Networks", Performance Evaluation 4(1):19-28, 1984.
Arithmetic: TRANSCENDENTAL. The partial-fraction series is evaluated in the log domain through gamma functions, so the exact backend is refused at compile time.
Definition in file pfqn_dnc.h.