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

Mean waiting times in polling systems: 1-limited and decrementing service. More...

#include <cstddef>
#include <limits>
#include <vector>
#include "line/num/number.h"
#include "line/util/error.h"
Include dependency graph for polling_qsys_1limited.h:

Go to the source code of this file.

Classes

struct  line::polling::PollingMoments< T >
 Per-queue first two moments of the arrival, service and switchover processes, the reduced form both formulas consume. More...

Namespaces

namespace  line
namespace  line::polling

Functions

template<class T>
std::vector< T > line::polling::polling_qsys_1limited (const PollingMoments< T > &m)
 1-limited polling: one job served per visit.
template<class T>
std::vector< T > line::polling::polling_qsys_decrementing (const PollingMoments< T > &m)
 Decrementing service, symmetric systems only (the MATLAB version rejects asymmetric parameters with a 1e-6 relative tolerance; here the check is exact, which is the right test in an exact field and a stricter one in double).

Detailed Description

Mean waiting times in polling systems: 1-limited and decrementing service.

Templated port of matlab/src/api/polling/polling_qsys_1limited.m and polling_qsys_decrementing.m. The MATLAB versions take MAP descriptors and reduce them to the first two moments of the arrival, service and switchover processes; this port takes those moments directly, so the MAP reduction stays in line::mam (map_lambda, map_mean, map_moment, map_var) and the waiting-time formula is a pure rational function of the moments. Callers holding MAPs compose the two.

Both formulas stay in the field, so a polling system with rational parameters has an exactly representable mean waiting time. Worth having: the denominator 1 - rho - lambda R vanishes at the stability boundary, and near it a rounded evaluation can return a finite but meaningless number where the exact one shows the pole.

Definition in file polling_qsys_1limited.h.