![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Namespaces | |
| namespace | mgck_sync_detail |
| namespace | mmapmap1detail |
Classes | |
| struct | BmapM1Result |
| Everything qsys_bmapm1 returns, mirroring the MATLAB result struct. More... | |
| struct | BmapPhNnRetrialOptions |
| Options of qsys_bmapphnn_retrial (the name-value pairs of the .m file). 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 | MgckSyncResult |
| Return value of qsys_mgck_sync, mirroring the MATLAB result struct. 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 | MmapGk1Service |
| One marked type's service law, in any of the three forms the reference accepts: a Distribution object, a (D0, D1) MAP pair, or a transform struct. More... | |
| struct | MmapGk1Transform |
| A service law given by its transform, the reference's struct form struct('lst', @(s) ..., 'moments', [m1 m2 ...]): the LST at a complex argument and its raw moments, of which at least numWMoms + 1 are needed. More... | |
| struct | MmapMap1Result |
| Return value of qsys_mmapmap1, 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 | SvclawCoeffsResult |
| Outputs [cn, Smean] of qsys_svclaw_coeffs.m, plus the truncation residual. 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 | RetrialPolicy { LINEAR , CONSTANT } |
| Retrial admission policy (RetrialPolicy in MATLAB). More... | |
| 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::function< std::vector< std::vector< Tv > >(const Tv &)> &Pfun, 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 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) |
| Constant routing matrix: MATLAB's matrix form of P, the same at every step. | |
| 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, std::size_t num_steps) |
| 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, std::size_t dist_size, unsigned max_arrivals, std::size_t max_levels, const T &tol) |
| qsys_mapd1 with the reference's numSteps = 1. | |
| 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, std::size_t num_steps) |
| 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, std::size_t dist_size, unsigned max_arrivals, std::size_t max_levels, const T &tol) |
| qsys_mapdc with the reference's numSteps = 1. | |
| 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, std::size_t numQLMoms, std::size_t numSTMoms) |
| The MAP/G/1 FCFS queue. | |
| template<class T> | |
| MapG1Result< T > | qsys_mapg1 (const mam::Map< T > &arrival, const std::vector< T > &moments, std::size_t dist_size) |
| qsys_mapg1 with the reference's defaults numQLMoms = 3, numSTMoms = 3. | |
| 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> | |
| SvclawCoeffsResult< T > | qsys_svclaw_coeffs (const ServiceLaw< T > &svc, const T &theta, const T &tol, std::size_t nmaxCap) |
| qsys_svclaw_coeffs: uniformization coefficients of a service-time descriptor; see qsys_svclaw_coeffs.h. | |
| 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, std::size_t numQLMoms, std::size_t numSTMoms) |
| MAP/MAP/1 as the reference solves it: the service MAP collapsed to its PH marginal (mapToPh), then the MAP/PH/1 queue by the exact QBD solution. | |
| template<class T> | |
| MapMap1Result< T > | qsys_mapmap1 (const mam::Map< T > &arrival, const mam::Map< T > &service, std::size_t dist_size) |
| qsys_mapmap1 with the reference's defaults numQLMoms = 3, numSTMoms = 3. | |
| 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> | |
| MapPhcResult< T > | qsys_mapmapc (const mam::Map< T > &arrival, const mam::Map< T > &service, unsigned c, std::size_t dist_size=500, std::size_t num_w_moms=3) |
| MAP/MAP/c FCFS with the service phase carried in start order, exactly. | |
| 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 500 materialized levels, the reference's maxNumComp default. | |
| 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. | |
| Mg1PsResult | qsys_mg1_ps (double lambda, const std::function< Cplx(const Cplx &)> &bhat, double m1, const Mg1PsOptions &opt) |
| Sojourn-time distribution of the M/G/1-PS queue for a service law given by its Laplace-Stieltjes transform, the reference's second form qsys_mg1_ps(lambda, bhat, m1, ...). | |
| 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> | |
| MgckSyncResult< T > | qsys_mgck_sync (const T &lambda, std::size_t c, std::size_t K, const ServiceLaw< T > &svc, const std::string &variant, std::size_t nphases, const T &tol, std::size_t nmaxCap) |
| Synchronous approximation of the M/G/c/K queue with dual bounds. | |
| template<class T> | |
| MgckSyncResult< T > | qsys_mgck_sync (const T &lambda, std::size_t c, std::size_t K, const ServiceLaw< T > &svc, const std::string &variant, std::size_t nphases=0) |
| qsys_mgck_sync with the reference defaults tol = 1e-12, nmax = 200000. | |
| 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< MmapGk1Service< T > > &svc, const std::vector< T > &w_points, std::size_t num_w_moms, double tol, std::size_t iter_max, std::size_t quad_nodes) |
| MMAP[K]/G[K]/1 FCFS, per type. | |
| template<class T> | |
| MmapGk1Result< T > | qsys_mmapgk1 (const std::vector< Matrix< T > > &MMAP, const std::vector< MmapGk1Service< T > > &svc, const std::vector< T > &w_points, std::size_t num_w_moms, double tol, std::size_t iter_max) |
| qsys_mmapgk1 on service variants with the reference's quadNodes = 120. | |
| 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) |
| qsys_mmapgk1 on Distribution objects. | |
| template<class T> | |
| MmapGk1Result< T > | qsys_mmapgk1 (const std::vector< Matrix< T > > &MMAP, const std::vector< lang::Distrib< T > > &svc) |
| qsys_mmapgk1 on Distribution objects with the reference's defaults. | |
| template<class T> | |
| MmapGk1Result< T > | qsys_mmapgk1 (const std::vector< Matrix< T > > &MMAP, const std::vector< MmapGk1Service< T > > &svc) |
| qsys_mmapgk1 on service variants with the reference's defaults. | |
| template<class T> | |
| MmapMap1Result< T > | qsys_mmapmap1 (const mam::Mmap< T > &arrival, const std::vector< mam::Map< T > > &svc, std::vector< bool > carry=std::vector< bool >()) |
| MMAP[K]/MAP[K]/1 FCFS with per-class carried service phases, exactly. | |
| 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 88 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 108 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 |
Retrial admission policy (RetrialPolicy in MATLAB).
| Enumerator | |
|---|---|
| LINEAR | each orbiting customer retries at rate alpha (orbit rate i*alpha) |
| CONSTANT | the orbit retries at rate alpha whenever it is non-empty |
Definition at line 104 of file qsys_bmapphnn_retrial.h.
|
strong |
Which family the service law belongs to.
| Enumerator | |
|---|---|
| Gamma | |
| Deterministic | |
| PhaseType | |
| Density | |
Definition at line 100 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::function< std::vector< std::vector< Tv > >(const Tv &)> & | Pfun, | ||
| 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 |
| Pfun | routing proportions P(t), substochastic at every grid time; the overload below takes a constant matrix |
| 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 333 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(), and npfqn_gtmtst_fluid().
| 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 ) |
Constant routing matrix: MATLAB's matrix form of P, the same at every step.
Definition at line 430 of file qsys_gtmtst_fluid.h.
References 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 364 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 464 of file qsys_bmapphnn_retrial.h.
References line::qsys::BmapPhNnRetrialResult< T >::clipped, line::Matrix< T >::cols(), CONSTANT, line::qsys::BmapPhNnRetrialResult< T >::converged, line::lang::GlobalConstants::FineTol, line::InputError::InputError(), line::inverse(), line::qsys::BmapPhNnRetrialResult< T >::L_orbit, line::qsys::BmapPhNnRetrialResult< T >::L_system, 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 >::truncError, 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 853 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 558 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 ) |
qsys_mapd1 with the reference's numSteps = 1.
Definition at line 547 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, | ||
| std::size_t | num_steps ) |
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 |
| num_steps | the reference's numSteps: waitingTimeDist is evaluated at {0, s/numSteps, 2 s/numSteps, ...} (default 1) |
Definition at line 330 of file qsys_mapd1.h.
References line::qsys::MapD1Result< T >::analyzer, line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::eye(), line::InputError::InputError(), line::inverse(), line::mam::map_lambda(), line::mam::map_prob(), 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, line::vecmul(), and line::qsys::MapD1Result< T >::waitingTimeDist.
Referenced by qsys_mapd1(), 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 347 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 ) |
qsys_mapdc with the reference's numSteps = 1.
Definition at line 334 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, | ||
| std::size_t | num_steps ) |
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 |
| num_steps | the reference's numSteps: waitingTimeDist is evaluated at {0, s/numSteps, 2 s/numSteps, ...} (default 1) |
Definition at line 157 of file qsys_mapdc.h.
References line::qsys::MapDcResult< T >::analyzer, line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::eye(), line::InputError::InputError(), line::inverse(), line::mam::map_lambda(), line::mam::map_prob(), 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, line::vecmul(), and line::qsys::MapDcResult< T >::waitingTimeDist.
Referenced by qsys_mapdc(), 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 379 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 ) |
qsys_mapg1 with the reference's defaults numQLMoms = 3, numSTMoms = 3.
Definition at line 371 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, | ||
| std::size_t | numQLMoms, | ||
| std::size_t | numSTMoms ) |
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) |
| numQLMoms | how many raw queue-length moments to return (numQLMoms) |
| numSTMoms | how many raw sojourn-time moments to return (numSTMoms) |
Definition at line 343 of file qsys_mapg1.h.
References line::qsys::MapG1Result< T >::analyzer, 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 >::queueLengthMoments, line::qsys::MapMap1Result< T >::queueLengthMoments, line::qsys::MapG1Result< T >::serviceFit, line::qsys::MapG1Result< T >::servicePhases, line::qsys::MapG1Result< T >::sojournTimeMoments, line::qsys::MapMap1Result< T >::sojournTimeMoments, and line::qsys::MapG1Result< T >::utilization.
Referenced by qsys_mapg1(), 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 280 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 711 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 467 of file qsys_mapg1k.h.
References line::qsys::SvclawCoeffsResult< T >::cn, 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(), qsys_svclaw_coeffs(), line::qsys::SvclawCoeffsResult< T >::residual, line::qsys::MapG1kResult< T >::rho, line::qsys::MapG1kResult< T >::sigma, line::qsys::SvclawCoeffsResult< T >::Smean, 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 251 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 ) |
qsys_mapmap1 with the reference's defaults numQLMoms = 3, numSTMoms = 3.
Definition at line 243 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, | ||
| std::size_t | numQLMoms, | ||
| std::size_t | numSTMoms ) |
MAP/MAP/1 as the reference solves it: the service MAP collapsed to its PH marginal (mapToPh), then the MAP/PH/1 queue by the exact QBD solution.
| arrival | arrival MAP (C0, C1) |
| service | service MAP (D0, D1); its correlation is discarded, as in the reference (see the file comment) |
| dist_size | how many entries of queueLengthDist to materialize (the reference's numQLProbs) |
| numQLMoms | how many raw queue-length moments to return |
| numSTMoms | how many raw sojourn-time moments to return |
Definition at line 177 of file qsys_mapmap1.h.
References line::mam::Map< T >::D0, line::mam::Mmap< T >::D0, line::mam::Map< T >::D1, line::mam::Mmap< T >::D1, line::mam::Mmap< T >::Dc, line::InputError::InputError(), line::mam::map_lambda(), line::Matrix< T >::Matrix(), line::qsys::MapMap1Result< T >::meanQueueLength, line::qsys::MapMap1Result< T >::meanSojournTime, line::qsys::MapMap1Result< T >::meanWaitingTime, line::mam::mmapph1fcfs_stdistr_ph(), line::mam::QbdMapMap1Result< T >::pi0, line::mam::QbdMapMap1Result< T >::pqueue, line::mam::qbd_mapmap1(), line::mam::qbd_qlen_moment(), qsys_mapmap1(), line::qsys::MapMap1Result< T >::queueLengthDist, line::qsys::MapMap1Result< T >::queueLengthMoments, line::mam::QbdMapMap1Result< T >::R, line::Matrix< T >::rows(), line::qsys::MapMap1Result< T >::sojournTimeMoments, and line::qsys::MapMap1Result< T >::utilization.
Referenced by qsys_mapg1(), qsys_mapmap1(), qsys_mapmap1(), qsys_mapmap1(), qsys_mapph1(), and qsys_phph1().
| MapPhcResult< T > line::qsys::qsys_mapmapc | ( | const mam::Map< T > & | arrival, |
| const mam::Map< T > & | service, | ||
| unsigned | c, | ||
| std::size_t | dist_size = 500, | ||
| std::size_t | num_w_moms = 3 ) |
MAP/MAP/c FCFS with the service phase carried in start order, exactly.
| arrival | arrival MAP (D0, D1) of order ma |
| service | service MAP (S0, S1) of order p |
| 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 (0: E[Wq] by Little) |
Returns the MapPhcResult struct; phaseCount is the repeating configuration count.
Definition at line 65 of file qsys_mapmapc.h.
References line::Matrix< T >::cols(), line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::eye(), line::InputError::InputError(), line::inverse(), line::mam::ldqbd_mphc(), 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::LdqbdMphcBlocks< T >::Q0, line::mam::LdqbdMphcBlocks< T >::Q1, line::mam::LdqbdMphcBlocks< T >::Q2, line::mam::qbd_R_logred(), qsys_mapmapc(), line::qsys::MapPhcResult< T >::queueLengthDist, line::Matrix< T >::rows(), line::solve(), line::qsys::MapPhcResult< T >::utilization, and line::qsys::MapPhcResult< T >::waitingTimeMoments.
Referenced by qsys_mapmapc(), and line::mam::solver_mam_basic_mmap_inner().
| MapMcResult< T > line::qsys::qsys_mapmc | ( | const mam::Map< T > & | arrival, |
| const T & | mu, | ||
| unsigned | c ) |
qsys_mapmc with 500 materialized levels, the reference's maxNumComp default.
Definition at line 224 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 104 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-PS queue for a service law given by its Laplace-Stieltjes transform, the reference's second form qsys_mg1_ps(lambda, bhat, m1, ...).
f(tau; s) is inverted in tau numerically on a Bromwich contour placed 0.25 (1-rho)/m1 to the right of the dominant root tau*(s). The service density opt.pdf is needed to remove the conditioning (lstUncond, lstUncondVal, m2Uncond, varUncond are NaN or unavailable without it), m2 is NaN, and a time grid opt.t is refused, as in the reference: inverting a numerically inverted transform is unstable in double precision.
| lambda | arrival rate, finite and positive |
| bhat | service LST, accepting complex arguments |
| m1 | mean service time |
| opt | grids and tuning |
Definition at line 731 of file qsys_mg1_ps.h.
References line::InputError::InputError(), and qsys_mg1_ps().
|
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 485 of file qsys_mg1_ps.h.
References line::Matrix< T >::cols(), line::expm(), line::InputError::InputError(), line::ones(), qsys_mg1_ps(), line::Matrix< T >::rows(), and line::solve().
Referenced by qsys_mg1_ps(), and 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::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().
| MgckSyncResult< T > line::qsys::qsys_mgck_sync | ( | const T & | lambda, |
| std::size_t | c, | ||
| std::size_t | K, | ||
| const ServiceLaw< T > & | svc, | ||
| const std::string & | variant, | ||
| std::size_t | nphases, | ||
| const T & | tol, | ||
| std::size_t | nmaxCap ) |
Synchronous approximation of the M/G/c/K queue with dual bounds.
| lambda | Poisson arrival rate (> 0) |
| c | number of identical FCFS servers (>= 1) |
| K | system capacity, jobs in service included (K >= c) |
| svc | service law, as for qsys_mapg1k |
| variant | "faster" (lower bounds on the queue) or "slower" (upper bounds) |
| nphases | 0 for the approximation without expansion; N >= 1 for the synchronous phase expansion, deterministic service only |
| tol | uniformization truncation tolerance |
| nmaxCap | cap on the uniformization order |
Definition at line 425 of file qsys_mgck_sync.h.
References line::qsys::MgckSyncResult< T >::analyzer, line::qsys::ServiceLaw< T >::det, Deterministic, line::qsys::mgck_sync_detail::expanded(), line::InputError::InputError(), line::qsys::ServiceLaw< T >::kind, line::qsys::MgckSyncResult< T >::lossProbability, line::qsys::MgckSyncResult< T >::meanQueueLength, line::qsys::MgckSyncResult< T >::meanQueueLengthQ, line::qsys::MgckSyncResult< T >::meanSojournTime, line::qsys::MgckSyncResult< T >::meanWaitingTime, line::qsys::MgckSyncResult< T >::nphases, line::qsys::MgckSyncResult< T >::p0, line::qsys::MgckSyncResult< T >::pK, line::qsys::mgck_sync_detail::plain(), qsys_mgck_sync(), line::qsys::MgckSyncResult< T >::queueLengthDist, line::qsys::MgckSyncResult< T >::stateSpaceSize, line::qsys::MgckSyncResult< T >::throughput, line::UnsupportedError::UnsupportedError(), line::qsys::MgckSyncResult< T >::utilization, and line::qsys::MgckSyncResult< T >::variant.
Referenced by qsys_mgck_sync(), qsys_mgck_sync(), and line::mam::solver_mam_sync().
| MgckSyncResult< T > line::qsys::qsys_mgck_sync | ( | const T & | lambda, |
| std::size_t | c, | ||
| std::size_t | K, | ||
| const ServiceLaw< T > & | svc, | ||
| const std::string & | variant, | ||
| std::size_t | nphases = 0 ) |
qsys_mgck_sync with the reference defaults tol = 1e-12, nmax = 200000.
Definition at line 487 of file qsys_mgck_sync.h.
References qsys_mgck_sync().
| 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 53 of file qsys_mm1k_loss.h.
References line::lang::GlobalConstants::FineTol, 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(), and line::nc::solver_nc_solve().
| 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 ) |
qsys_mmapgk1 on Distribution objects with the reference's defaults.
Definition at line 828 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 ) |
qsys_mmapgk1 on Distribution objects.
Definition at line 815 of file qsys_mmapgk1.h.
References qsys_mmapgk1().
| MmapGk1Result< T > line::qsys::qsys_mmapgk1 | ( | const std::vector< Matrix< T > > & | MMAP, |
| const std::vector< MmapGk1Service< T > > & | svc ) |
qsys_mmapgk1 on service variants with the reference's defaults.
Definition at line 836 of file qsys_mmapgk1.h.
References qsys_mmapgk1().
| MmapGk1Result< T > line::qsys::qsys_mmapgk1 | ( | const std::vector< Matrix< T > > & | MMAP, |
| const std::vector< MmapGk1Service< T > > & | svc, | ||
| const std::vector< T > & | w_points, | ||
| std::size_t | num_w_moms, | ||
| double | tol, | ||
| std::size_t | iter_max ) |
qsys_mmapgk1 on service variants with the reference's quadNodes = 120.
Definition at line 805 of file qsys_mmapgk1.h.
References qsys_mmapgk1().
| MmapGk1Result< T > line::qsys::qsys_mmapgk1 | ( | const std::vector< Matrix< T > > & | MMAP, |
| const std::vector< MmapGk1Service< T > > & | svc, | ||
| const std::vector< T > & | w_points, | ||
| std::size_t | num_w_moms, | ||
| double | tol, | ||
| std::size_t | iter_max, | ||
| std::size_t | quad_nodes ) |
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, each a Distribution object, a (D0, D1) MAP pair or a transform struct |
| 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 (the reference's 10000) |
| quad_nodes | the reference's quadNodes (default 120): the Stieltjes fallback uses max(quadNodes, 20) * 20 CDF increments |
Definition at line 623 of file qsys_mmapgk1.h.
References line::qsys::MmapGk1Result< T >::arrivalRate, 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(), qsys_mmapgk1(), qsys_mmapgk1(), qsys_mmapgk1(), and qsys_mmapgk1().
| MmapMap1Result< T > line::qsys::qsys_mmapmap1 | ( | const mam::Mmap< T > & | arrival, |
| const std::vector< mam::Map< T > > & | svc, | ||
| std::vector< bool > | carry = std::vector<bool>() ) |
MMAP[K]/MAP[K]/1 FCFS with per-class carried service phases, exactly.
| arrival | marked arrival process (D0, D1, Dc[0..K-1]) |
| svc | svc[k] = (S0, S1), the service MAP of class k |
| carry | per-class flags of the carried classes; empty for every arriving class whose MAP is not renewal |
Definition at line 96 of file qsys_mmapmap1.h.
References line::qsys::MmapMap1Result< T >::arrivalRate, line::qsys::MmapMap1Result< T >::carry, line::mam::Mmap< T >::D0, line::mam::Mmap< T >::D1, line::mam::Mmap< T >::Dc, line::eye(), line::InputError::InputError(), line::inverse(), line::qsys::mmapmap1detail::is_renewal(), line::mam::kron(), line::mam::map_pie(), line::mam::map_prob(), line::qsys::MmapMap1Result< T >::markCount, line::matmul(), line::Matrix< T >::Matrix(), line::qsys::MmapMap1Result< T >::meanQueueLength, line::qsys::MmapMap1Result< T >::meanSojournTime, line::mam::mmapph1fcfs_ncmean(), and qsys_mmapmap1().
Referenced by qsys_mmapmap1(), and line::mam::solver_mam_basic_mmap_inner().
| 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(), line::mva::solver_mva_qsys_analyzer(), and line::nc::solver_nc().
| 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().
| SvclawCoeffsResult< T > line::qsys::qsys_svclaw_coeffs | ( | const ServiceLaw< T > & | svc, |
| const T & | theta, | ||
| const T & | tol, | ||
| std::size_t | nmaxCap ) |
qsys_svclaw_coeffs: uniformization coefficients of a service-time descriptor; see qsys_svclaw_coeffs.h.
Defined here because qsys_mapg1k calls it.
Definition at line 437 of file qsys_mapg1k.h.
References line::qsys::SvclawCoeffsResult< T >::cn, line::util::LineConsole::get_verbose(), qsys_svclaw_coeffs(), line::qsys::SvclawCoeffsResult< T >::residual, line::util::SILENT, and line::qsys::SvclawCoeffsResult< T >::Smean.
Referenced by line::qsys::mgck_sync_detail::coefficients(), qsys_mapg1k(), and qsys_svclaw_coeffs().
| 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().