![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Classes | |
| struct | PollingMoments |
| Per-queue first two moments of the arrival, service and switchover processes, the reduced form both formulas consume. More... | |
Functions | |
| template<class T> | |
| std::vector< T > | polling_qsys_1limited (const PollingMoments< T > &m) |
| 1-limited polling: one job served per visit. | |
| template<class T> | |
| std::vector< T > | 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). | |
| template<class T> | |
| std::vector< T > | polling_qsys_exhaustive (const PollingMoments< T > &m) |
| Exhaustive service: the server empties a queue completely before switching. | |
| template<class T> | |
| std::vector< T > | polling_qsys_gated (const PollingMoments< T > &m) |
| Gated service: only the jobs found at the polling instant are served. | |
| std::vector< T > line::polling::polling_qsys_1limited | ( | const PollingMoments< T > & | m | ) |
1-limited polling: one job served per visit.
W_i = (1-rho+rho_i)/(1-rho-lambda_i R) * (1-rho)/((1-rho)rho + sum rho_j^2)
Definition at line 67 of file polling_qsys_1limited.h.
References line::polling::PollingMoments< T >::b, line::polling::PollingMoments< T >::b2, line::polling::PollingMoments< T >::delta2, line::InputError::InputError(), line::polling::PollingMoments< T >::lambda, line::NumericError::NumericError(), polling_qsys_1limited(), line::polling::PollingMoments< T >::r, line::polling::PollingMoments< T >::size(), and line::polling::PollingMoments< T >::validate().
Referenced by polling_qsys_1limited(), and line::mva::solver_mva_polling_analyzer().
| 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).
W = delta2/(2r) + (N lambda b2 (1 - lambda r) + (r + lambda delta2)(N - rho)) / (2 (1 - rho - lambda r (N - rho)))
Definition at line 128 of file polling_qsys_1limited.h.
References line::polling::PollingMoments< T >::b, line::polling::PollingMoments< T >::b2, line::polling::PollingMoments< T >::delta2, line::InputError::InputError(), line::polling::PollingMoments< T >::lambda, line::NumericError::NumericError(), polling_qsys_decrementing(), line::polling::PollingMoments< T >::r, line::polling::PollingMoments< T >::size(), and line::polling::PollingMoments< T >::validate().
Referenced by polling_qsys_decrementing(), and line::mva::solver_mva_polling_analyzer().
| std::vector< T > line::polling::polling_qsys_exhaustive | ( | const PollingMoments< T > & | m | ) |
Exhaustive service: the server empties a queue completely before switching.
Takagi (1988) eq. (15) in the station-time form. The unknowns are the n^2 station times r_ij collected row-major as index (i-1) n + j, 1-based in the reference and shifted by one here.
| m | per-queue first two moments of arrivals, service and switchover |
Definition at line 103 of file polling_qsys_exhaustive.h.
References line::polling::PollingMoments< T >::b2, line::polling::PollingMoments< T >::delta2, line::polling::PollingMoments< T >::lambda, polling_qsys_exhaustive(), line::polling::PollingMoments< T >::size(), line::solve(), and line::polling::PollingMoments< T >::validate().
Referenced by polling_qsys_exhaustive(), and line::mva::solver_mva_polling_analyzer().
| std::vector< T > line::polling::polling_qsys_gated | ( | const PollingMoments< T > & | m | ) |
Gated service: only the jobs found at the polling instant are served.
Takagi (1988) eq. (20), same station-time unknowns and the same layout. The switchover variance enters at index i here, not i-1 as in the exhaustive form; that asymmetry is in the reference and is reproduced, and both forms satisfy the pseudo-conservation law, which is what pins them.
Definition at line 170 of file polling_qsys_exhaustive.h.
References line::polling::PollingMoments< T >::b2, line::polling::PollingMoments< T >::delta2, line::polling::PollingMoments< T >::lambda, polling_qsys_gated(), line::polling::PollingMoments< T >::size(), line::solve(), and line::polling::PollingMoments< T >::validate().
Referenced by polling_qsys_gated(), and line::mva::solver_mva_polling_analyzer().