![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Geo^X/Geo/1: the discrete-time single-server queue with batch arrivals. More...
#include <string>#include "line/api/dqsys/dqsys_geogeo1.h"#include "line/num/number.h"#include "line/util/error.h"Go to the source code of this file.
Classes | |
| struct | line::dqsys::GeoXGeo1Result< T > |
Namespaces | |
| namespace | line |
| namespace | line::dqsys |
Functions | |
| template<class T> | |
| GeoXGeo1Result< T > | line::dqsys::dqsys_geoxgeo1_moments (const T &a, const T &batchMean, const T &batchSecondFactorial, const T &s, GeoConvention convention=GeoConvention::LAS_DA) |
| Geo^X/Geo/1 for an arbitrary batch law given by its first two factorial moments. | |
| template<class T> | |
| GeoXGeo1Result< T > | line::dqsys::dqsys_geoxgeo1 (const T &a, const T &beta, const T &s, GeoConvention convention=GeoConvention::LAS_DA) |
| Geo^X/Geo/1: the discrete-time single-server queue with batch arrivals. | |
| template<class T> | |
| T | line::dqsys::dqsys_geoxgeo1_pgf (const GeoXGeo1Result< T > &r, const T &z, const T &Az) |
| Probability generating function of the stationary queue length. | |
Geo^X/Geo/1: the discrete-time single-server queue with batch arrivals.
Templated port of matlab/src/api/qsys/dqsys_geoxgeo1.m, cross-checked against jar/src/main/java/jline/api/qsys/Qsys_geoxgeo1.java.
A batch arrives in a slot with probability a and carries X >= 1 jobs; the server completes a job in a slot with probability s. With A(z) the pgf of the number of jobs arriving in one slot the slot-boundary content obeys
P(z) = p_0 s (z-1) A(z) / ( z - A(z)(s + (1-s) z) ), p_0 = 1 - lambda/s
and differentiating at z = 1 gives
E[N] = lambda + ( a E[X(X-1)]/2 + lambda (1-s) ) / (s - lambda)
so the batch law enters only through its first two factorial moments. For a geometric batch with parameter beta, E[X] = 1/beta and E[X(X-1)] = 2(1-beta)/beta^2, and at beta = 1 the result collapses onto dqsys_geogeo1.
Everything is a rational function of (a, beta, s), so the exact instantiation carries no rounding. That matters in the same regime as for Geo/Geo/1: the interesting case is s - lambda small, and that is exactly where the double evaluation of the E[N] quotient loses digits.
The MATLAB entry point returns the pgf as a function handle taking (z, A(z)); here that is the free function dqsys_geoxgeo1_pgf, which takes the result struct and the same pair.
Definition in file dqsys_geoxgeo1.h.