![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Classes | |
| struct | BmapM1Result |
| Everything qsys_bmapm1 returns, mirroring the MATLAB result struct. More... | |
| struct | BmapPhNnRetrialOptions |
| Options of qsys_bmapphnn_retrial. More... | |
| struct | BmapPhNnRetrialResult |
| Result of qsys_bmapphnn_retrial. More... | |
| struct | DmcResult |
| struct | Gig1ExtremalResult |
| The bounds, all as TIMES IN QUEUE: add 1/mu for a response time. More... | |
| struct | Gig1RqResult |
| struct | GigkRqtResult |
| struct | LdpsWorkloadResult |
| Return value of qsys_ldps_workload, mirroring the three MATLAB outputs. More... | |
| struct | LindleyResult |
| Mirrors the struct MATLAB returns from qsys_mm1_lindley. More... | |
| struct | MapD1Result |
| Return value of qsys_mapd1, mirroring the MATLAB result struct. More... | |
| struct | MapDcResult |
| Return value of qsys_mapdc, mirroring the MATLAB result struct. More... | |
| struct | MapG1kPerflowResult |
| Return value of qsys_mapg1k_perflow, mirroring the MATLAB result struct. More... | |
| struct | MapG1kResult |
| Return value of qsys_mapg1k, mirroring the MATLAB result struct. More... | |
| struct | MapG1Result |
| Result of qsys_mapg1. More... | |
| struct | MapMap1Result |
| Return value of the MAP/MAP/1 family (qsys_mapmap1, qsys_mapph1, qsys_phph1), carrying the same quantities as the MATLAB result struct. More... | |
| struct | MapMcResult |
| Return value of qsys_mapmc and qsys_mapm1, mirroring the MATLAB struct. More... | |
| struct | MapPhcResult |
| Return value of qsys_mapphc, mirroring the MATLAB struct. More... | |
| struct | MaximaResult |
| Two-moment description of a maximum. More... | |
| struct | MDcCrommelinResult |
| struct | Mg1DisciplineResult |
| struct | Mg1kLossMgsResult |
| struct | Mg1kLossResult |
| struct | Mg1PrioResult |
| struct | Mg1PsOptions |
| Options of qsys_mg1_ps, mirroring the reference's name-value pairs. More... | |
| struct | Mg1PsResult |
| Everything qsys_mg1_ps returns. More... | |
| struct | MginfResult |
| Return value of qsys_mginf, mirroring MATLAB's [L,Lq,W,Wq,p0,pk]. More... | |
| struct | MgisrgiOptions |
| Options of qsys_mgisrgi_whitt, all with the MATLAB defaults. More... | |
| struct | Mm1DpsResult |
| struct | Mm1kLossResult |
| struct | Mm1PsResult |
| Mirrors MATLAB's [W, W2, alpha] return list. More... | |
| struct | Mm1TandemLindleyResult |
| Mirrors the struct MATLAB returns from qsys_mm1_tandem_lindley. More... | |
| struct | MmapG1kResult |
| Return value of qsys_mmapg1k, mirroring the MATLAB result struct. More... | |
| struct | MmapGk1Result |
| Return value of qsys_mmapgk1, mirroring the MATLAB struct. More... | |
| struct | MmccRetrialFpResult |
| Return value of qsys_mmcc_retrial_fp, mirroring the three MATLAB outputs. More... | |
| struct | MmckResult |
| struct | MxM1Result |
| struct | NpfqnTvFluidResult |
| Result of the network solve. More... | |
| struct | Patience |
| The patience (time-to-abandon) law, in the three forms the algorithm accepts. More... | |
| struct | PhM1Result |
| struct | PhMcResult |
| struct | QsysAbandonResult |
| Steady-state measures of a multiserver queue with customer abandonment. More... | |
| struct | QsysFluidAbandonResult |
| Steady state of the G/GI/s+GI fluid model. More... | |
| struct | QsysGgnmResult |
| Steady-state measures of the G/GI/n/m diffusion approximation. More... | |
| struct | QsysMolResult |
| MOL and PSA measures of a time-varying multiserver system. More... | |
| struct | QsysMtginfResult |
| Time-varying measures of the Mt/G/infinity queue. More... | |
| struct | QsysQedResult |
| QED measures of the M/M/s queue. More... | |
| struct | QsysQedStaffingResult |
| Outcome of the square-root staffing rule. More... | |
| struct | QsysResult |
| Return value of the qsys family, mirroring MATLAB's [W,rhohat] and the JAR's Ret.qsys. More... | |
| struct | QsysTgaResult |
| Steady-state measures of the G/GI/n+GI truncated Gaussian approximation. More... | |
| struct | QsysTvFluidResult |
| Trajectory of the Gt/Mt/st+GI fluid queue; every vector is on the time grid. More... | |
| struct | ServiceLaw |
| Service-time descriptor, the C++ form of the MATLAB svc struct. More... | |
| struct | TandemLindleyResult |
| Mirrors the struct MATLAB returns from qsys_tandem_lindley. More... | |
| struct | TandemUbResult |
| Mirrors the struct MATLAB returns from qsys_tandem_ub_ciucu. More... | |
| struct | TvFluidOptions |
| Options of qsys_gtmtst_fluid, all with the MATLAB defaults. More... | |
| struct | WorkloadServiceLaw |
| The three things Cohen's formula needs from the required-service-time law: its mean, its squared coefficient of variation, and its CDF. More... | |
Typedefs | |
| using | Cplx = std::complex<double> |
Enumerations | |
| enum class | MapG1ServiceFit { Exponential , Erlang , Hyperexponential , Acyclic } |
| Which branch of fitServiceToPH was taken, for the caller and for tests. More... | |
| enum class | ServiceKind { Gamma , Deterministic , PhaseType , Density } |
| Which family the service law belongs to. More... | |
| enum class | PatienceForm { Exponential , Hazard , Ccdf } |
| Which of the three accepted descriptions of the patience law is carried. More... | |
| enum class | QedCriterion { Delay , MeanWait , ServiceLevel } |
| Which target the staffing rule is asked to meet. More... | |
Functions | |
| template<class T> | |
| BmapM1Result< T > | qsys_bmapm1 (const std::vector< Matrix< T > > &D, const T &mu, const T &qParam, std::size_t maxLevelParam, unsigned maxIter, const T &tol, double tailTol) |
| BMAP/M/1 by the matrix-analytic (M/G/1-type) method. | |
| template<class T> | |
| BmapM1Result< T > | qsys_bmapm1 (const std::vector< Matrix< T > > &D, const T &mu) |
| The reference's defaults: adaptive truncation, 10000 iterations, tol 1e-12. | |
| template<class T> | |
| BmapPhNnRetrialResult< T > | qsys_bmapphnn_retrial (const std::vector< Matrix< T > > &D, const std::vector< T > &beta, const Matrix< T > &S, int N, const T &alpha, const T &gamma, const T &p, const std::vector< long > &R, const BmapPhNnRetrialOptions &opt) |
| The BMAP/PH/N/N bufferless retrial queue. | |
| template<class T> | |
| BmapPhNnRetrialResult< T > | qsys_bmapphnn_retrial (const std::vector< Matrix< T > > &D, const std::vector< T > &beta, const Matrix< T > &S, int N, const T &alpha, const T &gamma, const T &p, long R) |
| qsys_bmapphnn_retrial with the reference's automatic truncation level. | |
| template<class T> | |
| DmcResult< T > | qsys_dmc (const T &lambda, const T &mu, unsigned c, unsigned truncation, unsigned quadSteps) |
| D/M/c: deterministic interarrival times, exponential service. | |
| template<class T> | |
| DmcResult< T > | qsys_dmc (const T &lambda, const T &mu, unsigned c) |
| qsys_dmc with the MATLAB defaults, automatic truncation and 200 steps. | |
| template<class T> | |
| QsysResult< T > | qsys_gg1 (const T &lambda, const T &mu, const T &ca2, const T &cs2) |
| G/G/1 dispatcher: exact where a two-moment description determines the answer, Allen-Cunneen otherwise. | |
| template<class T> | |
| QsysTgaResult< T > | qsys_ggingi_tga (const T &lambda, const T &mu, unsigned n, const T &ca, const T &cs, const std::function< T(const T &)> &patienceCcdf, const std::function< T(const T &)> &patiencePdf=std::function< T(const T &)>(), const std::function< T(const T &)> &serviceCcdf=std::function< T(const T &)>()) |
| Truncated Gaussian approximation (TGA-G) for the G/GI/n+GI queue. | |
| template<class T> | |
| QsysFluidAbandonResult< T > | qsys_ggisgi_fluid (const T &lambda, const T &mu, unsigned s, const std::function< T(const T &)> &patienceCcdf, const std::function< T(const T &)> &servingCcdf=std::function< T(const T &)>(), const std::vector< T > &agePoints=std::vector< T >(), double tol=1e-12, double maxTime=std::numeric_limits< double >::quiet_NaN()) |
| Steady state of the G/GI/s+GI fluid model. | |
| template<class T> | |
| QsysGgnmResult< T > | qsys_ggnm_diffusion (const T &lambda, const T &mu, unsigned n, double m, const T &ca, const T &cs, const std::function< T(const T &)> &serviceCcdf=std::function< T(const T &)>(), double tol=1e-12, std::size_t panels=4000) |
| Diffusion approximation for the G/GI/n/m queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_approx_allencunneen (const T &lambda, const T &mu, const T &ca, const T &cs) |
| Allen-Cunneen approximation of the mean response time of a G/I/G/1 queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_approx_gelenbe (const T &lambda, const T &mu, const T &ca, const T &cs) |
| Gelenbe diffusion approximation with instantaneous-return boundary. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_approx_heyman (const T &lambda, const T &mu, const T &ca, const T &cs) |
| Heyman approximation of the mean response time of a G/I/G/1 queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_approx_kimura (const T &lambda, const T &mu, const T &ca, const T &cs) |
| Kimura diffusion-interpolation approximation for the G/I/G/1 queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_approx_klb (const T &lambda, const T &mu, const T &ca, const T &cs) |
| Kraemer and Langenbach-Belz approximation for the G/I/G/1 queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_approx_kobayashi (const T &lambda, const T &mu, const T &ca, const T &cs) |
| Kobayashi diffusion approximation for the G/I/G/1 queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_approx_marchal (const T &lambda, const T &mu, const T &ca, const T &cs) |
| Marchal approximation of the mean response time of a G/I/G/1 queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_approx_myskja (const T &lambda, const T &mu, const T &ca, const T &cs, const T &q0, const T &qa) |
| Myskja's third-moment approximation of the mean response time of a G/I/G/1 queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_approx_myskja2 (const T &lambda, const T &mu, const T &ca, const T &cs, const T &q0, const T &qa) |
| Myskja's enhanced third-moment approximation of the mean response time of a G/I/G/1 queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_approx_whitt (const T &lambda, const T &mu, const T &ca, const T &cs) |
| Whitt's approximation of the G/G/1 mean response time. | |
| template<class T> | |
| Gig1ExtremalResult< T > | qsys_gig1_bnds_extremal (const T &lambda, const T &mu, const T &ca, const T &cs, std::size_t K=4000, std::size_t N=2000, bool skipTight=false) |
| Extremal two-moment bounds for the GI/GI/1 queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_lbnd (const T &lambda, const T &mu, const T &ca, const T &cs) |
| Fundamental lower bound on the mean response time of a G/G/1 queue. | |
| template<class T, class IaFun> | |
| Gig1RqResult< T > | qsys_gig1_rq (const T &rho, const T &mu, const T &cs2, IaFun &&IaFun_) |
| Robust Queueing (RQ) approximation of a G/GI/1 queue characterized by its arrival index of dispersion and the first two service moments. | |
| template<class T> | |
| GigkRqtResult< T > | qsys_gig1_rqt (const T &lambda, const T &mu, const T &Gamma_a, const T &Gamma_s, const T &alpha_a, const T &alpha_s) |
| Robust Queueing Theory (RQT) worst-case system time of a G/G/1 FCFS queue, the single-server case of qsys_gigk_rqt (Theorem 2 and eq. | |
| template<class T> | |
| GigkRqtResult< T > | qsys_gig1_rqt (const T &lambda, const T &mu, const T &Gamma_a, const T &Gamma_s) |
| Finite-variance case, alpha_a = alpha_s = 2. | |
| template<class T> | |
| QsysResult< T > | qsys_gig1_ubnd_kingman (const T &lambda, const T &mu, const T &ca, const T &cs) |
| Kingman upper bound on the mean waiting time of a G/G/1 queue. | |
| template<class T> | |
| QsysResult< T > | qsys_gigk_approx (const T &lambda, const T &mu, const T &ca, const T &cs, unsigned k) |
| Default G/I/G/k approximation of the mean response time. | |
| template<class T> | |
| QsysResult< T > | 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. | |
| template<class T> | |
| QsysResult< T > | qsys_gigk_approx_kingman (const T &lambda, const T &mu, const T &ca, const T &cs, unsigned k) |
| Kingman (Lee-Longton) scaling of the exact M/M/k waiting time. | |
| template<class T> | |
| QsysResult< T > | qsys_gigk_approx_whitt (const T &lambda, const T &mu, const T &ca, const T &cs, unsigned k) |
| Whitt (1993) approximation for the GI/G/k queue, eqs. | |
| template<class T> | |
| GigkRqtResult< T > | qsys_gigk_rqt (const T &lambda, const T &mu, const T &Gamma_a, const T &Gamma_s, std::size_t k, const T &alpha_a, const T &alpha_s) |
| Robust Queueing Theory (RQT) worst-case system time of a G/G/k FCFS queue. | |
| template<class T> | |
| T | qsys_gigk_rqt_gamma (const T &rho, const T &mu, const T &Gamma_a, const T &sigma_s, std::size_t k, const T &alpha_a, const std::string ®ime="independent") |
| Service variability parameter of the Robust Queueing Theory (RQT) framework. | |
| template<class T> | |
| T | qsys_gm1 (const T &sigma, const T &mu) |
| Exact mean response time of the G/M/1 queue. | |
| template<class Tv> | |
| QsysTvFluidResult< Tv > | qsys_gtmtst_fluid (const std::function< Tv(const Tv &)> &lambdaFun, const std::function< Tv(const Tv &)> &sFun, const std::function< Tv(const Tv &)> &muFun, const std::function< Tv(const Tv &)> &patienceCcdf, const Tv &T, const TvFluidOptions< Tv > &opts=TvFluidOptions< Tv >()) |
| The Gt/Mt/st+GI many-server fluid queue, and the network of them. | |
| template<class Tv> | |
| NpfqnTvFluidResult< Tv > | npfqn_gtmtst_fluid (const std::vector< std::function< Tv(const Tv &)> > &lambdaFuns, const std::vector< std::function< Tv(const Tv &)> > &sFuns, const std::vector< std::function< Tv(const Tv &)> > &muFuns, const std::vector< std::function< Tv(const Tv &)> > &patienceCcdfs, const std::vector< std::vector< Tv > > &P, const Tv &T, const Tv &dt=num_traits< Tv >::from_int(0), const std::vector< Tv > &B0=std::vector< Tv >(), const std::vector< Tv > &w0=std::vector< Tv >(), double tol=1e-6, std::size_t maxIter=100) |
| A time-varying open network of many-server fluid queues with abandonment. | |
| template<class T> | |
| LindleyResult< T > | qsys_hh1_lindley (const std::vector< T > &lambda, const std::vector< T > &pa, const std::vector< T > &mu, const std::vector< T > &ps, const std::vector< T > &Wn, unsigned mmax=2) |
| Conditional waiting-time moments of the Hl/Hn/1 Lindley recursion. | |
| template<class T> | |
| LindleyResult< T > | qsys_hh1_lindley (const std::vector< T > &lambda, const std::vector< T > &pa, const std::vector< T > &mu, const std::vector< T > &ps, const T &Wn, unsigned mmax=2) |
| Scalar-Wn overload. | |
| template<class T> | |
| LdpsWorkloadResult< T > | qsys_ldps_workload (const T &lambda, const WorkloadServiceLaw< T > &B, const std::vector< T > &alpha, std::size_t N, const std::vector< T > &t, std::size_t ngrid) |
| Workload distribution of the load-dependent PS station with blocking. | |
| template<class T> | |
| LdpsWorkloadResult< T > | qsys_ldps_workload (const T &lambda, const WorkloadServiceLaw< T > &B, const std::vector< T > &alpha, std::size_t N) |
| qsys_ldps_workload on the automatic grid with the reference default ngrid = 2001. | |
| template<class T> | |
| std::vector< T > | qsys_lindley_moment (const T &lambda, const T &mu, const std::vector< T > &Wn, unsigned m) |
| One conditional Lindley moment for exponential primitives. | |
| template<class T> | |
| T | qsys_lindley_moment (const T &lambda, const T &mu, const T &Wn, unsigned m) |
| Scalar overload of the same expression. | |
| template<class T> | |
| MapD1Result< T > | qsys_mapd1 (const mam::Map< T > &arrival, const T &s, std::size_t dist_size, unsigned max_arrivals, std::size_t max_levels, const T &tol) |
| MAP/D/1 by the exact embedded M/G/1-type chain. | |
| template<class T> | |
| MapD1Result< T > | qsys_mapd1 (const mam::Map< T > &arrival, const T &s) |
| qsys_mapd1 with 100 materialized levels, an arrival-count cap of 4096, a level cap of 20000 and tolerance 1e-14. | |
| template<class T> | |
| MapDcResult< T > | qsys_mapdc (const mam::Map< T > &arrival, const T &s, unsigned c, std::size_t dist_size, unsigned max_arrivals, std::size_t max_levels, const T &tol) |
| MAP/D/c by Crommelin's exact embedded lattice chain. | |
| template<class T> | |
| MapDcResult< T > | qsys_mapdc (const mam::Map< T > &arrival, const T &s, unsigned c) |
| qsys_mapdc with 100 materialized levels, an arrival-count cap of 4096, a super-level cap of 20000 and tolerance 1e-14, matching the qsys_mapd1 defaults. | |
| template<class T> | |
| mam::Map< T > | qsys_mapg1_service_fit (const std::vector< T > &moments, MapG1ServiceFit &kind) |
| Fit a general service time to a PH, following qsys_mapg1.m's fitServiceToPH. | |
| template<class T> | |
| MapG1Result< T > | qsys_mapg1 (const mam::Map< T > &arrival, const std::vector< T > &moments, std::size_t dist_size) |
| The MAP/G/1 FCFS queue. | |
| template<class T> | |
| MapG1Result< T > | qsys_mapg1 (const mam::Map< T > &arrival, const std::vector< T > &moments) |
| qsys_mapg1 with the reference's default of 100 materialized levels. | |
| template<class T> | |
| MapG1kResult< T > | qsys_mapg1k (const mam::Map< T > &arrival, const ServiceLaw< T > &svc, std::size_t K, const T &tol, std::size_t nmaxCap) |
| MAP/G/1/K with tail drop. | |
| template<class T> | |
| MapG1kResult< T > | qsys_mapg1k (const mam::Map< T > &arrival, const ServiceLaw< T > &svc, std::size_t K) |
| qsys_mapg1k with the reference defaults tol = 1e-12, nmax = 200000. | |
| template<class T> | |
| MapG1kPerflowResult< T > | qsys_mapg1k_perflow (const std::vector< mam::Map< T > > &flows, const ServiceLaw< T > &svc, std::size_t K, const T &tol, std::size_t nmaxCap) |
| Per-flow analysis of a MAP-fed tail-drop buffer. | |
| template<class T> | |
| MapG1kPerflowResult< T > | qsys_mapg1k_perflow (const std::vector< mam::Map< T > > &flows, const ServiceLaw< T > &svc, std::size_t K) |
| qsys_mapg1k_perflow with the qsys_mapg1k defaults tol = 1e-12, nmax = 200000. | |
| template<class T> | |
| MapMcResult< T > | qsys_mapm1 (const mam::Map< T > &arrival, const T &mu, std::size_t dist_size) |
| MAP/M/1 by the matrix-geometric solution, i.e. | |
| template<class T> | |
| MapMcResult< T > | qsys_mapm1 (const mam::Map< T > &arrival, const T &mu) |
| qsys_mapm1 with 100 materialized levels. | |
| template<class T> | |
| MapMap1Result< T > | qsys_mapmap1 (const mam::Map< T > &arrival, const mam::Map< T > &service, std::size_t dist_size) |
| MAP/MAP/1 by the exact QBD solution. | |
| template<class T> | |
| MapMap1Result< T > | qsys_mapmap1 (const mam::Map< T > &arrival, const mam::Map< T > &service) |
| qsys_mapmap1 with 100 materialized levels, the reference's numQLProbs. | |
| template<class T> | |
| MapMcResult< T > | qsys_mapmc (const mam::Map< T > &arrival, const T &mu, unsigned c, std::size_t dist_size) |
| MAP/M/c by the matrix-geometric solution. | |
| template<class T> | |
| MapMcResult< T > | qsys_mapmc (const mam::Map< T > &arrival, const T &mu, unsigned c) |
| qsys_mapmc with 100 materialized levels, the reference's maxNumComp scale. | |
| template<class T> | |
| MapMap1Result< T > | qsys_mapph1 (const mam::Map< T > &arrival, const std::vector< T > &sigma, const Matrix< T > &S, std::size_t dist_size) |
| MAP/PH/1 by the exact QBD solution of the equivalent MAP/MAP/1 queue. | |
| template<class T> | |
| MapMap1Result< T > | qsys_mapph1 (const mam::Map< T > &arrival, const std::vector< T > &sigma, const Matrix< T > &S) |
| qsys_mapph1 with 100 materialized levels, the reference's numQLProbs. | |
| template<class T> | |
| MapPhcResult< T > | qsys_mapphc (const mam::Map< T > &arrival, const std::vector< T > &alpha, const Matrix< T > &S, unsigned c, std::size_t dist_size, std::size_t num_w_moms, const std::vector< T > &w_points) |
| MAP/PH/c FCFS, exactly. | |
| template<class T> | |
| MapPhcResult< T > | qsys_mapphc (const mam::Map< T > &arrival, const std::vector< T > &alpha, const Matrix< T > &S, unsigned c) |
| template<class T> | |
| MaximaResult< T > | qsys_maxima_twomoment (std::size_t n, const T &mean, const T &cs2, const T &q=num_traits< T >::from_int(0), bool exactFitted=true) |
| Two-moment approximation for the maximum of n iid non-negative variables. | |
| template<class T> | |
| MDcCrommelinResult< T > | qsys_mdc_crommelin (const T &lambda_arr, const T &s, unsigned c, long truncation=-1) |
| M/D/c by Crommelin's embedded chain. | |
| template<class T> | |
| QsysResult< T > | qsys_mg1 (const T &lambda, const T &mu, const T &cs) |
| Exact mean response time of the M/G/1 queue (Pollaczek-Khinchine). | |
| template<class T> | |
| Mg1DisciplineResult< T > | qsys_mg1_fb (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs) |
| M/G/1 under FB (feedback), also called LAS (least attained service). | |
| template<class T> | |
| Mg1DisciplineResult< T > | qsys_mg1_lrpt (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs) |
| M/G/1 under LRPT (longest remaining processing time). | |
| template<class T> | |
| Mg1PrioResult< T > | qsys_mg1_prio (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs) |
| M/G/1 with non-preemptive head-of-line priorities: per-class mean response times from the Cobham/Kleinrock formula. | |
| Mg1PsResult | qsys_mg1_ps (double lambda, const std::vector< double > &alpha, const Matrix< double > &Tmat, const Mg1PsOptions &opt) |
| Sojourn-time distribution of the M/G/1 processor-sharing queue. | |
| template<class T> | |
| Mg1DisciplineResult< T > | qsys_mg1_psjf (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs) |
| M/G/1 under PSJF (preemptive shortest job first). | |
| template<class T> | |
| Mg1DisciplineResult< T > | qsys_mg1_setf (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs) |
| M/G/1 under SETF (shortest elapsed time first), the non-preemptive counterpart of FB/LAS. | |
| template<class T> | |
| Mg1DisciplineResult< T > | qsys_mg1_srpt (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs) |
| M/G/1 under SRPT (shortest remaining processing time), by the Schrage-Miller formula. | |
| template<class T, class Density> | |
| Mg1kLossResult< T > | qsys_mg1k_loss (const T &lambda, Density &&density, unsigned K) |
| Exact M/G/1/K loss probability, via the chain embedded at service-start epochs. | |
| template<class T> | |
| Mg1kLossMgsResult< T > | qsys_mg1k_loss_mgs (const T &lambda, const T &mu, const T &mu_scv, unsigned K) |
| MacGregor Smith's closed-form approximation of the M/G/1/K loss probability. | |
| template<class T> | |
| MginfResult< T > | qsys_mginf (const T &lambda, const T &mu) |
| Exact solution of the M/G/infinity queue. | |
| template<class T> | |
| MginfResult< T > | qsys_mginf (const T &lambda, const T &mu, unsigned k) |
| Exact solution of the M/G/infinity queue. | |
| template<class T> | |
| QsysAbandonResult< T > | qsys_mgisrgi_whitt (const T &lambda, const T &mu, unsigned s, double r, const Patience< T > &patience, const MgisrgiOptions &opts=MgisrgiOptions()) |
| Engineering solution of the call-center model M/GI/s/r+GI. | |
| template<class T> | |
| QsysAbandonResult< T > | qsys_erlanga (const T &lambda, const T &mu, const T &theta, unsigned s, double r=std::numeric_limits< double >::infinity(), const MgisrgiOptions &opts=MgisrgiOptions()) |
| Exact analysis of the Erlang A model M/M/s/r+M. | |
| template<class T> | |
| QsysResult< T > | qsys_mm1 (const T &lambda, const T &mu) |
| Exact mean response time of the M/M/1 queue. | |
| template<class T> | |
| Mm1DpsResult< T > | qsys_mm1_dps (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &w, const T &tol, unsigned maxCutoff) |
| Multiclass M/M/1 under DPS (discriminatory processor sharing), solved numerically on the truncated population chain. | |
| template<class T> | |
| Mm1DpsResult< T > | qsys_mm1_dps (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &w) |
| MATLAB defaults: tol = 1e-10, maxCutoff = 2048. | |
| template<class T> | |
| LindleyResult< T > | qsys_mm1_lindley (const T &lambda, const T &mu, const std::vector< T > &Wn, unsigned mmax=2) |
| Conditional waiting-time moments of the M/M/1 Lindley recursion. | |
| template<class T> | |
| LindleyResult< T > | qsys_mm1_lindley (const T &lambda, const T &mu, const T &Wn, unsigned mmax=2) |
| Scalar overload. | |
| template<class T> | |
| Mm1PsResult< T > | qsys_mm1_ps (const std::vector< T > &lambda, const std::vector< T > &mu) |
| Exact sojourn-time moments of the multiclass M/M/1-PS queue. | |
| template<class T> | |
| Mm1TandemLindleyResult< T > | qsys_mm1_tandem_lindley (const T &lambda, const T &mu1, const T &mu2, const std::vector< T > &Wk, const std::vector< T > &Wk1) |
| Conditional waiting time at the SECOND station of an M/M/1 -> /M/1 tandem. | |
| template<class T> | |
| Mm1TandemLindleyResult< T > | qsys_mm1_tandem_lindley (const T &lambda, const T &mu1, const T &mu2, const T &Wk, const T &Wk1) |
| Scalar overload. | |
| template<class T> | |
| Mm1kLossResult< T > | qsys_mm1k_loss (const T &lambda, const T &mu, unsigned K) |
| Blocking probability of the M/M/1/K queue. | |
| template<class T> | |
| MmapG1kResult< T > | qsys_mmapg1k (const Matrix< T > &D0, const std::vector< Matrix< T > > &D1c, const ServiceLaw< T > &svc, std::size_t K, const T &tol, std::size_t nmaxCap) |
| MMAP[K]/G/1/K with tail drop. | |
| template<class T> | |
| MmapG1kResult< T > | qsys_mmapg1k (const Matrix< T > &D0, const std::vector< Matrix< T > > &D1c, const ServiceLaw< T > &svc, std::size_t K) |
| qsys_mmapg1k with the qsys_mapg1k defaults tol = 1e-12, nmax = 200000. | |
| template<class T> | |
| MmapGk1Result< T > | qsys_mmapgk1 (const std::vector< Matrix< T > > &MMAP, const std::vector< lang::Distrib< T > > &svc, const std::vector< T > &w_points, std::size_t num_w_moms, double tol, std::size_t iter_max) |
| MMAP[K]/G[K]/1 FCFS, per type. | |
| template<class T> | |
| MmapGk1Result< T > | qsys_mmapgk1 (const std::vector< Matrix< T > > &MMAP, const std::vector< lang::Distrib< T > > &svc) |
| template<class T> | |
| T | erlang_b_recursive (const T &a, unsigned c) |
| Erlang's loss formula B(a, c) by the numerically stable rational recursion B_0 = 1, B_k = a B_{k-1}/(k + a B_{k-1}). | |
| template<class T> | |
| MmccRetrialFpResult< T > | qsys_mmcc_retrial_fp (const T &lambda, const T &mu, unsigned c, const T &tol, std::size_t maxiter) |
| M/M/c/c with retrials by the Cohen fixed point. | |
| template<class T> | |
| MmccRetrialFpResult< T > | qsys_mmcc_retrial_fp (const T &lambda, const T &mu, unsigned c) |
| qsys_mmcc_retrial_fp with the reference defaults tol = 1e-10, maxiter = 10000. | |
| template<class T> | |
| MmckResult< T > | qsys_mmck (const T &lambda, const T &mu, unsigned c, unsigned K) |
| Exact analysis of the M/M/c/K queue (truncated Erlang form). | |
| template<class T> | |
| QsysResult< T > | qsys_mmk (const T &lambda, const T &mu, unsigned k) |
| Exact mean response time of the M/M/k queue (Erlang-C). | |
| template<class T> | |
| T | qsys_mmk_qed_alpha (const T &beta) |
| The Halfin-Whitt delay-probability function alpha(beta); 1 at beta <= 0. | |
| template<class T> | |
| T | qsys_mmk_qed_erlangc (unsigned s, const T &lambda, const T &mu) |
| Erlang C by the Erlang B recursion B_j = a B_{j-1}/(j + a B_{j-1}), which never forms a^j/j! | |
| template<class T> | |
| QsysQedResult< T > | qsys_mmk_qed (const T &lambda, const T &mu, unsigned s) |
| Halfin-Whitt QED approximation for the M/M/s queue, and the square-root staffing rule that inverts it. | |
| template<class T> | |
| QsysQedStaffingResult< T > | qsys_mmk_qed_staffing (const T &lambda, const T &mu, const T &target, QedCriterion crit=QedCriterion::Delay, const T &deadline=num_traits< T >::from_int(0), const T &level=num_traits< T >::from_int(0), bool exact=false) |
| Square-root staffing of the M/M/s queue. | |
| template<class T> | |
| QsysMtginfResult< T > | qsys_mtginf (const std::function< T(const T &)> &lambdaFun, const std::function< T(const T &)> &serviceCcdf, const T &ES, const std::vector< T > &tvals, double startTime=-std::numeric_limits< double >::infinity(), double ES2=std::numeric_limits< double >::quiet_NaN(), const std::function< T(const T &)> &servicePdf=std::function< T(const T &)>(), double tol=1e-12, std::size_t panels=4000, double maxAge=1e12) |
| Exact time-varying analysis of the Mt/G/infinity queue. | |
| template<class T> | |
| T | qsys_erlang_b (unsigned s, const T &a) |
| Erlang B by the recursion B_j = a B_{j-1}/(j + a B_{j-1}), which never forms a^s/s! | |
| template<class T> | |
| T | qsys_erlang_c (unsigned s, const T &a) |
| Erlang C from the same recursion; 1 when the load saturates the servers. | |
| template<class T> | |
| QsysMolResult< T > | qsys_mtgs0_mol (const std::function< T(const T &)> &lambdaFun, const std::function< T(const T &)> &serviceCcdf, const T &ES, unsigned s, const std::vector< T > &tvals, double startTime=-std::numeric_limits< double >::infinity(), bool delay=false) |
| Modified-offered-load and pointwise-stationary approximations for a time-varying multiserver system. | |
| template<class T> | |
| MxM1Result< T > | qsys_mxm1 (const T &lambda_batch, const T &mu, const T &E_X, const T &E_X2) |
| M^X/M/1: the batch-arrival queue with exponential service. | |
| template<class T> | |
| MxM1Result< T > | qsys_mxm1_variance (const T &lambda_batch, const T &mu, const T &E_X, const T &Var_X) |
| Variance form: MATLAB's qsys_mxm1(..., Var_X, 'variance'). | |
| template<class T> | |
| MxM1Result< T > | qsys_mxm1_pmf (const T &lambda_batch, const T &mu, const std::vector< T > &batch_sizes, const std::vector< T > &pmf) |
| Support-and-pmf form: MATLAB's qsys_mxm1(..., batch_sizes, pmf). | |
| template<class T> | |
| PhM1Result< T > | qsys_phm1 (const std::vector< T > &alpha, const Matrix< T > &Tm, const T &mu, const T &tol) |
| Exact PH/M/1, the GI/M/1 queue with phase-type interarrival times. | |
| template<class T> | |
| PhM1Result< T > | qsys_phm1 (const std::vector< T > &alpha, const Matrix< T > &Tm, const T &mu) |
| qsys_phm1 with the fzero-equivalent default bracket tolerance. | |
| template<class T> | |
| PhMcResult< T > | qsys_phmc (const std::vector< T > &alpha, const Matrix< T > &Tm, const T &mu, unsigned c, unsigned maxIter, const T &tol) |
| Exact PH/M/c by Neuts' matrix-geometric method. | |
| template<class T> | |
| PhMcResult< T > | qsys_phmc (const std::vector< T > &alpha, const Matrix< T > &Tm, const T &mu, unsigned c) |
| qsys_phmc with the MATLAB defaults, 50000 iterations and tolerance 1e-14. | |
| template<class T> | |
| MapMap1Result< T > | qsys_phph1 (const std::vector< T > &alpha, const Matrix< T > &Tm, const std::vector< T > &beta, const Matrix< T > &S, std::size_t dist_size) |
| PH/PH/1 by the exact QBD solution of the equivalent MAP/MAP/1 queue. | |
| template<class T> | |
| MapMap1Result< T > | qsys_phph1 (const std::vector< T > &alpha, const Matrix< T > &Tm, const std::vector< T > &beta, const Matrix< T > &S) |
| qsys_phph1 with 100 materialized levels, the reference's numQLProbs. | |
| template<class T> | |
| TandemLindleyResult< T > | qsys_tandem_lindley (const std::vector< T > &A, const Matrix< T > &S, const std::vector< T > &W0=std::vector< T >()) |
| Sample-path Lindley recursion along a tandem of single-server FCFS queues. | |
| template<class T> | |
| TandemUbResult< T > | qsys_tandem_ub_ciucu (const std::vector< T > &x, const std::function< T(const T &)> &lst, const std::vector< T > &p, const std::vector< T > &mu, const std::function< T(const T &)> &dlst=std::function< T(const T &)>()) |
| Tail bounds for a GI/Hn/1 -> . | |
| using line::qsys::Cplx = std::complex<double> |
Definition at line 85 of file qsys_mg1_ps.h.
|
strong |
Which branch of fitServiceToPH was taken, for the caller and for tests.
| Enumerator | |
|---|---|
| Exponential | one moment, or cv2 exactly 1 |
| Erlang | 0 < cv2 < 1, or the cv2 <= 0 branch |
| Hyperexponential | cv2 > 1 |
| Acyclic | three or more moments |
Definition at line 102 of file qsys_mapg1.h.
|
strong |
Which of the three accepted descriptions of the patience law is carried.
| Enumerator | |
|---|---|
| Exponential | |
| Hazard | |
| Ccdf | |
Definition at line 74 of file qsys_mgisrgi_whitt.h.
|
strong |
Which target the staffing rule is asked to meet.
| Enumerator | |
|---|---|
| Delay | |
| MeanWait | |
| ServiceLevel | |
Definition at line 83 of file qsys_mmk_qed.h.
|
strong |
Which family the service law belongs to.
| Enumerator | |
|---|---|
| Gamma | |
| Deterministic | |
| PhaseType | |
| Density | |
Definition at line 99 of file qsys_mapg1k.h.
| T line::qsys::erlang_b_recursive | ( | const T & | a, |
| unsigned | c ) |
Erlang's loss formula B(a, c) by the numerically stable rational recursion B_0 = 1, B_k = a B_{k-1}/(k + a B_{k-1}).
Exact in any field: no logs, no factorials, no cancellation.
Definition at line 65 of file qsys_mmcc_retrial_fp.h.
References erlang_b_recursive().
Referenced by erlang_b_recursive(), and qsys_mmcc_retrial_fp().
| NpfqnTvFluidResult< Tv > line::qsys::npfqn_gtmtst_fluid | ( | const std::vector< std::function< Tv(const Tv &)> > & | lambdaFuns, |
| const std::vector< std::function< Tv(const Tv &)> > & | sFuns, | ||
| const std::vector< std::function< Tv(const Tv &)> > & | muFuns, | ||
| const std::vector< std::function< Tv(const Tv &)> > & | patienceCcdfs, | ||
| const std::vector< std::vector< Tv > > & | P, | ||
| const Tv & | T, | ||
| const Tv & | dt = num_traits<Tv>::from_int(0), | ||
| const std::vector< Tv > & | B0 = std::vector<Tv>(), | ||
| const std::vector< Tv > & | w0 = std::vector<Tv>(), | ||
| double | tol = 1e-6, | ||
| std::size_t | maxIter = 100 ) |
A time-varying open network of many-server fluid queues with abandonment.
| lambdaFuns | external arrival rate of each queue |
| sFuns | staffing of each queue |
| muFuns | service rate of each queue |
| patienceCcdfs | patience ccdf of each queue |
| P | routing proportions, substochastic |
| T | horizon |
| dt | grid step; non-positive takes T/2000 |
| B0 | initial fluid in service, empty for an empty network |
| w0 | initial boundary waiting times, empty for an empty network |
| tol | sup-norm tolerance on the arrival-rate iteration |
| maxIter | cap on the iterations |
Definition at line 332 of file qsys_gtmtst_fluid.h.
References line::qsys::NpfqnTvFluidResult< T >::arrivalRates, line::qsys::TvFluidOptions< T >::B0, line::qsys::TvFluidOptions< T >::dt, line::InputError::InputError(), line::qsys::NpfqnTvFluidResult< T >::iterations, npfqn_gtmtst_fluid(), qsys_gtmtst_fluid(), line::qsys::NpfqnTvFluidResult< T >::queues, line::qsys::NpfqnTvFluidResult< T >::residual, line::qsys::QsysTvFluidResult< T >::sigma, line::qsys::NpfqnTvFluidResult< T >::times, and line::qsys::TvFluidOptions< T >::w0.
Referenced by npfqn_gtmtst_fluid().
| BmapM1Result< T > line::qsys::qsys_bmapm1 | ( | const std::vector< Matrix< T > > & | D, |
| const T & | mu ) |
The reference's defaults: adaptive truncation, 10000 iterations, tol 1e-12.
Definition at line 360 of file qsys_bmapm1.h.
References qsys_bmapm1().
| BmapM1Result< T > line::qsys::qsys_bmapm1 | ( | const std::vector< Matrix< T > > & | D, |
| const T & | mu, | ||
| const T & | qParam, | ||
| std::size_t | maxLevelParam, | ||
| unsigned | maxIter, | ||
| const T & | tol, | ||
| double | tailTol ) |
BMAP/M/1 by the matrix-analytic (M/G/1-type) method.
| D | the BMAP {D0, D1, ..., DK}; D0 carries hidden transitions, Dk the transitions releasing a batch of k |
| mu | exponential service rate |
| qParam | uniformization constant; <= 0 selects the reference's default |
| maxLevelParam | explicit level truncation; 0 selects the adaptive search |
| maxIter | iteration cap for the G matrix |
| tol | convergence tolerance for the G matrix |
| tailTol | relative truncation target for the level distribution |
Definition at line 177 of file qsys_bmapm1.h.
References line::qsys::BmapM1Result< T >::A, line::qsys::BmapM1Result< T >::A0, line::qsys::BmapM1Result< T >::A1, line::qsys::BmapM1Result< T >::alpha, line::qsys::BmapM1Result< T >::B0, line::qsys::BmapM1Result< T >::Bk, line::mc::ctmc_solve(), line::qsys::BmapM1Result< T >::decayRate, line::qsys::BmapM1Result< T >::drift, line::mc::dtmc_solve(), line::qsys::BmapM1Result< T >::G, line::qsys::BmapM1Result< T >::gConverged, line::InputError::InputError(), line::qsys::BmapM1Result< T >::lambda, line::qsys::BmapM1Result< T >::levelProb, line::matmul(), line::Matrix< T >::Matrix(), line::qsys::BmapM1Result< T >::meanQueueLength, line::qsys::BmapM1Result< T >::pi0, line::qsys::BmapM1Result< T >::q, qsys_bmapm1(), line::qsys::BmapM1Result< T >::rho, line::Matrix< T >::size(), line::qsys::BmapM1Result< T >::theta, line::qsys::BmapM1Result< T >::throughput, line::qsys::BmapM1Result< T >::truncError, line::qsys::BmapM1Result< T >::truncLevel, line::qsys::BmapM1Result< T >::utilization, and line::vecmul().
Referenced by qsys_bmapm1(), qsys_bmapm1(), and line::mam::solver_mam_getmamresult().
| BmapPhNnRetrialResult< T > line::qsys::qsys_bmapphnn_retrial | ( | const std::vector< Matrix< T > > & | D, |
| const std::vector< T > & | beta, | ||
| const Matrix< T > & | S, | ||
| int | N, | ||
| const T & | alpha, | ||
| const T & | gamma, | ||
| const T & | p, | ||
| const std::vector< long > & | R, | ||
| const BmapPhNnRetrialOptions & | opt ) |
The BMAP/PH/N/N bufferless retrial queue.
| D | the BMAP as {D0, D1, ..., DK}, each V x V |
| beta | PH service entry vector, length M |
| S | PH service sub-generator, M x M |
| N | number of servers, which is also the capacity |
| alpha | retrial rate per orbiting customer |
| gamma | abandonment rate per orbiting customer |
| p | probability that an overflowing batch is lost rather than joining the orbit |
| R | admission threshold per BMAP state; a single entry is broadcast |
| opt | truncation level |
Definition at line 444 of file qsys_bmapphnn_retrial.h.
References line::qsys::BmapPhNnRetrialResult< T >::clipped, line::Matrix< T >::cols(), line::InputError::InputError(), line::inverse(), line::qsys::BmapPhNnRetrialResult< T >::L_orbit, line::qsys::BmapPhNnRetrialResult< T >::L_system, line::Matrix< T >::Matrix(), line::mulvec(), line::qsys::BmapPhNnRetrialResult< T >::N_server, line::NumericError::NumericError(), line::ones(), line::qsys::BmapPhNnRetrialResult< T >::P_empty_orbit, line::qsys::BmapPhNnRetrialResult< T >::P_empty_system, line::qsys::BmapPhNnRetrialResult< T >::P_idle, line::qsys::BmapPhNnRetrialResult< T >::pi, qsys_bmapphnn_retrial(), line::Matrix< T >::rows(), line::solve(), line::qsys::BmapPhNnRetrialResult< T >::throughput, line::qsys::BmapPhNnRetrialResult< T >::topLevelMass, line::Matrix< T >::transpose(), line::qsys::BmapPhNnRetrialResult< T >::truncLevel, and line::qsys::BmapPhNnRetrialResult< T >::utilization.
Referenced by qsys_bmapphnn_retrial(), qsys_bmapphnn_retrial(), and line::mam::solver_mam_retrial().
| BmapPhNnRetrialResult< T > line::qsys::qsys_bmapphnn_retrial | ( | const std::vector< Matrix< T > > & | D, |
| const std::vector< T > & | beta, | ||
| const Matrix< T > & | S, | ||
| int | N, | ||
| const T & | alpha, | ||
| const T & | gamma, | ||
| const T & | p, | ||
| long | R ) |
qsys_bmapphnn_retrial with the reference's automatic truncation level.
Definition at line 692 of file qsys_bmapphnn_retrial.h.
References qsys_bmapphnn_retrial().
| DmcResult< T > line::qsys::qsys_dmc | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | c ) |
qsys_dmc with the MATLAB defaults, automatic truncation and 200 steps.
Definition at line 225 of file qsys_dmc.h.
References qsys_dmc().
| DmcResult< T > line::qsys::qsys_dmc | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | c, | ||
| unsigned | truncation, | ||
| unsigned | quadSteps ) |
D/M/c: deterministic interarrival times, exponential service.
| lambda | deterministic arrival rate, interarrival time 1/lambda |
| mu | exponential service rate of one server |
| c | number of servers, c >= 1 |
| truncation | state-space truncation; 0 selects the MATLAB default |
| quadSteps | trapezoid steps over one interarrival cycle (MATLAB 200) |
Definition at line 122 of file qsys_dmc.h.
References line::eye(), line::InputError::InputError(), line::matmul(), line::qsys::DmcResult< T >::meanQueueLength, line::qsys::DmcResult< T >::meanSojournTime, line::qsys::DmcResult< T >::meanWaitingQueue, line::qsys::DmcResult< T >::meanWaitingTime, line::mulvec(), qsys_dmc(), line::solve(), and line::qsys::DmcResult< T >::utilization.
Referenced by qsys_dmc(), and qsys_dmc().
| T line::qsys::qsys_erlang_b | ( | unsigned | s, |
| const T & | a ) |
Erlang B by the recursion B_j = a B_{j-1}/(j + a B_{j-1}), which never forms a^s/s!
and so never overflows.
| s | number of servers |
| a | offered load in erlangs |
Definition at line 76 of file qsys_mtgs0_mol.h.
References qsys_erlang_b().
Referenced by qsys_erlang_b(), qsys_erlang_c(), and qsys_mtgs0_mol().
| T line::qsys::qsys_erlang_c | ( | unsigned | s, |
| const T & | a ) |
Erlang C from the same recursion; 1 when the load saturates the servers.
| s | number of servers |
| a | offered load in erlangs |
Definition at line 90 of file qsys_mtgs0_mol.h.
References qsys_erlang_b(), and qsys_erlang_c().
Referenced by qsys_erlang_c(), and qsys_mtgs0_mol().
| QsysAbandonResult< T > line::qsys::qsys_erlanga | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | theta, | ||
| unsigned | s, | ||
| double | r = std::numeric_limits<double>::infinity(), | ||
| const MgisrgiOptions & | opts = MgisrgiOptions() ) |
Exact analysis of the Erlang A model M/M/s/r+M.
The number in system is the birth-and-death process with death rate min(k,s) mu + (k-s)^+ theta, so every measure is exact: this is the case in which the approximation above reproduces the model (eq. 7.12). theta = 0 recovers M/M/s/r, and then a finite r is required whenever lambda >= s mu.
Port of matlab/src/api/qsys/qsys_erlanga.m.
| lambda | arrival rate |
| mu | service rate of one server |
| theta | abandonment rate of a waiting customer |
| s | number of servers |
| r | extra waiting spaces; infinity for an unbounded queue |
| opts | cdf times, truncation controls and inversion settings |
Definition at line 436 of file qsys_mgisrgi_whitt.h.
References line::qsys::Patience< T >::exponential(), line::InputError::InputError(), qsys_erlanga(), and qsys_mgisrgi_whitt().
Referenced by qsys_erlanga(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gg1 | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca2, | ||
| const T & | cs2 ) |
G/G/1 dispatcher: exact where a two-moment description determines the answer, Allen-Cunneen otherwise.
| lambda | arrival rate |
| mu | service rate |
| ca2 | squared coefficient of variation of the interarrival time |
| cs2 | squared coefficient of variation of the service time |
Definition at line 118 of file qsys_gg1.h.
References line::num_abs(), qsys_gg1(), qsys_gig1_approx_allencunneen(), qsys_gm1(), qsys_mg1(), and qsys_mm1().
Referenced by qsys_gg1(), and line::mva::solver_mva_qsys_analyzer().
| QsysTgaResult< T > line::qsys::qsys_ggingi_tga | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | n, | ||
| const T & | ca, | ||
| const T & | cs, | ||
| const std::function< T(const T &)> & | patienceCcdf, | ||
| const std::function< T(const T &)> & | patiencePdf = std::function<T(const T&)>(), | ||
| const std::function< T(const T &)> & | serviceCcdf = std::function<T(const T&)>() ) |
Truncated Gaussian approximation (TGA-G) for the G/GI/n+GI queue.
| lambda | arrival rate |
| mu | service rate of one server |
| n | number of servers |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
| patienceCcdf | F^c(x) = P(patience > x) |
| patiencePdf | the patience density; empty differences the ccdf |
| serviceCcdf | G^c(x), used only in the underloaded branch |
Definition at line 155 of file qsys_ggingi_tga.h.
References line::qsys::QsysTgaResult< T >::fluidQueueLength, line::qsys::QsysTgaResult< T >::fluidWait, line::InputError::InputError(), line::qsys::QsysTgaResult< T >::meanNumber, line::qsys::QsysTgaResult< T >::meanNumberInService, line::qsys::QsysTgaResult< T >::meanQueueLength, line::qsys::QsysTgaResult< T >::meanWait, line::qsys::QsysTgaResult< T >::probAbandon, line::qsys::QsysTgaResult< T >::probDelay, qsys_ggingi_tga(), line::qsys::QsysTgaResult< T >::regime, line::qsys::QsysTgaResult< T >::sigmaW, line::qsys::QsysTgaResult< T >::sigmaX, line::qsys::QsysTgaResult< T >::trafficIntensity, line::qsys::QsysTgaResult< T >::varQueueLength, and line::qsys::QsysTgaResult< T >::varWait.
Referenced by qsys_ggingi_tga(), and line::fluid::solver_fluid_qsys().
| QsysFluidAbandonResult< T > line::qsys::qsys_ggisgi_fluid | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | s, | ||
| const std::function< T(const T &)> & | patienceCcdf, | ||
| const std::function< T(const T &)> & | servingCcdf = std::function<T(const T&)>(), | ||
| const std::vector< T > & | agePoints = std::vector<T>(), | ||
| double | tol = 1e-12, | ||
| double | maxTime = std::numeric_limits<double>::quiet_NaN() ) |
Steady state of the G/GI/s+GI fluid model.
| lambda | arrival rate |
| mu | service rate of one server |
| s | number of servers, s >= 1 |
| patienceCcdf | F^c(t) = P(patience > t) |
| servingCcdf | G^c(x) = P(service > x), used only for the in-service age density; an empty callable takes the exponential of rate mu |
| agePoints | ages at which to return the densities |
| tol | bisection tolerance for w |
| maxTime | largest age searched for w; NaN grows the search |
Definition at line 157 of file qsys_ggisgi_fluid.h.
References line::qsys::QsysFluidAbandonResult< T >::abandonRate, line::qsys::QsysFluidAbandonResult< T >::agePoints, line::InputError::InputError(), line::qsys::QsysFluidAbandonResult< T >::meanNumber, line::qsys::QsysFluidAbandonResult< T >::meanNumberInService, line::qsys::QsysFluidAbandonResult< T >::meanQueueLength, line::qsys::QsysFluidAbandonResult< T >::meanWait, line::qsys::QsysFluidAbandonResult< T >::meanWaitAbandon, line::qsys::QsysFluidAbandonResult< T >::meanWaitServed, line::qsys::QsysFluidAbandonResult< T >::offeredWait, line::qsys::QsysFluidAbandonResult< T >::probAbandon, qsys_ggisgi_fluid(), line::qsys::QsysFluidAbandonResult< T >::queueAgeDensity, line::qsys::QsysFluidAbandonResult< T >::regime, line::qsys::QsysFluidAbandonResult< T >::serviceAgeDensity, line::qsys::QsysFluidAbandonResult< T >::throughput, line::qsys::QsysFluidAbandonResult< T >::trafficIntensity, and line::qsys::QsysFluidAbandonResult< T >::utilization.
Referenced by qsys_ggisgi_fluid(), and line::fluid::solver_fluid_qsys().
| QsysGgnmResult< T > line::qsys::qsys_ggnm_diffusion | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | n, | ||
| double | m, | ||
| const T & | ca, | ||
| const T & | cs, | ||
| const std::function< T(const T &)> & | serviceCcdf = std::function<T(const T&)>(), | ||
| double | tol = 1e-12, | ||
| std::size_t | panels = 4000 ) |
Diffusion approximation for the G/GI/n/m queue.
| lambda | arrival rate |
| mu | service rate of one server |
| n | number of servers, n >= 1 |
| m | extra waiting spaces; infinity for an unbounded queue |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
| serviceCcdf | G^c(x) = P(S > x); empty takes the exponential of rate mu |
| tol | service-tail cut for the peakedness integral |
| panels | Simpson panels for it |
Definition at line 144 of file qsys_ggnm_diffusion.h.
References line::qsys::QsysGgnmResult< T >::beta, line::qsys::QsysGgnmResult< T >::gamma, line::InputError::InputError(), line::qsys::QsysGgnmResult< T >::meanNumber, line::qsys::QsysGgnmResult< T >::meanQueueLength, line::qsys::QsysGgnmResult< T >::meanWait, line::num_abs(), line::qsys::QsysGgnmResult< T >::peakedness, line::qsys::QsysGgnmResult< T >::peakednessWeight, line::qsys::QsysGgnmResult< T >::probBlock, line::qsys::QsysGgnmResult< T >::probDelay, qsys_ggnm_diffusion(), line::qsys::QsysGgnmResult< T >::throughput, line::qsys::QsysGgnmResult< T >::trafficIntensity, line::qsys::QsysGgnmResult< T >::utilization, and line::qsys::QsysGgnmResult< T >::variability.
Referenced by qsys_ggnm_diffusion(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gig1_approx_allencunneen | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs ) |
Allen-Cunneen approximation of the mean response time of a G/I/G/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
Definition at line 40 of file qsys_gig1_approx_allencunneen.h.
References line::num_pow_int(), and qsys_gig1_approx_allencunneen().
Referenced by qsys_gg1(), qsys_gig1_approx_allencunneen(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gig1_approx_gelenbe | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs ) |
Gelenbe diffusion approximation with instantaneous-return boundary.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
Definition at line 45 of file qsys_gig1_approx_gelenbe.h.
References line::num_pow_int(), and qsys_gig1_approx_gelenbe().
Referenced by qsys_gig1_approx_gelenbe(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gig1_approx_heyman | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs ) |
Heyman approximation of the mean response time of a G/I/G/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
Definition at line 39 of file qsys_gig1_approx_heyman.h.
References line::num_pow_int(), and qsys_gig1_approx_heyman().
Referenced by qsys_gig1_approx_heyman(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gig1_approx_kimura | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs ) |
Kimura diffusion-interpolation approximation for the G/I/G/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
Definition at line 46 of file qsys_gig1_approx_kimura.h.
References line::num_pow_int(), and qsys_gig1_approx_kimura().
Referenced by qsys_gig1_approx_kimura(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gig1_approx_klb | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs ) |
Kraemer and Langenbach-Belz approximation for the G/I/G/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
Definition at line 41 of file qsys_gig1_approx_klb.h.
References line::num_pow_int(), and qsys_gig1_approx_klb().
Referenced by qsys_gig1_approx_klb(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gig1_approx_kobayashi | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs ) |
Kobayashi diffusion approximation for the G/I/G/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
Definition at line 40 of file qsys_gig1_approx_kobayashi.h.
References line::num_pow_int(), and qsys_gig1_approx_kobayashi().
Referenced by qsys_gig1_approx_kobayashi(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gig1_approx_marchal | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs ) |
Marchal approximation of the mean response time of a G/I/G/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
Definition at line 40 of file qsys_gig1_approx_marchal.h.
References line::num_pow_int(), and qsys_gig1_approx_marchal().
Referenced by qsys_gig1_approx_marchal(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gig1_approx_myskja | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs, | ||
| const T & | q0, | ||
| const T & | qa ) |
Myskja's third-moment approximation of the mean response time of a G/I/G/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
| q0 | smallest third relative moment for the given mean and SCV |
| qa | third relative moment E[A^3]/(6 E[A]^3) of the interarrival time |
Definition at line 53 of file qsys_gig1_approx_myskja.h.
References qsys_gig1_approx_myskja().
Referenced by qsys_gig1_approx_myskja().
| QsysResult< T > line::qsys::qsys_gig1_approx_myskja2 | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs, | ||
| const T & | q0, | ||
| const T & | qa ) |
Myskja's enhanced third-moment approximation of the mean response time of a G/I/G/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
| q0 | smallest third relative moment for the given mean and SCV |
| qa | third relative moment E[A^3]/(6 E[A]^3) of the interarrival time |
Definition at line 56 of file qsys_gig1_approx_myskja2.h.
References line::num_abs(), line::num_pow_int(), qsys_gig1_approx_myskja2(), and qsys_mg1().
Referenced by qsys_gig1_approx_myskja2().
| QsysResult< T > line::qsys::qsys_gig1_approx_whitt | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs ) |
Whitt's approximation of the G/G/1 mean response time.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
Definition at line 54 of file qsys_gig1_approx_whitt.h.
References qsys_gig1_approx_whitt().
Referenced by qsys_gig1_approx_whitt().
| Gig1ExtremalResult< T > line::qsys::qsys_gig1_bnds_extremal | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs, | ||
| std::size_t | K = 4000, | ||
| std::size_t | N = 2000, | ||
| bool | skipTight = false ) |
Extremal two-moment bounds for the GI/GI/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
| K | truncation of the negative binomial value |
| N | truncation of the random-walk length |
| skipTight | skip the O(K*N) tight bound and return the closed forms only |
Definition at line 148 of file qsys_gig1_bnds_extremal.h.
References line::qsys::Gig1ExtremalResult< T >::delta, line::qsys::Gig1ExtremalResult< T >::heavyTraffic, line::InputError::InputError(), line::qsys::Gig1ExtremalResult< T >::lowerBound, qsys_gig1_bnds_extremal(), line::qsys::Gig1ExtremalResult< T >::relativeWidth, line::qsys::Gig1ExtremalResult< T >::tightComputed, line::qsys::Gig1ExtremalResult< T >::trafficIntensity, line::qsys::Gig1ExtremalResult< T >::upperBound, line::qsys::Gig1ExtremalResult< T >::upperBoundClosed, line::qsys::Gig1ExtremalResult< T >::upperBoundDaley, and line::qsys::Gig1ExtremalResult< T >::upperBoundKingman.
Referenced by qsys_gig1_bnds_extremal(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gig1_lbnd | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs ) |
Fundamental lower bound on the mean response time of a G/G/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time, unused |
| cs | coefficient of variation of the service time, unused |
Definition at line 41 of file qsys_gig1_lbnd.h.
References qsys_gig1_lbnd().
Referenced by qsys_gig1_lbnd().
| Gig1RqResult< T > line::qsys::qsys_gig1_rq | ( | const T & | rho, |
| const T & | mu, | ||
| const T & | cs2, | ||
| IaFun && | IaFun_ ) |
Robust Queueing (RQ) approximation of a G/GI/1 queue characterized by its arrival index of dispersion and the first two service moments.
| rho | traffic intensity lambda/mu |
| mu | service rate |
| cs2 | squared coefficient of variation of the service time |
| IaFun_ | callable, IaFun_(x) -> the arrival IDC I_a(x) at x > 0 |
Definition at line 77 of file qsys_gig1_rq.h.
References line::InputError::InputError(), line::qsys::Gig1RqResult< T >::Q, qsys_gig1_rq(), line::qsys::Gig1RqResult< T >::W, line::qsys::Gig1RqResult< T >::X, and line::qsys::Gig1RqResult< T >::Z.
Referenced by qsys_gig1_rq(), line::mva::solver_mva_qsys_analyzer(), and line::mva::solver_rqna().
| GigkRqtResult< T > line::qsys::qsys_gig1_rqt | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | Gamma_a, | ||
| const T & | Gamma_s ) |
Finite-variance case, alpha_a = alpha_s = 2.
Definition at line 46 of file qsys_gig1_rqt.h.
References qsys_gig1_rqt(), and qsys_gigk_rqt().
| GigkRqtResult< T > line::qsys::qsys_gig1_rqt | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | Gamma_a, | ||
| const T & | Gamma_s, | ||
| const T & | alpha_a, | ||
| const T & | alpha_s ) |
Robust Queueing Theory (RQT) worst-case system time of a G/G/1 FCFS queue, the single-server case of qsys_gigk_rqt (Theorem 2 and eq.
12).
| lambda | arrival rate |
| mu | service rate |
| Gamma_a | variability parameter of the arrival uncertainty set |
| Gamma_s | variability parameter of the service uncertainty set |
| alpha_a | arrival tail coefficient in (1,2] |
| alpha_s | service tail coefficient in (1,2] |
Definition at line 39 of file qsys_gig1_rqt.h.
References qsys_gig1_rqt(), and qsys_gigk_rqt().
Referenced by qsys_gig1_rqt(), and qsys_gig1_rqt().
| QsysResult< T > line::qsys::qsys_gig1_ubnd_kingman | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs ) |
Kingman upper bound on the mean waiting time of a G/G/1 queue.
| lambda | arrival rate |
| mu | service rate |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
Definition at line 41 of file qsys_gig1_ubnd_kingman.h.
References line::num_pow_int(), and qsys_gig1_ubnd_kingman().
Referenced by qsys_gig1_ubnd_kingman(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gigk_approx | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs, | ||
| unsigned | k ) |
Default G/I/G/k approximation of the mean response time.
| lambda | arrival rate |
| mu | service rate of a single server |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
| k | number of servers, k >= 1 |
Definition at line 47 of file qsys_gigk_approx.h.
References line::InputError::InputError(), line::num_pow_int(), and qsys_gigk_approx().
Referenced by qsys_gigk_approx(), and line::mva::solver_mva_qsys_analyzer().
| 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.
| lambda | arrival rate |
| mu | service rate of a single server |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
| k | number of servers, k >= 1 |
Definition at line 54 of file qsys_gigk_approx_cosmetatos.h.
References line::num_pow_int(), qsys_gigk_approx_cosmetatos(), and qsys_mmk().
Referenced by qsys_gigk_approx_cosmetatos().
| QsysResult< T > line::qsys::qsys_gigk_approx_kingman | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs, | ||
| unsigned | k ) |
Kingman (Lee-Longton) scaling of the exact M/M/k waiting time.
| lambda | arrival rate |
| mu | service rate of a single server |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
| k | number of servers, k >= 1 |
Definition at line 44 of file qsys_gigk_approx_kingman.h.
References line::num_pow_int(), qsys_gigk_approx_kingman(), and qsys_mmk().
Referenced by qsys_gigk_approx_kingman(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_gigk_approx_whitt | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | ca, | ||
| const T & | cs, | ||
| unsigned | k ) |
Whitt (1993) approximation for the GI/G/k queue, eqs.
(2.16)-(2.25).
| lambda | arrival rate |
| mu | service rate of a single server |
| ca | coefficient of variation of the interarrival time |
| cs | coefficient of variation of the service time |
| k | number of servers, k >= 1 |
Definition at line 61 of file qsys_gigk_approx_whitt.h.
References line::num_abs(), line::num_pow_int(), qsys_gigk_approx_whitt(), and qsys_mmk().
Referenced by qsys_gigk_approx_whitt(), and line::mva::solver_mva_qsys_analyzer().
| GigkRqtResult< T > line::qsys::qsys_gigk_rqt | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | Gamma_a, | ||
| const T & | Gamma_s, | ||
| std::size_t | k, | ||
| const T & | alpha_a, | ||
| const T & | alpha_s ) |
Robust Queueing Theory (RQT) worst-case system time of a G/G/k FCFS queue.
| lambda | arrival rate |
| mu | service rate of each server |
| Gamma_a | variability parameter of the arrival uncertainty set |
| Gamma_s | variability parameter of the service uncertainty set |
| k | number of servers |
| alpha_a | arrival tail coefficient in (1,2] |
| alpha_s | service tail coefficient in (1,2] |
Definition at line 85 of file qsys_gigk_rqt.h.
References line::InputError::InputError(), qsys_gigk_rqt(), line::qsys::GigkRqtResult< T >::rhohat, line::qsys::GigkRqtResult< T >::Sworst, and line::qsys::GigkRqtResult< T >::W.
Referenced by qsys_gig1_rqt(), qsys_gig1_rqt(), qsys_gigk_rqt(), line::mva::solver_mva_qsys_analyzer(), and line::mva::solver_rqt().
| T line::qsys::qsys_gigk_rqt_gamma | ( | const T & | rho, |
| const T & | mu, | ||
| const T & | Gamma_a, | ||
| const T & | sigma_s, | ||
| std::size_t | k, | ||
| const T & | alpha_a, | ||
| const std::string & | regime = "independent" ) |
Service variability parameter of the Robust Queueing Theory (RQT) framework.
| rho | traffic intensity lambda/(k mu) |
| mu | service rate of each server, which sets the time unit |
| Gamma_a | variability parameter of the arrival uncertainty set |
| sigma_s | standard deviation of the service time |
| k | number of servers |
| alpha_a | effective arrival tail coefficient in (1,2] |
| regime | adaptation regime of Table 1: "independent" (service distribution unknown), "normal" or "pareto" |
Definition at line 72 of file qsys_gigk_rqt_gamma.h.
References line::InputError::InputError(), and qsys_gigk_rqt_gamma().
Referenced by qsys_gigk_rqt_gamma(), line::mva::solver_mva_qsys_analyzer(), and line::mva::solver_rqt().
| T line::qsys::qsys_gm1 | ( | const T & | sigma, |
| const T & | mu ) |
Exact mean response time of the G/M/1 queue.
| sigma | load at arrival instants, 0 <= sigma < 1 |
| mu | service rate |
Definition at line 40 of file qsys_gm1.h.
References qsys_gm1().
Referenced by qsys_gg1(), qsys_gm1(), and line::mva::solver_mva_qsys_analyzer().
| QsysTvFluidResult< Tv > line::qsys::qsys_gtmtst_fluid | ( | const std::function< Tv(const Tv &)> & | lambdaFun, |
| const std::function< Tv(const Tv &)> & | sFun, | ||
| const std::function< Tv(const Tv &)> & | muFun, | ||
| const std::function< Tv(const Tv &)> & | patienceCcdf, | ||
| const Tv & | T, | ||
| const TvFluidOptions< Tv > & | opts = TvFluidOptions<Tv>() ) |
The Gt/Mt/st+GI many-server fluid queue, and the network of them.
| lambdaFun | arrival rate lambda(t) |
| sFun | staffing s(t), positive |
| muFun | service rate mu(t), positive |
| patienceCcdf | F^c(x) = P(patience > x) |
| T | horizon; the model is solved on [0,T] |
| opts | grid step, initial condition and the optional derivatives |
Definition at line 149 of file qsys_gtmtst_fluid.h.
References line::qsys::QsysTvFluidResult< T >::alpha, line::qsys::QsysTvFluidResult< T >::arrivalRate, line::qsys::QsysTvFluidResult< T >::B, line::qsys::QsysTvFluidResult< T >::capacityRate, line::InputError::InputError(), line::qsys::QsysTvFluidResult< T >::Q, qsys_gtmtst_fluid(), line::qsys::QsysTvFluidResult< T >::regime, line::qsys::QsysTvFluidResult< T >::sigma, line::qsys::QsysTvFluidResult< T >::staffing, line::qsys::QsysTvFluidResult< T >::times, line::qsys::QsysTvFluidResult< T >::utilization, line::qsys::QsysTvFluidResult< T >::v, line::qsys::QsysTvFluidResult< T >::w, and line::qsys::QsysTvFluidResult< T >::X.
Referenced by npfqn_gtmtst_fluid(), qsys_gtmtst_fluid(), and line::fluid::solver_fluid_qsys().
| LindleyResult< T > line::qsys::qsys_hh1_lindley | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | pa, | ||
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | ps, | ||
| const std::vector< T > & | Wn, | ||
| unsigned | mmax = 2 ) |
Conditional waiting-time moments of the Hl/Hn/1 Lindley recursion.
| lambda | arrival phase rates, positive |
| pa | arrival phase probabilities, nonnegative and summing to 1 |
| mu | service phase rates, positive |
| ps | service phase probabilities, nonnegative and summing to 1 |
| Wn | waiting times of customer n, finite and nonnegative |
| mmax | highest moment order; raised to 2 when smaller, as in MATLAB |
Definition at line 62 of file qsys_hh1_lindley.h.
References line::qsys::LindleyResult< T >::analyzer, line::InputError::InputError(), line::Matrix< T >::Matrix(), line::qsys::LindleyResult< T >::mean, line::qsys::LindleyResult< T >::mmax, line::qsys::LindleyResult< T >::moments, line::num_abs(), qsys_hh1_lindley(), qsys_lindley_moment(), and line::qsys::LindleyResult< T >::var.
Referenced by qsys_hh1_lindley(), and qsys_hh1_lindley().
| LindleyResult< T > line::qsys::qsys_hh1_lindley | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | pa, | ||
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | ps, | ||
| const T & | Wn, | ||
| unsigned | mmax = 2 ) |
Scalar-Wn overload.
Definition at line 121 of file qsys_hh1_lindley.h.
References qsys_hh1_lindley().
| LdpsWorkloadResult< T > line::qsys::qsys_ldps_workload | ( | const T & | lambda, |
| const WorkloadServiceLaw< T > & | B, | ||
| const std::vector< T > & | alpha, | ||
| std::size_t | N ) |
qsys_ldps_workload on the automatic grid with the reference default ngrid = 2001.
Definition at line 249 of file qsys_ldps_workload.h.
References qsys_ldps_workload().
| LdpsWorkloadResult< T > line::qsys::qsys_ldps_workload | ( | const T & | lambda, |
| const WorkloadServiceLaw< T > & | B, | ||
| const std::vector< T > & | alpha, | ||
| std::size_t | N, | ||
| const std::vector< T > & | t, | ||
| std::size_t | ngrid ) |
Workload distribution of the load-dependent PS station with blocking.
| lambda | Poisson arrival rate |
| B | required service time: mean, SCV and CDF |
| alpha | rate scaling alpha(n) = n f(n) for n = 1..N, at least N entries |
| N | blocking capacity |
| t | grid at which the CDF is wanted; empty for an automatic grid |
| ngrid | points of the internal uniform quadrature grid |
Definition at line 131 of file qsys_ldps_workload.h.
References line::qsys::WorkloadServiceLaw< T >::cdf, line::qsys::LdpsWorkloadResult< T >::F, line::InputError::InputError(), line::qsys::WorkloadServiceLaw< T >::mean, line::qsys::LdpsWorkloadResult< T >::p, qsys_ldps_workload(), line::qsys::WorkloadServiceLaw< T >::scv, and line::qsys::LdpsWorkloadResult< T >::t.
Referenced by qsys_ldps_workload(), and qsys_ldps_workload().
| std::vector< T > line::qsys::qsys_lindley_moment | ( | const T & | lambda, |
| const T & | mu, | ||
| const std::vector< T > & | Wn, | ||
| unsigned | m ) |
One conditional Lindley moment for exponential primitives.
| lambda | arrival rate, positive |
| mu | service rate, positive |
| Wn | current waiting times, nonnegative |
| m | moment order, at least 1 |
Definition at line 58 of file qsys_lindley_moment.h.
References line::InputError::InputError(), line::num_factorial(), line::num_pow_int(), and qsys_lindley_moment().
Referenced by qsys_hh1_lindley(), qsys_lindley_moment(), qsys_lindley_moment(), and qsys_mm1_lindley().
| T line::qsys::qsys_lindley_moment | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | Wn, | ||
| unsigned | m ) |
Scalar overload of the same expression.
Definition at line 97 of file qsys_lindley_moment.h.
References qsys_lindley_moment().
| MapD1Result< T > line::qsys::qsys_mapd1 | ( | const mam::Map< T > & | arrival, |
| const T & | s ) |
qsys_mapd1 with 100 materialized levels, an arrival-count cap of 4096, a level cap of 20000 and tolerance 1e-14.
Definition at line 390 of file qsys_mapd1.h.
References qsys_mapd1().
| MapD1Result< T > line::qsys::qsys_mapd1 | ( | const mam::Map< T > & | arrival, |
| const T & | s, | ||
| std::size_t | dist_size, | ||
| unsigned | max_arrivals, | ||
| std::size_t | max_levels, | ||
| const T & | tol ) |
MAP/D/1 by the exact embedded M/G/1-type chain.
| arrival | arrival MAP (D0, D1) |
| s | deterministic service time, s > 0 |
| dist_size | how many entries of queueLengthDist to materialize |
| max_arrivals | cap on K, the number of arrivals per service that is tracked; K is grown from a Poisson-tail estimate until the missing counting mass falls below tol |
| max_levels | cap on the number of embedded levels generated by Ramaswami's recursion |
| tol | tolerance on the counting-mass truncation, on the G iteration and on the level-tail truncation |
Definition at line 201 of file qsys_mapd1.h.
References line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::eye(), line::InputError::InputError(), line::inverse(), line::mam::map_lambda(), line::matmul(), line::Matrix< T >::Matrix(), line::qsys::MapD1Result< T >::meanQueueLength, line::qsys::MapD1Result< T >::meanSojournTime, line::qsys::MapD1Result< T >::meanWaitingTime, line::mulvec(), line::num_abs(), line::ones(), qsys_mapd1(), line::qsys::MapD1Result< T >::queueLengthDist, line::qsys::MapD1Result< T >::utilization, and line::vecmul().
Referenced by qsys_mapd1(), and qsys_mapd1().
| MapDcResult< T > line::qsys::qsys_mapdc | ( | const mam::Map< T > & | arrival, |
| const T & | s, | ||
| unsigned | c ) |
qsys_mapdc with 100 materialized levels, an arrival-count cap of 4096, a super-level cap of 20000 and tolerance 1e-14, matching the qsys_mapd1 defaults.
Definition at line 320 of file qsys_mapdc.h.
References qsys_mapdc().
| MapDcResult< T > line::qsys::qsys_mapdc | ( | const mam::Map< T > & | arrival, |
| const T & | s, | ||
| unsigned | c, | ||
| std::size_t | dist_size, | ||
| unsigned | max_arrivals, | ||
| std::size_t | max_levels, | ||
| const T & | tol ) |
MAP/D/c by Crommelin's exact embedded lattice chain.
| arrival | arrival MAP (D0, D1) |
| s | deterministic service time, s > 0 |
| c | number of servers, c >= 1 |
| dist_size | how many entries of queueLengthDist to materialize |
| max_arrivals | cap on K, the number of arrivals per interval tracked |
| max_levels | cap on the number of super-levels generated |
| tol | tolerance on the counting-mass truncation, on the G iteration and on the level-tail truncation |
Definition at line 153 of file qsys_mapdc.h.
References line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::eye(), line::InputError::InputError(), line::inverse(), line::mam::map_lambda(), line::matmul(), line::Matrix< T >::Matrix(), line::qsys::MapDcResult< T >::meanQueueLength, line::qsys::MapDcResult< T >::meanSojournTime, line::qsys::MapDcResult< T >::meanWaitingTime, line::num_abs(), qsys_mapdc(), line::qsys::MapDcResult< T >::queueLengthDist, line::qsys::MapDcResult< T >::utilization, and line::vecmul().
Referenced by qsys_mapdc(), and qsys_mapdc().
| MapG1Result< T > line::qsys::qsys_mapg1 | ( | const mam::Map< T > & | arrival, |
| const std::vector< T > & | moments ) |
qsys_mapg1 with the reference's default of 100 materialized levels.
Definition at line 261 of file qsys_mapg1.h.
References qsys_mapg1().
| MapG1Result< T > line::qsys::qsys_mapg1 | ( | const mam::Map< T > & | arrival, |
| const std::vector< T > & | moments, | ||
| std::size_t | dist_size ) |
The MAP/G/1 FCFS queue.
| arrival | arrival MAP (D0, D1) |
| moments | the first one, two or three raw moments of the service time |
| dist_size | how many entries of queueLengthDist to materialize (the reference's numQLProbs, default 100) |
Definition at line 236 of file qsys_mapg1.h.
References line::qsys::MapG1Result< T >::fitKind, line::mam::map_lambda(), line::qsys::MapG1Result< T >::meanQueueLength, line::qsys::MapMap1Result< T >::meanQueueLength, line::qsys::MapG1Result< T >::meanSojournTime, line::qsys::MapMap1Result< T >::meanSojournTime, line::qsys::MapG1Result< T >::meanWaitingTime, qsys_mapg1(), qsys_mapg1_service_fit(), qsys_mapmap1(), line::qsys::MapG1Result< T >::queueLengthDist, line::qsys::MapMap1Result< T >::queueLengthDist, line::qsys::MapG1Result< T >::serviceFit, line::qsys::MapG1Result< T >::servicePhases, and line::qsys::MapG1Result< T >::utilization.
Referenced by qsys_mapg1(), and qsys_mapg1().
| mam::Map< T > line::qsys::qsys_mapg1_service_fit | ( | const std::vector< T > & | moments, |
| MapG1ServiceFit & | kind ) |
Fit a general service time to a PH, following qsys_mapg1.m's fitServiceToPH.
Exposed separately because the branch selection is the part of the reference that is transcribed verbatim, and a caller may want the fitted process without solving a queue.
| moments | the first one, two or three raw moments of the service time |
| kind | out: which branch was taken |
Definition at line 187 of file qsys_mapg1.h.
References Acyclic, line::mam::aph_fit(), Erlang, Exponential, Hyperexponential, line::InputError::InputError(), and qsys_mapg1_service_fit().
Referenced by qsys_mapg1(), and qsys_mapg1_service_fit().
| MapG1kResult< T > line::qsys::qsys_mapg1k | ( | const mam::Map< T > & | arrival, |
| const ServiceLaw< T > & | svc, | ||
| std::size_t | K ) |
qsys_mapg1k with the reference defaults tol = 1e-12, nmax = 200000.
Definition at line 681 of file qsys_mapg1k.h.
References qsys_mapg1k().
| MapG1kResult< T > line::qsys::qsys_mapg1k | ( | const mam::Map< T > & | arrival, |
| const ServiceLaw< T > & | svc, | ||
| std::size_t | K, | ||
| const T & | tol, | ||
| std::size_t | nmaxCap ) |
MAP/G/1/K with tail drop.
| arrival | arrival MAP (D0, D1) |
| svc | service law |
| K | buffer size in packets, K >= 1, the one in service included |
| tol | uniformization truncation tolerance |
| nmaxCap | cap on the uniformization order |
Definition at line 433 of file qsys_mapg1k.h.
References line::qsys::MapG1kResult< T >::countingResidual, line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::mc::dtmc_solve(), line::eye(), line::inverse(), line::qsys::MapG1kResult< T >::lambda, line::qsys::MapG1kResult< T >::lossProbability, line::mam::map_lambda(), line::matmul(), line::qsys::MapG1kResult< T >::meanQueueLength, line::qsys::MapG1kResult< T >::meanServiceTime, line::mulvec(), line::qsys::MapG1kResult< T >::nmax, line::num_abs(), line::ones(), line::qsys::MapG1kResult< T >::p0, line::qsys::MapG1kResult< T >::p0vec, line::qsys::MapG1kResult< T >::pK, line::qsys::MapG1kResult< T >::pKvec, line::qsys::MapG1kResult< T >::plevel, qsys_mapg1k(), line::qsys::MapG1kResult< T >::rho, line::qsys::MapG1kResult< T >::sigma, line::qsys::MapG1kResult< T >::throughput, line::qsys::MapG1kResult< T >::utilization, and line::vecmul().
Referenced by qsys_mapg1k(), qsys_mapg1k(), qsys_mapg1k_perflow(), and qsys_mmapg1k().
| MapG1kPerflowResult< T > line::qsys::qsys_mapg1k_perflow | ( | const std::vector< mam::Map< T > > & | flows, |
| const ServiceLaw< T > & | svc, | ||
| std::size_t | K ) |
qsys_mapg1k_perflow with the qsys_mapg1k defaults tol = 1e-12, nmax = 200000.
Definition at line 145 of file qsys_mapg1k_perflow.h.
References qsys_mapg1k_perflow().
| MapG1kPerflowResult< T > line::qsys::qsys_mapg1k_perflow | ( | const std::vector< mam::Map< T > > & | flows, |
| const ServiceLaw< T > & | svc, | ||
| std::size_t | K, | ||
| const T & | tol, | ||
| std::size_t | nmaxCap ) |
Per-flow analysis of a MAP-fed tail-drop buffer.
| flows | the N arrival MAPs, whose modulating orders may differ |
| svc | service law, shared by all flows |
| K | buffer size in packets, the one in transmission included |
| tol | convergence tolerance |
| nmaxCap | cap on the level truncation |
Definition at line 90 of file qsys_mapg1k_perflow.h.
References line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::InputError::InputError(), line::qsys::MapG1kPerflowResult< T >::lambda, line::qsys::MapG1kPerflowResult< T >::lambdaAggregate, line::qsys::MapG1kPerflowResult< T >::lossAggregate, line::qsys::MapG1kPerflowResult< T >::lossRatio, line::mam::map_lambda(), line::qsys::MapG1kPerflowResult< T >::meanServiceTime, line::qsys::MapG1kResult< T >::meanServiceTime, line::qsys::MapG1kPerflowResult< T >::p0, line::qsys::MapG1kResult< T >::p0, line::qsys::MapG1kPerflowResult< T >::pK, line::qsys::MapG1kResult< T >::pK, qsys_mapg1k(), qsys_mapg1k_perflow(), line::qsys::MapG1kPerflowResult< T >::rho, line::qsys::MapG1kPerflowResult< T >::throughput, and line::qsys::MapG1kPerflowResult< T >::throughputAggregate.
Referenced by qsys_mapg1k_perflow(), and qsys_mapg1k_perflow().
| MapMcResult< T > line::qsys::qsys_mapm1 | ( | const mam::Map< T > & | arrival, |
| const T & | mu ) |
qsys_mapm1 with 100 materialized levels.
Definition at line 85 of file qsys_mapm1.h.
References qsys_mapm1().
| MapMcResult< T > line::qsys::qsys_mapm1 | ( | const mam::Map< T > & | arrival, |
| const T & | mu, | ||
| std::size_t | dist_size ) |
MAP/M/1 by the matrix-geometric solution, i.e.
qsys_mapmc at c = 1.
| arrival | arrival MAP (D0, D1) |
| mu | exponential service rate |
| dist_size | how many entries of queueLengthDist to materialize |
Definition at line 77 of file qsys_mapm1.h.
References qsys_mapm1(), and qsys_mapmc().
Referenced by qsys_mapm1(), and qsys_mapm1().
| MapMap1Result< T > line::qsys::qsys_mapmap1 | ( | const mam::Map< T > & | arrival, |
| const mam::Map< T > & | service ) |
qsys_mapmap1 with 100 materialized levels, the reference's numQLProbs.
Definition at line 150 of file qsys_mapmap1.h.
References qsys_mapmap1().
| MapMap1Result< T > line::qsys::qsys_mapmap1 | ( | const mam::Map< T > & | arrival, |
| const mam::Map< T > & | service, | ||
| std::size_t | dist_size ) |
MAP/MAP/1 by the exact QBD solution.
| arrival | arrival MAP (D0, D1) |
| service | service MAP (D0, D1); its correlation IS honoured |
| dist_size | how many entries of queueLengthDist to materialize |
Definition at line 122 of file qsys_mapmap1.h.
References line::InputError::InputError(), line::mam::map_lambda(), line::qsys::MapMap1Result< T >::meanQueueLength, line::qsys::MapMap1Result< T >::meanSojournTime, line::qsys::MapMap1Result< T >::meanWaitingTime, line::mam::QbdMapMap1Result< T >::pqueue, line::mam::qbd_mapmap1(), line::mam::QbdMapMap1Result< T >::QN, qsys_mapmap1(), line::qsys::MapMap1Result< T >::queueLengthDist, and line::qsys::MapMap1Result< T >::utilization.
Referenced by qsys_mapg1(), qsys_mapmap1(), qsys_mapmap1(), qsys_mapph1(), and qsys_phph1().
| MapMcResult< T > line::qsys::qsys_mapmc | ( | const mam::Map< T > & | arrival, |
| const T & | mu, | ||
| unsigned | c ) |
qsys_mapmc with 100 materialized levels, the reference's maxNumComp scale.
Definition at line 240 of file qsys_mapmc.h.
References qsys_mapmc().
| MapMcResult< T > line::qsys::qsys_mapmc | ( | const mam::Map< T > & | arrival, |
| const T & | mu, | ||
| unsigned | c, | ||
| std::size_t | dist_size ) |
MAP/M/c by the matrix-geometric solution.
| arrival | arrival MAP (D0, D1) |
| mu | exponential service rate of one server |
| c | number of servers, c >= 1 |
| dist_size | how many entries of queueLengthDist to materialize |
Definition at line 120 of file qsys_mapmc.h.
References line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::InputError::InputError(), line::inverse(), line::mam::map_lambda(), line::matmul(), line::qsys::MapMcResult< T >::meanQueueLength, line::qsys::MapMcResult< T >::meanSojournTime, line::qsys::MapMcResult< T >::meanWaitingTime, line::mulvec(), line::ones(), line::mam::qbd_fundmat(), qsys_mapmc(), line::qsys::MapMcResult< T >::queueLengthDist, line::solve(), line::qsys::MapMcResult< T >::utilization, and line::vecmul().
Referenced by qsys_mapm1(), qsys_mapmc(), and qsys_mapmc().
| MapMap1Result< T > line::qsys::qsys_mapph1 | ( | const mam::Map< T > & | arrival, |
| const std::vector< T > & | sigma, | ||
| const Matrix< T > & | S ) |
qsys_mapph1 with 100 materialized levels, the reference's numQLProbs.
Definition at line 115 of file qsys_mapph1.h.
References qsys_mapph1().
| MapMap1Result< T > line::qsys::qsys_mapph1 | ( | const mam::Map< T > & | arrival, |
| const std::vector< T > & | sigma, | ||
| const Matrix< T > & | S, | ||
| std::size_t | dist_size ) |
MAP/PH/1 by the exact QBD solution of the equivalent MAP/MAP/1 queue.
| arrival | arrival MAP (D0, D1) |
| sigma | PH service entry vector, length m |
| S | PH service sub-generator, m x m |
| dist_size | how many entries of queueLengthDist to materialize |
Definition at line 106 of file qsys_mapph1.h.
References qsys_mapmap1(), and qsys_mapph1().
Referenced by qsys_mapph1(), and qsys_mapph1().
| MapPhcResult< T > line::qsys::qsys_mapphc | ( | const mam::Map< T > & | arrival, |
| const std::vector< T > & | alpha, | ||
| const Matrix< T > & | S, | ||
| unsigned | c ) |
Definition at line 445 of file qsys_mapphc.h.
References qsys_mapphc().
| MapPhcResult< T > line::qsys::qsys_mapphc | ( | const mam::Map< T > & | arrival, |
| const std::vector< T > & | alpha, | ||
| const Matrix< T > & | S, | ||
| unsigned | c, | ||
| std::size_t | dist_size, | ||
| std::size_t | num_w_moms, | ||
| const std::vector< T > & | w_points ) |
MAP/PH/c FCFS, exactly.
| arrival | arrival MAP (D0, D1) of order ma |
| alpha | PH service initial vector of order ms |
| S | PH service sub-generator of order ms |
| c | number of servers, c >= 1 |
| dist_size | cap on the queue length probabilities materialized |
| num_w_moms | how many waiting-time moments to return |
| w_points | times at which to evaluate P(Wq > t) |
Definition at line 142 of file qsys_mapphc.h.
References line::Matrix< T >::cols(), line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::expm(), line::eye(), line::InputError::InputError(), line::inverse(), line::mam::map_lambda(), line::matmul(), line::qsys::MapPhcResult< T >::meanQueueLength, line::qsys::MapPhcResult< T >::meanSojournTime, line::qsys::MapPhcResult< T >::meanWaitingTime, line::mulvec(), line::ones(), line::qsys::MapPhcResult< T >::phaseCount, line::qsys::MapPhcResult< T >::probWait, line::mam::qbd_R_logred(), qsys_mapphc(), line::qsys::MapPhcResult< T >::queueLengthDist, line::Matrix< T >::rows(), line::solve(), line::qsys::MapPhcResult< T >::utilization, line::qsys::MapPhcResult< T >::waitingTimeCCDF, line::qsys::MapPhcResult< T >::waitingTimeMoments, and line::qsys::MapPhcResult< T >::waitingTimePoints.
Referenced by qsys_mapphc(), and qsys_mapphc().
| MaximaResult< T > line::qsys::qsys_maxima_twomoment | ( | std::size_t | n, |
| const T & | mean, | ||
| const T & | cs2, | ||
| const T & | q = num_traits<T>::from_int(0), | ||
| bool | exactFitted = true ) |
Two-moment approximation for the maximum of n iid non-negative variables.
| n | the number of samples |
| mean | the mean of the underlying law |
| cs2 | its squared coefficient of variation |
| q | a quantile level in (0,1); non-positive returns the mean |
| exactFitted | also compute the maximum exactly from the fitted law |
Definition at line 76 of file qsys_maxima_twomoment.h.
References line::qsys::MaximaResult< T >::eta, line::qsys::MaximaResult< T >::exactFittedValue, line::qsys::MaximaResult< T >::family, line::qsys::MaximaResult< T >::hasFitted, line::InputError::InputError(), qsys_maxima_twomoment(), line::qsys::MaximaResult< T >::reliable, line::qsys::MaximaResult< T >::slope, line::qsys::MaximaResult< T >::threshold, and line::qsys::MaximaResult< T >::value.
Referenced by qsys_maxima_twomoment().
| MDcCrommelinResult< T > line::qsys::qsys_mdc_crommelin | ( | const T & | lambda_arr, |
| const T & | s, | ||
| unsigned | c, | ||
| long | truncation = -1 ) |
M/D/c by Crommelin's embedded chain.
| lambda_arr | Poisson arrival rate |
| s | deterministic service time |
| c | number of servers |
| truncation | state-space cap; <= 0 selects the reference's automatic level |
Definition at line 69 of file qsys_mdc_crommelin.h.
References line::InputError::InputError(), line::qsys::MDcCrommelinResult< T >::meanQueueLength, line::qsys::MDcCrommelinResult< T >::meanSojournTime, line::qsys::MDcCrommelinResult< T >::meanWaitingQueue, line::qsys::MDcCrommelinResult< T >::meanWaitingTime, qsys_mdc_crommelin(), line::solve(), and line::qsys::MDcCrommelinResult< T >::utilization.
Referenced by qsys_mdc_crommelin().
| QsysResult< T > line::qsys::qsys_mg1 | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | cs ) |
Exact mean response time of the M/G/1 queue (Pollaczek-Khinchine).
| lambda | arrival rate |
| mu | service rate |
| cs | coefficient of variation of the service time |
Definition at line 39 of file qsys_mg1.h.
References line::num_pow_int(), and qsys_mg1().
Referenced by qsys_gg1(), qsys_gig1_approx_myskja2(), qsys_mg1(), and line::mva::solver_mva_qsys_analyzer().
| Mg1DisciplineResult< T > line::qsys::qsys_mg1_fb | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | cs ) |
M/G/1 under FB (feedback), also called LAS (least attained service).
| lambda | per-class arrival rates |
| mu | per-class service rates |
| cs | per-class coefficients of variation of the service time |
Definition at line 82 of file qsys_mg1_fb.h.
References line::num_abs(), line::NumericError::NumericError(), qsys_mg1_fb(), line::qsys::Mg1DisciplineResult< T >::rhohat, and line::qsys::Mg1DisciplineResult< T >::W.
Referenced by qsys_mg1_fb(), and line::mva::solver_mva_qsys_sizebased_analyzer().
| Mg1DisciplineResult< T > line::qsys::qsys_mg1_lrpt | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | cs ) |
M/G/1 under LRPT (longest remaining processing time).
| lambda | per-class arrival rates |
| mu | per-class service rates |
| cs | per-class coefficients of variation of the service time |
Definition at line 70 of file qsys_mg1_lrpt.h.
References line::num_abs(), qsys_mg1_lrpt(), line::qsys::Mg1DisciplineResult< T >::rhohat, and line::qsys::Mg1DisciplineResult< T >::W.
Referenced by qsys_mg1_lrpt(), and line::mva::solver_mva_qsys_sizebased_analyzer().
| Mg1PrioResult< T > line::qsys::qsys_mg1_prio | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | cs ) |
M/G/1 with non-preemptive head-of-line priorities: per-class mean response times from the Cobham/Kleinrock formula.
| lambda | per-class arrival rates, highest priority first |
| mu | per-class service rates |
| cs | per-class coefficients of variation of the service time |
Definition at line 58 of file qsys_mg1_prio.h.
References line::InputError::InputError(), qsys_mg1_prio(), line::qsys::Mg1PrioResult< T >::rhohat, and line::qsys::Mg1PrioResult< T >::W.
Referenced by qsys_mg1_prio(), and line::mva::solver_mva_qsys_prio_analyzer().
|
inline |
Sojourn-time distribution of the M/G/1 processor-sharing queue.
| lambda | arrival rate, finite and positive |
| alpha | phase-type initial probability vector |
| Tmat | phase-type subgenerator |
| opt | grids and tuning |
Definition at line 331 of file qsys_mg1_ps.h.
References line::qsys::Mg1PsResult::atomCond, line::qsys::Mg1PsResult::atomUncond, line::qsys::Mg1PsResult::cdfCond, line::qsys::Mg1PsResult::cdfUncond, line::Matrix< T >::cols(), line::qsys::Mg1PsResult::dominantRoot, line::expm(), line::InputError::InputError(), line::qsys::Mg1PsResult::lstCond, line::qsys::Mg1PsResult::lstCondVal, line::qsys::Mg1PsResult::lstExcess, line::qsys::Mg1PsResult::lstUncond, line::qsys::Mg1PsResult::lstUncondVal, line::qsys::Mg1PsResult::m1, line::qsys::Mg1PsResult::m2, line::qsys::Mg1PsResult::m2Cond, line::qsys::Mg1PsResult::m2Uncond, line::qsys::Mg1PsResult::meanCond, line::qsys::Mg1PsResult::meanUncond, line::ones(), line::qsys::Mg1PsResult::pdfCond, line::qsys::Mg1PsResult::pdfUncond, qsys_mg1_ps(), line::qsys::Mg1PsResult::rho, line::Matrix< T >::rows(), line::qsys::Mg1PsResult::s, line::solve(), line::qsys::Mg1PsResult::t, line::qsys::Mg1PsResult::varCond, line::qsys::Mg1PsResult::varUncond, and line::qsys::Mg1PsResult::x.
Referenced by qsys_mg1_ps().
| Mg1DisciplineResult< T > line::qsys::qsys_mg1_psjf | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | cs ) |
M/G/1 under PSJF (preemptive shortest job first).
| lambda | per-class arrival rates |
| mu | per-class service rates |
| cs | per-class coefficients of variation of the service time |
Definition at line 79 of file qsys_mg1_psjf.h.
References line::num_abs(), line::NumericError::NumericError(), qsys_mg1_psjf(), line::qsys::Mg1DisciplineResult< T >::rhohat, and line::qsys::Mg1DisciplineResult< T >::W.
Referenced by qsys_mg1_psjf(), and line::mva::solver_mva_qsys_sizebased_analyzer().
| Mg1DisciplineResult< T > line::qsys::qsys_mg1_setf | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | cs ) |
M/G/1 under SETF (shortest elapsed time first), the non-preemptive counterpart of FB/LAS.
| lambda | per-class arrival rates |
| mu | per-class service rates |
| cs | per-class coefficients of variation of the service time |
Definition at line 101 of file qsys_mg1_setf.h.
References line::NumericError::NumericError(), qsys_mg1_setf(), line::qsys::Mg1DisciplineResult< T >::rhohat, and line::qsys::Mg1DisciplineResult< T >::W.
Referenced by qsys_mg1_setf(), and line::mva::solver_mva_qsys_sizebased_analyzer().
| Mg1DisciplineResult< T > line::qsys::qsys_mg1_srpt | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | cs ) |
M/G/1 under SRPT (shortest remaining processing time), by the Schrage-Miller formula.
| lambda | per-class arrival rates |
| mu | per-class service rates |
| cs | per-class coefficients of variation of the service time |
Definition at line 183 of file qsys_mg1_srpt.h.
References line::NumericError::NumericError(), qsys_mg1_srpt(), line::qsys::Mg1DisciplineResult< T >::rhohat, and line::qsys::Mg1DisciplineResult< T >::W.
Referenced by qsys_mg1_srpt(), and line::mva::solver_mva_qsys_sizebased_analyzer().
| Mg1kLossResult< T > line::qsys::qsys_mg1k_loss | ( | const T & | lambda, |
| Density && | density, | ||
| unsigned | K ) |
Exact M/G/1/K loss probability, via the chain embedded at service-start epochs.
| lambda | Poisson arrival rate |
| density | service-time density, callable as density(t) -> T |
| K | system capacity, jobs in service included, K >= 2 |
Definition at line 105 of file qsys_mg1k_loss.h.
References line::mc::dtmc_solve(), line::InputError::InputError(), line::qsys::Mg1kLossResult< T >::lossProbability, line::num_factorial(), line::num_pow_int(), line::NumericError::NumericError(), qsys_mg1k_loss(), and line::qsys::Mg1kLossResult< T >::utilization.
Referenced by qsys_mg1k_loss().
| Mg1kLossMgsResult< T > line::qsys::qsys_mg1k_loss_mgs | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | mu_scv, | ||
| unsigned | K ) |
MacGregor Smith's closed-form approximation of the M/G/1/K loss probability.
| lambda | arrival rate |
| mu | service rate |
| mu_scv | squared coefficient of variation of the service time |
| K | system capacity, jobs in service included |
Definition at line 55 of file qsys_mg1k_loss_mgs.h.
References line::qsys::Mg1kLossMgsResult< T >::lossProbability, line::NumericError::NumericError(), qsys_mg1k_loss_mgs(), and line::qsys::Mg1kLossMgsResult< T >::utilization.
Referenced by qsys_mg1k_loss_mgs(), and line::mva::solver_mva_qsys_analyzer().
| MginfResult< T > line::qsys::qsys_mginf | ( | const T & | lambda, |
| const T & | mu ) |
Exact solution of the M/G/infinity queue.
| lambda | arrival rate |
| mu | service rate, mean service time 1/mu |
Definition at line 53 of file qsys_mginf.h.
References line::qsys::MginfResult< T >::has_pk, line::qsys::MginfResult< T >::L, line::qsys::MginfResult< T >::Lq, line::qsys::MginfResult< T >::p0, line::qsys::MginfResult< T >::pk, qsys_mginf(), line::qsys::MginfResult< T >::W, and line::qsys::MginfResult< T >::Wq.
Referenced by qsys_mginf(), and qsys_mginf().
| MginfResult< T > line::qsys::qsys_mginf | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | k ) |
Exact solution of the M/G/infinity queue.
| k | state whose probability is additionally returned |
| lambda | arrival rate |
| mu | service rate |
Definition at line 78 of file qsys_mginf.h.
References line::qsys::MginfResult< T >::has_pk, line::num_factorial(), line::num_pow_int(), line::qsys::MginfResult< T >::pk, and qsys_mginf().
| QsysAbandonResult< T > line::qsys::qsys_mgisrgi_whitt | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | s, | ||
| double | r, | ||
| const Patience< T > & | patience, | ||
| const MgisrgiOptions & | opts = MgisrgiOptions() ) |
Engineering solution of the call-center model M/GI/s/r+GI.
| lambda | arrival rate |
| mu | service rate of one server, the reciprocal of the mean service time |
| s | number of servers, s >= 1 |
| r | extra waiting spaces; infinity for an unbounded queue |
| patience | the patience law |
| opts | cdf times, truncation controls and inversion settings |
Definition at line 228 of file qsys_mgisrgi_whitt.h.
References line::qsys::QsysAbandonResult< T >::abandonRate, line::qsys::QsysAbandonResult< T >::abandonRates, line::qsys::QsysAbandonResult< T >::cdfWait, line::qsys::QsysAbandonResult< T >::cdfWaitAbandon, line::qsys::QsysAbandonResult< T >::cdfWaitServed, Exponential, line::qsys::QsysAbandonResult< T >::exponentialPatience, line::qsys::Patience< T >::form, line::InputError::InputError(), line::lti::laplace_invert(), line::lti::laplace_method(), line::qsys::QsysAbandonResult< T >::meanNumber, line::qsys::QsysAbandonResult< T >::meanQueueLength, line::qsys::QsysAbandonResult< T >::meanWait, line::qsys::QsysAbandonResult< T >::meanWaitAbandon, line::qsys::QsysAbandonResult< T >::meanWaitServed, line::qsys::QsysAbandonResult< T >::numWaitingSpaces, line::qsys::QsysAbandonResult< T >::patienceRate, line::qsys::QsysAbandonResult< T >::probAbandon, line::qsys::QsysAbandonResult< T >::probLoss, line::qsys::QsysAbandonResult< T >::probNoWait, line::qsys::QsysAbandonResult< T >::probServed, qsys_mgisrgi_whitt(), line::qsys::QsysAbandonResult< T >::queueLengthDist, line::qsys::QsysAbandonResult< T >::secondMomentWait, line::qsys::Patience< T >::theta, line::qsys::QsysAbandonResult< T >::throughput, line::qsys::QsysAbandonResult< T >::totalAbandonRates, line::qsys::QsysAbandonResult< T >::utilization, line::qsys::QsysAbandonResult< T >::varNumber, line::qsys::QsysAbandonResult< T >::varQueueLength, line::qsys::QsysAbandonResult< T >::varWaitAbandon, line::qsys::QsysAbandonResult< T >::varWaitServed, and line::qsys::QsysAbandonResult< T >::waitPoints.
Referenced by qsys_erlanga(), qsys_mgisrgi_whitt(), and line::mva::solver_mva_qsys_analyzer().
| QsysResult< T > line::qsys::qsys_mm1 | ( | const T & | lambda, |
| const T & | mu ) |
Exact mean response time of the M/M/1 queue.
| lambda | arrival rate |
| mu | service rate |
Definition at line 35 of file qsys_mm1.h.
References qsys_mm1().
Referenced by line::fj::fj_respt_2way(), line::fj::fj_rmax(), line::fj::fj_synch_delay(), qsys_gg1(), qsys_mm1(), and line::mva::solver_mva_qsys_analyzer().
| Mm1DpsResult< T > line::qsys::qsys_mm1_dps | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | w ) |
MATLAB defaults: tol = 1e-10, maxCutoff = 2048.
Definition at line 193 of file qsys_mm1_dps.h.
References qsys_mm1_dps().
| Mm1DpsResult< T > line::qsys::qsys_mm1_dps | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | w, | ||
| const T & | tol, | ||
| unsigned | maxCutoff ) |
Multiclass M/M/1 under DPS (discriminatory processor sharing), solved numerically on the truncated population chain.
| lambda | per-class Poisson arrival rates |
| mu | per-class exponential service rates |
| w | per-class DPS weights, positive |
| tol | convergence tolerance on the mean counts (MATLAB 1e-10) |
| maxCutoff | hard bound on the truncation level (MATLAB 2048) |
Definition at line 148 of file qsys_mm1_dps.h.
References line::InputError::InputError(), line::num_abs(), qsys_mm1_dps(), line::qsys::Mm1DpsResult< T >::rho, and line::qsys::Mm1DpsResult< T >::T_.
Referenced by qsys_mm1_dps(), qsys_mm1_dps(), and line::mva::solver_mva_dps_exact().
| LindleyResult< T > line::qsys::qsys_mm1_lindley | ( | const T & | lambda, |
| const T & | mu, | ||
| const std::vector< T > & | Wn, | ||
| unsigned | mmax = 2 ) |
Conditional waiting-time moments of the M/M/1 Lindley recursion.
| lambda | arrival rate, positive |
| mu | service rate, positive |
| Wn | waiting times of customer n, finite and nonnegative |
| mmax | highest moment order; raised to 2 when smaller, as in MATLAB |
Definition at line 71 of file qsys_mm1_lindley.h.
References line::qsys::LindleyResult< T >::analyzer, line::InputError::InputError(), line::Matrix< T >::Matrix(), line::qsys::LindleyResult< T >::mean, line::qsys::LindleyResult< T >::mmax, line::qsys::LindleyResult< T >::moments, qsys_lindley_moment(), qsys_mm1_lindley(), and line::qsys::LindleyResult< T >::var.
Referenced by qsys_mm1_lindley(), and qsys_mm1_lindley().
| LindleyResult< T > line::qsys::qsys_mm1_lindley | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | Wn, | ||
| unsigned | mmax = 2 ) |
| Mm1PsResult< T > line::qsys::qsys_mm1_ps | ( | const std::vector< T > & | lambda, |
| const std::vector< T > & | mu ) |
Exact sojourn-time moments of the multiclass M/M/1-PS queue.
| lambda | per-class Poisson arrival rates, nonnegative |
| mu | per-class exponential service rates, positive |
Definition at line 63 of file qsys_mm1_ps.h.
References line::qsys::Mm1PsResult< T >::alpha, line::InputError::InputError(), qsys_mm1_ps(), line::qsys::Mm1PsResult< T >::W, and line::qsys::Mm1PsResult< T >::W2.
Referenced by qsys_mm1_ps().
| Mm1TandemLindleyResult< T > line::qsys::qsys_mm1_tandem_lindley | ( | const T & | lambda, |
| const T & | mu1, | ||
| const T & | mu2, | ||
| const std::vector< T > & | Wk, | ||
| const std::vector< T > & | Wk1 ) |
Conditional waiting time at the SECOND station of an M/M/1 -> /M/1 tandem.
| lambda | arrival rate at station 1, positive |
| mu1 | service rate at station 1, positive |
| mu2 | service rate at station 2, positive |
| Wk | waiting times at station 1, finite nonnegative |
| Wk1 | waiting times at station 2, same length as Wk |
Definition at line 97 of file qsys_mm1_tandem_lindley.h.
References line::qsys::Mm1TandemLindleyResult< T >::analyzer, line::qsys::Mm1TandemLindleyResult< T >::idleProb, line::InputError::InputError(), line::qsys::Mm1TandemLindleyResult< T >::interdepMean, line::qsys::Mm1TandemLindleyResult< T >::mean, line::num_abs(), and qsys_mm1_tandem_lindley().
Referenced by qsys_mm1_tandem_lindley(), and qsys_mm1_tandem_lindley().
| Mm1TandemLindleyResult< T > line::qsys::qsys_mm1_tandem_lindley | ( | const T & | lambda, |
| const T & | mu1, | ||
| const T & | mu2, | ||
| const T & | Wk, | ||
| const T & | Wk1 ) |
Scalar overload.
Definition at line 141 of file qsys_mm1_tandem_lindley.h.
References qsys_mm1_tandem_lindley().
| Mm1kLossResult< T > line::qsys::qsys_mm1k_loss | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | K ) |
Blocking probability of the M/M/1/K queue.
| lambda | arrival rate |
| mu | service rate |
| K | system capacity, jobs in service included, K >= 1 |
Definition at line 49 of file qsys_mm1k_loss.h.
References line::InputError::InputError(), line::qsys::Mm1kLossResult< T >::lossProbability, line::num_pow_int(), qsys_mm1k_loss(), and line::qsys::Mm1kLossResult< T >::utilization.
Referenced by qsys_mm1k_loss().
| MmapG1kResult< T > line::qsys::qsys_mmapg1k | ( | const Matrix< T > & | D0, |
| const std::vector< Matrix< T > > & | D1c, | ||
| const ServiceLaw< T > & | svc, | ||
| std::size_t | K ) |
qsys_mmapg1k with the qsys_mapg1k defaults tol = 1e-12, nmax = 200000.
Definition at line 146 of file qsys_mmapg1k.h.
References qsys_mmapg1k().
| MmapG1kResult< T > line::qsys::qsys_mmapg1k | ( | const Matrix< T > & | D0, |
| const std::vector< Matrix< T > > & | D1c, | ||
| const ServiceLaw< T > & | svc, | ||
| std::size_t | K, | ||
| const T & | tol, | ||
| std::size_t | nmaxCap ) |
MMAP[K]/G/1/K with tail drop.
| D0 | hidden transition matrix of the arrival MMAP (M x M) |
| D1c | per-class arrival matrices; D0 + sum_k D1c[k] must be an irreducible generator |
| svc | service law, shared by all classes |
| K | buffer size in packets |
| tol | convergence tolerance |
| nmaxCap | cap on the level truncation |
Definition at line 89 of file qsys_mmapg1k.h.
References line::Matrix< T >::cols(), line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::InputError::InputError(), line::qsys::MmapG1kResult< T >::lambda, line::qsys::MmapG1kResult< T >::lambdaAggregate, line::qsys::MmapG1kResult< T >::lossAggregate, line::qsys::MapG1kResult< T >::lossProbability, line::qsys::MmapG1kResult< T >::lossRatio, line::mam::map_prob(), line::Matrix< T >::Matrix(), line::qsys::MapG1kResult< T >::meanQueueLength, line::qsys::MmapG1kResult< T >::meanQueueLength, line::qsys::MapG1kResult< T >::meanServiceTime, line::qsys::MmapG1kResult< T >::meanServiceTime, line::mulvec(), line::ones(), line::qsys::MapG1kResult< T >::p0, line::qsys::MmapG1kResult< T >::p0, line::qsys::MapG1kResult< T >::pK, line::qsys::MmapG1kResult< T >::pK, line::qsys::MapG1kResult< T >::pKvec, line::qsys::MmapG1kResult< T >::pKvec, line::qsys::MapG1kResult< T >::plevel, line::qsys::MmapG1kResult< T >::plevel, qsys_mapg1k(), qsys_mmapg1k(), line::qsys::MapG1kResult< T >::rho, line::qsys::MmapG1kResult< T >::rho, line::Matrix< T >::rows(), line::qsys::MmapG1kResult< T >::throughput, line::qsys::MmapG1kResult< T >::throughputAggregate, line::qsys::MapG1kResult< T >::utilization, and line::qsys::MmapG1kResult< T >::utilization.
Referenced by qsys_mmapg1k(), and qsys_mmapg1k().
| MmapGk1Result< T > line::qsys::qsys_mmapgk1 | ( | const std::vector< Matrix< T > > & | MMAP, |
| const std::vector< lang::Distrib< T > > & | svc ) |
Definition at line 536 of file qsys_mmapgk1.h.
References qsys_mmapgk1().
| MmapGk1Result< T > line::qsys::qsys_mmapgk1 | ( | const std::vector< Matrix< T > > & | MMAP, |
| const std::vector< lang::Distrib< T > > & | svc, | ||
| const std::vector< T > & | w_points, | ||
| std::size_t | num_w_moms, | ||
| double | tol, | ||
| std::size_t | iter_max ) |
MMAP[K]/G[K]/1 FCFS, per type.
| MMAP | LINE convention {D0, D1, D^(1), ..., D^(K)}, D1 = sum_k D^(k) |
| svc | K service laws, one per marked type; families may differ |
| w_points | times at which to evaluate the per-type waiting time CDF |
| num_w_moms | how many per-type waiting time moments to return |
| tol | fixed point tolerance on U |
| iter_max | fixed point iteration cap |
Definition at line 355 of file qsys_mmapgk1.h.
References line::qsys::MmapGk1Result< T >::arrivalRate, line::lang::dist_moment(), line::qsys::MmapGk1Result< T >::idleVector, line::InputError::InputError(), line::inverse(), line::qsys::MmapGk1Result< T >::lambdas, line::matmul(), line::qsys::MmapGk1Result< T >::meanQueueLength, line::qsys::MmapGk1Result< T >::meanSojournTime, line::qsys::MmapGk1Result< T >::meanWaitingTime, line::mulvec(), qsys_mmapgk1(), line::Matrix< T >::rows(), line::qsys::MmapGk1Result< T >::utilization, line::qsys::MmapGk1Result< T >::waitCDF, line::qsys::MmapGk1Result< T >::waitMoments, and line::qsys::MmapGk1Result< T >::waitPoints.
Referenced by qsys_mmapgk1(), and qsys_mmapgk1().
| MmccRetrialFpResult< T > line::qsys::qsys_mmcc_retrial_fp | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | c ) |
qsys_mmcc_retrial_fp with the reference defaults tol = 1e-10, maxiter = 10000.
Definition at line 118 of file qsys_mmcc_retrial_fp.h.
References qsys_mmcc_retrial_fp().
| MmccRetrialFpResult< T > line::qsys::qsys_mmcc_retrial_fp | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | c, | ||
| const T & | tol, | ||
| std::size_t | maxiter ) |
M/M/c/c with retrials by the Cohen fixed point.
| lambda | fresh arrival rate |
| mu | service rate of one server |
| c | number of servers, which is also the capacity |
| tol | stopping tolerance on |r_{k+1} - r_k| |
| maxiter | iteration cap |
Definition at line 81 of file qsys_mmcc_retrial_fp.h.
References line::qsys::MmccRetrialFpResult< T >::blockingProbability, line::qsys::MmccRetrialFpResult< T >::converged, erlang_b_recursive(), line::InputError::InputError(), line::qsys::MmccRetrialFpResult< T >::iterations, line::num_abs(), qsys_mmcc_retrial_fp(), and line::qsys::MmccRetrialFpResult< T >::retrialRate.
Referenced by qsys_mmcc_retrial_fp(), and qsys_mmcc_retrial_fp().
| MmckResult< T > line::qsys::qsys_mmck | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | c, | ||
| unsigned | K ) |
Exact analysis of the M/M/c/K queue (truncated Erlang form).
| lambda | Poisson arrival rate |
| mu | exponential service rate of one server |
| c | number of servers, c >= 1 |
| K | system capacity, K >= c |
Definition at line 63 of file qsys_mmck.h.
References line::InputError::InputError(), line::qsys::MmckResult< T >::lossProbability, line::qsys::MmckResult< T >::meanQueueLength, line::qsys::MmckResult< T >::meanQueueLengthQ, line::qsys::MmckResult< T >::meanSojournTime, line::qsys::MmckResult< T >::meanWaitingTime, line::num_factorial(), line::num_pow_int(), line::NumericError::NumericError(), qsys_mmck(), line::qsys::MmckResult< T >::queueLengthDist, line::qsys::MmckResult< T >::throughput, and line::qsys::MmckResult< T >::utilization.
Referenced by qsys_mmck(), line::mam::solver_mam_basic_mmap_inner(), line::mam::solver_mam_decmmap(), and line::mam::solver_mna_open().
| QsysResult< T > line::qsys::qsys_mmk | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | k ) |
Exact mean response time of the M/M/k queue (Erlang-C).
| lambda | arrival rate |
| mu | service rate of a single server |
| k | number of servers, k >= 1 |
Definition at line 60 of file qsys_mmk.h.
References line::InputError::InputError(), and qsys_mmk().
Referenced by qsys_gigk_approx_cosmetatos(), qsys_gigk_approx_kingman(), qsys_gigk_approx_whitt(), qsys_mmk(), and line::mva::solver_mva_qsys_analyzer().
| QsysQedResult< T > line::qsys::qsys_mmk_qed | ( | const T & | lambda, |
| const T & | mu, | ||
| unsigned | s ) |
Halfin-Whitt QED approximation for the M/M/s queue, and the square-root staffing rule that inverts it.
| lambda | arrival rate |
| mu | service rate of one server |
| s | number of servers, s >= 1 |
Definition at line 134 of file qsys_mmk_qed.h.
References line::qsys::QsysQedResult< T >::beta, line::InputError::InputError(), line::qsys::QsysQedResult< T >::meanNumber, line::qsys::QsysQedResult< T >::meanQueueLength, line::qsys::QsysQedResult< T >::meanWait, line::qsys::QsysQedResult< T >::meanWaitDelayed, line::qsys::QsysQedResult< T >::offeredLoad, line::qsys::QsysQedResult< T >::probDelay, qsys_mmk_qed(), qsys_mmk_qed_alpha(), line::qsys::QsysQedResult< T >::trafficIntensity, and line::qsys::QsysQedResult< T >::utilization.
Referenced by qsys_mmk_qed(), qsys_mmk_qed_staffing(), and line::mva::solver_mva_qsys_analyzer().
| T line::qsys::qsys_mmk_qed_alpha | ( | const T & | beta | ) |
The Halfin-Whitt delay-probability function alpha(beta); 1 at beta <= 0.
| beta | the QED server-slack parameter |
Definition at line 91 of file qsys_mmk_qed.h.
References qsys_mmk_qed_alpha().
Referenced by qsys_mmk_qed(), qsys_mmk_qed_alpha(), and qsys_mmk_qed_staffing().
| T line::qsys::qsys_mmk_qed_erlangc | ( | unsigned | s, |
| const T & | lambda, | ||
| const T & | mu ) |
Erlang C by the Erlang B recursion B_j = a B_{j-1}/(j + a B_{j-1}), which never forms a^j/j!
and so never overflows.
| s | number of servers |
| lambda | arrival rate |
| mu | service rate of one server |
Definition at line 115 of file qsys_mmk_qed.h.
References qsys_mmk_qed_erlangc().
Referenced by qsys_mmk_qed_erlangc().
| QsysQedStaffingResult< T > line::qsys::qsys_mmk_qed_staffing | ( | const T & | lambda, |
| const T & | mu, | ||
| const T & | target, | ||
| QedCriterion | crit = QedCriterion::Delay, | ||
| const T & | deadline = num_traits<T>::from_int(0), | ||
| const T & | level = num_traits<T>::from_int(0), | ||
| bool | exact = false ) |
Square-root staffing of the M/M/s queue.
| lambda | arrival rate |
| mu | service rate of one server |
| target | the largest acceptable P(W>0) for Delay, the largest acceptable E[W] for MeanWait, unused for ServiceLevel |
| crit | which target to meet |
| deadline | the deadline of the service-level criterion |
| level | the probability that deadline must be met with |
| exact | walk s until the EXACT Erlang C measure meets the target |
Definition at line 221 of file qsys_mmk_qed.h.
References line::qsys::QsysQedResult< T >::beta, line::qsys::QsysQedStaffingResult< T >::beta, line::qsys::QsysQedStaffingResult< T >::betaTarget, Delay, line::qsys::QsysQedStaffingResult< T >::exactUsed, line::InputError::InputError(), MeanWait, line::qsys::QsysQedResult< T >::meanWait, line::qsys::QsysQedStaffingResult< T >::meanWait, line::qsys::QsysQedStaffingResult< T >::numServers, line::qsys::QsysQedStaffingResult< T >::offeredLoad, line::qsys::QsysQedResult< T >::probDelay, line::qsys::QsysQedStaffingResult< T >::probDelay, qsys_mmk_qed(), qsys_mmk_qed_alpha(), qsys_mmk_qed_staffing(), ServiceLevel, and line::qsys::QsysQedStaffingResult< T >::serviceLevel.
Referenced by qsys_mmk_qed_staffing().
| QsysMtginfResult< T > line::qsys::qsys_mtginf | ( | const std::function< T(const T &)> & | lambdaFun, |
| const std::function< T(const T &)> & | serviceCcdf, | ||
| const T & | ES, | ||
| const std::vector< T > & | tvals, | ||
| double | startTime = -std::numeric_limits<double>::infinity(), | ||
| double | ES2 = std::numeric_limits<double>::quiet_NaN(), | ||
| const std::function< T(const T &)> & | servicePdf = std::function<T(const T&)>(), | ||
| double | tol = 1e-12, | ||
| std::size_t | panels = 4000, | ||
| double | maxAge = 1e12 ) |
Exact time-varying analysis of the Mt/G/infinity queue.
| lambdaFun | the arrival rate; must accept arguments in the past when startTime is infinite |
| serviceCcdf | G^c(x) = P(S > x) |
| ES | the mean service time |
| tvals | the times at which to evaluate |
| startTime | time the system started empty; -Inf assumes an infinite past |
| ES2 | the second moment of the service time; NaN skips the lag |
| servicePdf | the service density for the exact departure rate, or empty |
| tol | service-tail cut for the age integral |
| panels | Simpson panels for that integral |
| maxAge | cap on the age integrated over |
Definition at line 166 of file qsys_mtginf.h.
References line::qsys::QsysMtginfResult< T >::arrivalRate, line::qsys::QsysMtginfResult< T >::departureRate, line::qsys::QsysMtginfResult< T >::hasLag, line::InputError::InputError(), line::qsys::QsysMtginfResult< T >::lagApproximation, line::qsys::QsysMtginfResult< T >::meanLag, line::qsys::QsysMtginfResult< T >::meanNumber, line::qsys::QsysMtginfResult< T >::offeredLoadPSA, qsys_mtginf(), line::qsys::QsysMtginfResult< T >::times, and line::qsys::QsysMtginfResult< T >::varNumber.
Referenced by qsys_mtginf(), qsys_mtgs0_mol(), and line::fluid::solver_fluid_qsys().
| QsysMolResult< T > line::qsys::qsys_mtgs0_mol | ( | const std::function< T(const T &)> & | lambdaFun, |
| const std::function< T(const T &)> & | serviceCcdf, | ||
| const T & | ES, | ||
| unsigned | s, | ||
| const std::vector< T > & | tvals, | ||
| double | startTime = -std::numeric_limits<double>::infinity(), | ||
| bool | delay = false ) |
Modified-offered-load and pointwise-stationary approximations for a time-varying multiserver system.
| lambdaFun | the arrival rate |
| serviceCcdf | G^c(x) = P(S > x) |
| ES | the mean service time |
| s | number of servers |
| tvals | times at which to evaluate |
| startTime | time the system started empty; -Inf assumes an infinite past |
| delay | use Erlang C rather than Erlang B |
Definition at line 112 of file qsys_mtgs0_mol.h.
References line::qsys::QsysMolResult< T >::arrivalRate, line::qsys::QsysMtginfResult< T >::arrivalRate, line::InputError::InputError(), line::qsys::QsysMolResult< T >::instantLoad, line::qsys::QsysMolResult< T >::meanBusyMOL, line::qsys::QsysMtginfResult< T >::meanNumber, line::qsys::QsysMolResult< T >::offeredLoad, line::qsys::QsysMtginfResult< T >::offeredLoadPSA, line::qsys::QsysMolResult< T >::probBlockMOL, line::qsys::QsysMolResult< T >::probBlockPSA, qsys_erlang_b(), qsys_erlang_c(), qsys_mtginf(), qsys_mtgs0_mol(), line::qsys::QsysMolResult< T >::times, and line::qsys::QsysMtginfResult< T >::times.
Referenced by qsys_mtgs0_mol(), and line::fluid::solver_fluid_qsys().
| MxM1Result< T > line::qsys::qsys_mxm1 | ( | const T & | lambda_batch, |
| const T & | mu, | ||
| const T & | E_X, | ||
| const T & | E_X2 ) |
M^X/M/1: the batch-arrival queue with exponential service.
| lambda_batch | batch arrival rate |
| mu | service rate |
| E_X | mean batch size |
| E_X2 | second raw moment of the batch size |
Definition at line 59 of file qsys_mxm1.h.
References line::InputError::InputError(), line::qsys::MxM1Result< T >::Q, qsys_mxm1(), line::qsys::MxM1Result< T >::U, line::qsys::MxM1Result< T >::W, and line::qsys::MxM1Result< T >::Wq.
Referenced by qsys_mxm1(), qsys_mxm1_pmf(), and qsys_mxm1_variance().
| MxM1Result< T > line::qsys::qsys_mxm1_pmf | ( | const T & | lambda_batch, |
| const T & | mu, | ||
| const std::vector< T > & | batch_sizes, | ||
| const std::vector< T > & | pmf ) |
Support-and-pmf form: MATLAB's qsys_mxm1(..., batch_sizes, pmf).
The pmf is renormalized, as in MATLAB, so an unnormalized weight vector is accepted.
Definition at line 85 of file qsys_mxm1.h.
References line::InputError::InputError(), qsys_mxm1(), and qsys_mxm1_pmf().
Referenced by qsys_mxm1_pmf().
| MxM1Result< T > line::qsys::qsys_mxm1_variance | ( | const T & | lambda_batch, |
| const T & | mu, | ||
| const T & | E_X, | ||
| const T & | Var_X ) |
Variance form: MATLAB's qsys_mxm1(..., Var_X, 'variance').
Definition at line 75 of file qsys_mxm1.h.
References qsys_mxm1(), and qsys_mxm1_variance().
Referenced by qsys_mxm1_variance().
| PhM1Result< T > line::qsys::qsys_phm1 | ( | const std::vector< T > & | alpha, |
| const Matrix< T > & | Tm, | ||
| const T & | mu ) |
qsys_phm1 with the fzero-equivalent default bracket tolerance.
Definition at line 139 of file qsys_phm1.h.
References qsys_phm1().
| PhM1Result< T > line::qsys::qsys_phm1 | ( | const std::vector< T > & | alpha, |
| const Matrix< T > & | Tm, | ||
| const T & | mu, | ||
| const T & | tol ) |
Exact PH/M/1, the GI/M/1 queue with phase-type interarrival times.
| alpha | PH entry probability vector, length k |
| Tm | PH sub-generator, k x k |
| mu | exponential service rate |
| tol | width of the bisection bracket at which to stop (MATLAB's fzero stops at the double round-off level, so 1e-16 is the matching default) |
Definition at line 92 of file qsys_phm1.h.
References line::Matrix< T >::cols(), line::InputError::InputError(), line::qsys::PhM1Result< T >::meanQueueLength, line::qsys::PhM1Result< T >::meanSojournTime, line::qsys::PhM1Result< T >::meanWaitingQueue, line::qsys::PhM1Result< T >::meanWaitingTime, line::ones(), qsys_phm1(), line::Matrix< T >::rows(), line::qsys::PhM1Result< T >::sigma, line::solve(), and line::qsys::PhM1Result< T >::utilization.
Referenced by qsys_phm1(), qsys_phm1(), and line::mva::solver_mva_qsys_analyzer().
| PhMcResult< T > line::qsys::qsys_phmc | ( | const std::vector< T > & | alpha, |
| const Matrix< T > & | Tm, | ||
| const T & | mu, | ||
| unsigned | c ) |
qsys_phmc with the MATLAB defaults, 50000 iterations and tolerance 1e-14.
Definition at line 233 of file qsys_phmc.h.
References qsys_phmc().
| PhMcResult< T > line::qsys::qsys_phmc | ( | const std::vector< T > & | alpha, |
| const Matrix< T > & | Tm, | ||
| const T & | mu, | ||
| unsigned | c, | ||
| unsigned | maxIter, | ||
| const T & | tol ) |
Exact PH/M/c by Neuts' matrix-geometric method.
| alpha | PH entry probability vector, length k |
| Tm | PH sub-generator, k x k |
| mu | exponential service rate of one server |
| c | number of servers, c >= 1 |
| maxIter | iteration budget for the R fixed point (MATLAB 50000) |
| tol | convergence tolerance on R (MATLAB 1e-14) |
Definition at line 97 of file qsys_phmc.h.
References line::Matrix< T >::cols(), line::InputError::InputError(), line::inverse(), line::matmul(), line::qsys::PhMcResult< T >::meanQueueLength, line::qsys::PhMcResult< T >::meanSojournTime, line::qsys::PhMcResult< T >::meanWaitingQueue, line::qsys::PhMcResult< T >::meanWaitingTime, line::mulvec(), line::num_abs(), line::ones(), qsys_phmc(), line::Matrix< T >::rows(), line::solve(), and line::qsys::PhMcResult< T >::utilization.
Referenced by qsys_phmc(), and qsys_phmc().
| MapMap1Result< T > line::qsys::qsys_phph1 | ( | const std::vector< T > & | alpha, |
| const Matrix< T > & | Tm, | ||
| const std::vector< T > & | beta, | ||
| const Matrix< T > & | S ) |
qsys_phph1 with 100 materialized levels, the reference's numQLProbs.
Definition at line 88 of file qsys_phph1.h.
References qsys_phph1().
| MapMap1Result< T > line::qsys::qsys_phph1 | ( | const std::vector< T > & | alpha, |
| const Matrix< T > & | Tm, | ||
| const std::vector< T > & | beta, | ||
| const Matrix< T > & | S, | ||
| std::size_t | dist_size ) |
PH/PH/1 by the exact QBD solution of the equivalent MAP/MAP/1 queue.
| alpha | PH arrival entry vector, length n |
| Tm | PH arrival sub-generator, n x n |
| beta | PH service entry vector, length m |
| S | PH service sub-generator, m x m |
| dist_size | how many entries of queueLengthDist to materialize |
Definition at line 78 of file qsys_phph1.h.
References qsys_mapmap1(), and qsys_phph1().
Referenced by qsys_phph1(), and qsys_phph1().
| TandemLindleyResult< T > line::qsys::qsys_tandem_lindley | ( | const std::vector< T > & | A, |
| const Matrix< T > & | S, | ||
| const std::vector< T > & | W0 = std::vector<T>() ) |
Sample-path Lindley recursion along a tandem of single-server FCFS queues.
| A | (N) interarrival times at the first station, finite nonnegative |
| S | (N x K) service times, finite nonnegative |
| W0 | (K) initial waiting times, one per station; empty means all zero |
Definition at line 73 of file qsys_tandem_lindley.h.
References line::qsys::TandemLindleyResult< T >::analyzer, line::Matrix< T >::cols(), line::qsys::TandemLindleyResult< T >::departure, line::qsys::TandemLindleyResult< T >::G, line::InputError::InputError(), line::Matrix< T >::Matrix(), qsys_tandem_lindley(), line::Matrix< T >::rows(), line::qsys::TandemLindleyResult< T >::T_, and line::qsys::TandemLindleyResult< T >::W.
Referenced by qsys_tandem_lindley().
| TandemUbResult< T > line::qsys::qsys_tandem_ub_ciucu | ( | const std::vector< T > & | x, |
| const std::function< T(const T &)> & | lst, | ||
| const std::vector< T > & | p, | ||
| const std::vector< T > & | mu, | ||
| const std::function< T(const T &)> & | dlst = std::function<T(const T&)>() ) |
Tail bounds for a GI/Hn/1 -> .
/Hn/1 tandem of two FCFS single servers.
| x | thresholds at which the tails are bounded, nonnegative |
| lst | interarrival transform, s -> E[e^{-s X}] for s >= 0 |
| p | service phase probabilities, nonnegative and summing to one |
| mu | service phase rates, positive |
| dlst | s -> E[X e^{-s X}], minus the derivative of lst; empty to obtain it by a Richardson-extrapolated central difference, which costs four extra transform evaluations and loses roughly four digits |
Definition at line 105 of file qsys_tandem_ub_ciucu.h.
References line::qsys::TandemUbResult< T >::A, line::qsys::TandemUbResult< T >::alpha, line::qsys::TandemUbResult< T >::analyzer, line::qsys::TandemUbResult< T >::B, line::qsys::TandemUbResult< T >::C, line::qsys::TandemUbResult< T >::D, line::InputError::InputError(), qsys_tandem_ub_ciucu(), line::RootResult< T >::root, line::root_brent(), line::qsys::TandemUbResult< T >::S, line::qsys::TandemUbResult< T >::theta, and line::qsys::TandemUbResult< T >::W.
Referenced by qsys_tandem_ub_ciucu().