LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
qsys_gigk_approx_cosmetatos.h File Reference

Cosmetatos / Page interpolation approximation for the GI/G/k queue. More...

Include dependency graph for qsys_gigk_approx_cosmetatos.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::qsys

Functions

template<class T>
QsysResult< T > line::qsys::qsys_gigk_approx_cosmetatos (const T &lambda, const T &mu, const T &ca, const T &cs, unsigned k)
 Cosmetatos / Page interpolation approximation for the GI/G/k queue.

Detailed Description

Cosmetatos / Page interpolation approximation for the GI/G/k queue.

Templated port of matlab/src/api/qsys/qsys_gigk_approx_cosmetatos.m.

gamma = min(0.24, (1-rho)(k-1)(sqrt(4+5k)-2)/(16 k rho)) phi1 = 1 + gamma (M/D/k factor) phi3 = (1-4 gamma) exp(-2(1-rho)/(3 rho)) (D/M/k factor) Wq = [ca^2 cs^2 + ca^2(1-cs^2) phi1/2 + (1-ca^2) cs^2 phi3/2] Wq(M/M/k)

for ca^2 <= 1 and cs^2 <= 1; outside the unit box the Lee-Longton scaling Wq = ((ca^2+cs^2)/2) Wq(M/M/k) is used instead. W = Wq + 1/mu.

DIVERGENCE: jar/.../Qsys_gigk_approx_cosmetatos.java names its arguments ca2 and cs2 and uses them unsquared, i.e. it expects squared coefficients of variation, whereas MATLAB takes ca, cs and squares them internally. MATLAB is ground truth, so this port takes ca, cs. The JAR also returns {L,W,Q,U} instead of [W,rhohat]; W agrees once the argument convention is matched.

References: Cosmetatos (1975) INFOR 13, 328-331; Page (1982) J. Opl. Res. Soc. 33, 453-473; Whitt (1993) eq. (2.17) for the gamma safeguard.

Carries sqrt and exp, so it requires transcendental arithmetic and cannot be instantiated at T = Rational.

Definition in file qsys_gigk_approx_cosmetatos.h.