LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::qsys Namespace Reference

Classes

struct  BmapM1Result
 Everything qsys_bmapm1 returns, mirroring the MATLAB result struct. More...
struct  BmapPhNnRetrialOptions
 Options of qsys_bmapphnn_retrial. More...
struct  BmapPhNnRetrialResult
 Result of qsys_bmapphnn_retrial. More...
struct  DmcResult
struct  Gig1ExtremalResult
 The bounds, all as TIMES IN QUEUE: add 1/mu for a response time. More...
struct  Gig1RqResult
struct  GigkRqtResult
struct  LdpsWorkloadResult
 Return value of qsys_ldps_workload, mirroring the three MATLAB outputs. More...
struct  LindleyResult
 Mirrors the struct MATLAB returns from qsys_mm1_lindley. More...
struct  MapD1Result
 Return value of qsys_mapd1, mirroring the MATLAB result struct. More...
struct  MapDcResult
 Return value of qsys_mapdc, mirroring the MATLAB result struct. More...
struct  MapG1kPerflowResult
 Return value of qsys_mapg1k_perflow, mirroring the MATLAB result struct. More...
struct  MapG1kResult
 Return value of qsys_mapg1k, mirroring the MATLAB result struct. More...
struct  MapG1Result
 Result of qsys_mapg1. More...
struct  MapMap1Result
 Return value of the MAP/MAP/1 family (qsys_mapmap1, qsys_mapph1, qsys_phph1), carrying the same quantities as the MATLAB result struct. More...
struct  MapMcResult
 Return value of qsys_mapmc and qsys_mapm1, mirroring the MATLAB struct. More...
struct  MapPhcResult
 Return value of qsys_mapphc, mirroring the MATLAB struct. More...
struct  MaximaResult
 Two-moment description of a maximum. More...
struct  MDcCrommelinResult
struct  Mg1DisciplineResult
struct  Mg1kLossMgsResult
struct  Mg1kLossResult
struct  Mg1PrioResult
struct  Mg1PsOptions
 Options of qsys_mg1_ps, mirroring the reference's name-value pairs. More...
struct  Mg1PsResult
 Everything qsys_mg1_ps returns. More...
struct  MginfResult
 Return value of qsys_mginf, mirroring MATLAB's [L,Lq,W,Wq,p0,pk]. More...
struct  MgisrgiOptions
 Options of qsys_mgisrgi_whitt, all with the MATLAB defaults. More...
struct  Mm1DpsResult
struct  Mm1kLossResult
struct  Mm1PsResult
 Mirrors MATLAB's [W, W2, alpha] return list. More...
struct  Mm1TandemLindleyResult
 Mirrors the struct MATLAB returns from qsys_mm1_tandem_lindley. More...
struct  MmapG1kResult
 Return value of qsys_mmapg1k, mirroring the MATLAB result struct. More...
struct  MmapGk1Result
 Return value of qsys_mmapgk1, mirroring the MATLAB struct. More...
struct  MmccRetrialFpResult
 Return value of qsys_mmcc_retrial_fp, mirroring the three MATLAB outputs. More...
struct  MmckResult
struct  MxM1Result
struct  NpfqnTvFluidResult
 Result of the network solve. More...
struct  Patience
 The patience (time-to-abandon) law, in the three forms the algorithm accepts. More...
struct  PhM1Result
struct  PhMcResult
struct  QsysAbandonResult
 Steady-state measures of a multiserver queue with customer abandonment. More...
struct  QsysFluidAbandonResult
 Steady state of the G/GI/s+GI fluid model. More...
struct  QsysGgnmResult
 Steady-state measures of the G/GI/n/m diffusion approximation. More...
struct  QsysMolResult
 MOL and PSA measures of a time-varying multiserver system. More...
struct  QsysMtginfResult
 Time-varying measures of the Mt/G/infinity queue. More...
struct  QsysQedResult
 QED measures of the M/M/s queue. More...
struct  QsysQedStaffingResult
 Outcome of the square-root staffing rule. More...
struct  QsysResult
 Return value of the qsys family, mirroring MATLAB's [W,rhohat] and the JAR's Ret.qsys. More...
struct  QsysTgaResult
 Steady-state measures of the G/GI/n+GI truncated Gaussian approximation. More...
struct  QsysTvFluidResult
 Trajectory of the Gt/Mt/st+GI fluid queue; every vector is on the time grid. More...
struct  ServiceLaw
 Service-time descriptor, the C++ form of the MATLAB svc struct. More...
struct  TandemLindleyResult
 Mirrors the struct MATLAB returns from qsys_tandem_lindley. More...
struct  TandemUbResult
 Mirrors the struct MATLAB returns from qsys_tandem_ub_ciucu. More...
struct  TvFluidOptions
 Options of qsys_gtmtst_fluid, all with the MATLAB defaults. More...
struct  WorkloadServiceLaw
 The three things Cohen's formula needs from the required-service-time law: its mean, its squared coefficient of variation, and its CDF. More...

Typedefs

using Cplx = std::complex<double>

Enumerations

enum class  MapG1ServiceFit { Exponential , Erlang , Hyperexponential , Acyclic }
 Which branch of fitServiceToPH was taken, for the caller and for tests. More...
enum class  ServiceKind { Gamma , Deterministic , PhaseType , Density }
 Which family the service law belongs to. More...
enum class  PatienceForm { Exponential , Hazard , Ccdf }
 Which of the three accepted descriptions of the patience law is carried. More...
enum class  QedCriterion { Delay , MeanWait , ServiceLevel }
 Which target the staffing rule is asked to meet. More...

Functions

template<class T>
BmapM1Result< T > qsys_bmapm1 (const std::vector< Matrix< T > > &D, const T &mu, const T &qParam, std::size_t maxLevelParam, unsigned maxIter, const T &tol, double tailTol)
 BMAP/M/1 by the matrix-analytic (M/G/1-type) method.
template<class T>
BmapM1Result< T > qsys_bmapm1 (const std::vector< Matrix< T > > &D, const T &mu)
 The reference's defaults: adaptive truncation, 10000 iterations, tol 1e-12.
template<class T>
BmapPhNnRetrialResult< T > qsys_bmapphnn_retrial (const std::vector< Matrix< T > > &D, const std::vector< T > &beta, const Matrix< T > &S, int N, const T &alpha, const T &gamma, const T &p, const std::vector< long > &R, const BmapPhNnRetrialOptions &opt)
 The BMAP/PH/N/N bufferless retrial queue.
template<class T>
BmapPhNnRetrialResult< T > qsys_bmapphnn_retrial (const std::vector< Matrix< T > > &D, const std::vector< T > &beta, const Matrix< T > &S, int N, const T &alpha, const T &gamma, const T &p, long R)
 qsys_bmapphnn_retrial with the reference's automatic truncation level.
template<class T>
DmcResult< T > qsys_dmc (const T &lambda, const T &mu, unsigned c, unsigned truncation, unsigned quadSteps)
 D/M/c: deterministic interarrival times, exponential service.
template<class T>
DmcResult< T > qsys_dmc (const T &lambda, const T &mu, unsigned c)
 qsys_dmc with the MATLAB defaults, automatic truncation and 200 steps.
template<class T>
QsysResult< T > qsys_gg1 (const T &lambda, const T &mu, const T &ca2, const T &cs2)
 G/G/1 dispatcher: exact where a two-moment description determines the answer, Allen-Cunneen otherwise.
template<class T>
QsysTgaResult< T > qsys_ggingi_tga (const T &lambda, const T &mu, unsigned n, const T &ca, const T &cs, const std::function< T(const T &)> &patienceCcdf, const std::function< T(const T &)> &patiencePdf=std::function< T(const T &)>(), const std::function< T(const T &)> &serviceCcdf=std::function< T(const T &)>())
 Truncated Gaussian approximation (TGA-G) for the G/GI/n+GI queue.
template<class T>
QsysFluidAbandonResult< T > qsys_ggisgi_fluid (const T &lambda, const T &mu, unsigned s, const std::function< T(const T &)> &patienceCcdf, const std::function< T(const T &)> &servingCcdf=std::function< T(const T &)>(), const std::vector< T > &agePoints=std::vector< T >(), double tol=1e-12, double maxTime=std::numeric_limits< double >::quiet_NaN())
 Steady state of the G/GI/s+GI fluid model.
template<class T>
QsysGgnmResult< T > qsys_ggnm_diffusion (const T &lambda, const T &mu, unsigned n, double m, const T &ca, const T &cs, const std::function< T(const T &)> &serviceCcdf=std::function< T(const T &)>(), double tol=1e-12, std::size_t panels=4000)
 Diffusion approximation for the G/GI/n/m queue.
template<class T>
QsysResult< T > qsys_gig1_approx_allencunneen (const T &lambda, const T &mu, const T &ca, const T &cs)
 Allen-Cunneen approximation of the mean response time of a G/I/G/1 queue.
template<class T>
QsysResult< T > qsys_gig1_approx_gelenbe (const T &lambda, const T &mu, const T &ca, const T &cs)
 Gelenbe diffusion approximation with instantaneous-return boundary.
template<class T>
QsysResult< T > qsys_gig1_approx_heyman (const T &lambda, const T &mu, const T &ca, const T &cs)
 Heyman approximation of the mean response time of a G/I/G/1 queue.
template<class T>
QsysResult< T > qsys_gig1_approx_kimura (const T &lambda, const T &mu, const T &ca, const T &cs)
 Kimura diffusion-interpolation approximation for the G/I/G/1 queue.
template<class T>
QsysResult< T > qsys_gig1_approx_klb (const T &lambda, const T &mu, const T &ca, const T &cs)
 Kraemer and Langenbach-Belz approximation for the G/I/G/1 queue.
template<class T>
QsysResult< T > qsys_gig1_approx_kobayashi (const T &lambda, const T &mu, const T &ca, const T &cs)
 Kobayashi diffusion approximation for the G/I/G/1 queue.
template<class T>
QsysResult< T > qsys_gig1_approx_marchal (const T &lambda, const T &mu, const T &ca, const T &cs)
 Marchal approximation of the mean response time of a G/I/G/1 queue.
template<class T>
QsysResult< T > qsys_gig1_approx_myskja (const T &lambda, const T &mu, const T &ca, const T &cs, const T &q0, const T &qa)
 Myskja's third-moment approximation of the mean response time of a G/I/G/1 queue.
template<class T>
QsysResult< T > qsys_gig1_approx_myskja2 (const T &lambda, const T &mu, const T &ca, const T &cs, const T &q0, const T &qa)
 Myskja's enhanced third-moment approximation of the mean response time of a G/I/G/1 queue.
template<class T>
QsysResult< T > qsys_gig1_approx_whitt (const T &lambda, const T &mu, const T &ca, const T &cs)
 Whitt's approximation of the G/G/1 mean response time.
template<class T>
Gig1ExtremalResult< T > qsys_gig1_bnds_extremal (const T &lambda, const T &mu, const T &ca, const T &cs, std::size_t K=4000, std::size_t N=2000, bool skipTight=false)
 Extremal two-moment bounds for the GI/GI/1 queue.
template<class T>
QsysResult< T > qsys_gig1_lbnd (const T &lambda, const T &mu, const T &ca, const T &cs)
 Fundamental lower bound on the mean response time of a G/G/1 queue.
template<class T, class IaFun>
Gig1RqResult< T > qsys_gig1_rq (const T &rho, const T &mu, const T &cs2, IaFun &&IaFun_)
 Robust Queueing (RQ) approximation of a G/GI/1 queue characterized by its arrival index of dispersion and the first two service moments.
template<class T>
GigkRqtResult< T > qsys_gig1_rqt (const T &lambda, const T &mu, const T &Gamma_a, const T &Gamma_s, const T &alpha_a, const T &alpha_s)
 Robust Queueing Theory (RQT) worst-case system time of a G/G/1 FCFS queue, the single-server case of qsys_gigk_rqt (Theorem 2 and eq.
template<class T>
GigkRqtResult< T > qsys_gig1_rqt (const T &lambda, const T &mu, const T &Gamma_a, const T &Gamma_s)
 Finite-variance case, alpha_a = alpha_s = 2.
template<class T>
QsysResult< T > qsys_gig1_ubnd_kingman (const T &lambda, const T &mu, const T &ca, const T &cs)
 Kingman upper bound on the mean waiting time of a G/G/1 queue.
template<class T>
QsysResult< T > qsys_gigk_approx (const T &lambda, const T &mu, const T &ca, const T &cs, unsigned k)
 Default G/I/G/k approximation of the mean response time.
template<class T>
QsysResult< T > qsys_gigk_approx_cosmetatos (const T &lambda, const T &mu, const T &ca, const T &cs, unsigned k)
 Cosmetatos / Page interpolation approximation for the GI/G/k queue.
template<class T>
QsysResult< T > qsys_gigk_approx_kingman (const T &lambda, const T &mu, const T &ca, const T &cs, unsigned k)
 Kingman (Lee-Longton) scaling of the exact M/M/k waiting time.
template<class T>
QsysResult< T > qsys_gigk_approx_whitt (const T &lambda, const T &mu, const T &ca, const T &cs, unsigned k)
 Whitt (1993) approximation for the GI/G/k queue, eqs.
template<class T>
GigkRqtResult< T > qsys_gigk_rqt (const T &lambda, const T &mu, const T &Gamma_a, const T &Gamma_s, std::size_t k, const T &alpha_a, const T &alpha_s)
 Robust Queueing Theory (RQT) worst-case system time of a G/G/k FCFS queue.
template<class T>
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.
template<class T>
qsys_gm1 (const T &sigma, const T &mu)
 Exact mean response time of the G/M/1 queue.
template<class Tv>
QsysTvFluidResult< Tv > qsys_gtmtst_fluid (const std::function< Tv(const Tv &)> &lambdaFun, const std::function< Tv(const Tv &)> &sFun, const std::function< Tv(const Tv &)> &muFun, const std::function< Tv(const Tv &)> &patienceCcdf, const Tv &T, const TvFluidOptions< Tv > &opts=TvFluidOptions< Tv >())
 The Gt/Mt/st+GI many-server fluid queue, and the network of them.
template<class Tv>
NpfqnTvFluidResult< Tv > npfqn_gtmtst_fluid (const std::vector< std::function< Tv(const Tv &)> > &lambdaFuns, const std::vector< std::function< Tv(const Tv &)> > &sFuns, const std::vector< std::function< Tv(const Tv &)> > &muFuns, const std::vector< std::function< Tv(const Tv &)> > &patienceCcdfs, const std::vector< std::vector< Tv > > &P, const Tv &T, const Tv &dt=num_traits< Tv >::from_int(0), const std::vector< Tv > &B0=std::vector< Tv >(), const std::vector< Tv > &w0=std::vector< Tv >(), double tol=1e-6, std::size_t maxIter=100)
 A time-varying open network of many-server fluid queues with abandonment.
template<class T>
LindleyResult< T > qsys_hh1_lindley (const std::vector< T > &lambda, const std::vector< T > &pa, const std::vector< T > &mu, const std::vector< T > &ps, const std::vector< T > &Wn, unsigned mmax=2)
 Conditional waiting-time moments of the Hl/Hn/1 Lindley recursion.
template<class T>
LindleyResult< T > qsys_hh1_lindley (const std::vector< T > &lambda, const std::vector< T > &pa, const std::vector< T > &mu, const std::vector< T > &ps, const T &Wn, unsigned mmax=2)
 Scalar-Wn overload.
template<class T>
LdpsWorkloadResult< T > qsys_ldps_workload (const T &lambda, const WorkloadServiceLaw< T > &B, const std::vector< T > &alpha, std::size_t N, const std::vector< T > &t, std::size_t ngrid)
 Workload distribution of the load-dependent PS station with blocking.
template<class T>
LdpsWorkloadResult< T > qsys_ldps_workload (const T &lambda, const WorkloadServiceLaw< T > &B, const std::vector< T > &alpha, std::size_t N)
 qsys_ldps_workload on the automatic grid with the reference default ngrid = 2001.
template<class T>
std::vector< T > qsys_lindley_moment (const T &lambda, const T &mu, const std::vector< T > &Wn, unsigned m)
 One conditional Lindley moment for exponential primitives.
template<class T>
qsys_lindley_moment (const T &lambda, const T &mu, const T &Wn, unsigned m)
 Scalar overload of the same expression.
template<class T>
MapD1Result< T > qsys_mapd1 (const mam::Map< T > &arrival, const T &s, std::size_t dist_size, unsigned max_arrivals, std::size_t max_levels, const T &tol)
 MAP/D/1 by the exact embedded M/G/1-type chain.
template<class T>
MapD1Result< T > qsys_mapd1 (const mam::Map< T > &arrival, const T &s)
 qsys_mapd1 with 100 materialized levels, an arrival-count cap of 4096, a level cap of 20000 and tolerance 1e-14.
template<class T>
MapDcResult< T > qsys_mapdc (const mam::Map< T > &arrival, const T &s, unsigned c, std::size_t dist_size, unsigned max_arrivals, std::size_t max_levels, const T &tol)
 MAP/D/c by Crommelin's exact embedded lattice chain.
template<class T>
MapDcResult< T > qsys_mapdc (const mam::Map< T > &arrival, const T &s, unsigned c)
 qsys_mapdc with 100 materialized levels, an arrival-count cap of 4096, a super-level cap of 20000 and tolerance 1e-14, matching the qsys_mapd1 defaults.
template<class T>
mam::Map< T > qsys_mapg1_service_fit (const std::vector< T > &moments, MapG1ServiceFit &kind)
 Fit a general service time to a PH, following qsys_mapg1.m's fitServiceToPH.
template<class T>
MapG1Result< T > qsys_mapg1 (const mam::Map< T > &arrival, const std::vector< T > &moments, std::size_t dist_size)
 The MAP/G/1 FCFS queue.
template<class T>
MapG1Result< T > qsys_mapg1 (const mam::Map< T > &arrival, const std::vector< T > &moments)
 qsys_mapg1 with the reference's default of 100 materialized levels.
template<class T>
MapG1kResult< T > qsys_mapg1k (const mam::Map< T > &arrival, const ServiceLaw< T > &svc, std::size_t K, const T &tol, std::size_t nmaxCap)
 MAP/G/1/K with tail drop.
template<class T>
MapG1kResult< T > qsys_mapg1k (const mam::Map< T > &arrival, const ServiceLaw< T > &svc, std::size_t K)
 qsys_mapg1k with the reference defaults tol = 1e-12, nmax = 200000.
template<class T>
MapG1kPerflowResult< T > qsys_mapg1k_perflow (const std::vector< mam::Map< T > > &flows, const ServiceLaw< T > &svc, std::size_t K, const T &tol, std::size_t nmaxCap)
 Per-flow analysis of a MAP-fed tail-drop buffer.
template<class T>
MapG1kPerflowResult< T > qsys_mapg1k_perflow (const std::vector< mam::Map< T > > &flows, const ServiceLaw< T > &svc, std::size_t K)
 qsys_mapg1k_perflow with the qsys_mapg1k defaults tol = 1e-12, nmax = 200000.
template<class T>
MapMcResult< T > qsys_mapm1 (const mam::Map< T > &arrival, const T &mu, std::size_t dist_size)
 MAP/M/1 by the matrix-geometric solution, i.e.
template<class T>
MapMcResult< T > qsys_mapm1 (const mam::Map< T > &arrival, const T &mu)
 qsys_mapm1 with 100 materialized levels.
template<class T>
MapMap1Result< T > qsys_mapmap1 (const mam::Map< T > &arrival, const mam::Map< T > &service, std::size_t dist_size)
 MAP/MAP/1 by the exact QBD solution.
template<class T>
MapMap1Result< T > qsys_mapmap1 (const mam::Map< T > &arrival, const mam::Map< T > &service)
 qsys_mapmap1 with 100 materialized levels, the reference's numQLProbs.
template<class T>
MapMcResult< T > qsys_mapmc (const mam::Map< T > &arrival, const T &mu, unsigned c, std::size_t dist_size)
 MAP/M/c by the matrix-geometric solution.
template<class T>
MapMcResult< T > qsys_mapmc (const mam::Map< T > &arrival, const T &mu, unsigned c)
 qsys_mapmc with 100 materialized levels, the reference's maxNumComp scale.
template<class T>
MapMap1Result< T > qsys_mapph1 (const mam::Map< T > &arrival, const std::vector< T > &sigma, const Matrix< T > &S, std::size_t dist_size)
 MAP/PH/1 by the exact QBD solution of the equivalent MAP/MAP/1 queue.
template<class T>
MapMap1Result< T > qsys_mapph1 (const mam::Map< T > &arrival, const std::vector< T > &sigma, const Matrix< T > &S)
 qsys_mapph1 with 100 materialized levels, the reference's numQLProbs.
template<class T>
MapPhcResult< T > qsys_mapphc (const mam::Map< T > &arrival, const std::vector< T > &alpha, const Matrix< T > &S, unsigned c, std::size_t dist_size, std::size_t num_w_moms, const std::vector< T > &w_points)
 MAP/PH/c FCFS, exactly.
template<class T>
MapPhcResult< T > qsys_mapphc (const mam::Map< T > &arrival, const std::vector< T > &alpha, const Matrix< T > &S, unsigned c)
template<class T>
MaximaResult< T > qsys_maxima_twomoment (std::size_t n, const T &mean, const T &cs2, const T &q=num_traits< T >::from_int(0), bool exactFitted=true)
 Two-moment approximation for the maximum of n iid non-negative variables.
template<class T>
MDcCrommelinResult< T > qsys_mdc_crommelin (const T &lambda_arr, const T &s, unsigned c, long truncation=-1)
 M/D/c by Crommelin's embedded chain.
template<class T>
QsysResult< T > qsys_mg1 (const T &lambda, const T &mu, const T &cs)
 Exact mean response time of the M/G/1 queue (Pollaczek-Khinchine).
template<class T>
Mg1DisciplineResult< T > qsys_mg1_fb (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs)
 M/G/1 under FB (feedback), also called LAS (least attained service).
template<class T>
Mg1DisciplineResult< T > qsys_mg1_lrpt (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs)
 M/G/1 under LRPT (longest remaining processing time).
template<class T>
Mg1PrioResult< T > qsys_mg1_prio (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs)
 M/G/1 with non-preemptive head-of-line priorities: per-class mean response times from the Cobham/Kleinrock formula.
Mg1PsResult qsys_mg1_ps (double lambda, const std::vector< double > &alpha, const Matrix< double > &Tmat, const Mg1PsOptions &opt)
 Sojourn-time distribution of the M/G/1 processor-sharing queue.
template<class T>
Mg1DisciplineResult< T > qsys_mg1_psjf (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs)
 M/G/1 under PSJF (preemptive shortest job first).
template<class T>
Mg1DisciplineResult< T > qsys_mg1_setf (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs)
 M/G/1 under SETF (shortest elapsed time first), the non-preemptive counterpart of FB/LAS.
template<class T>
Mg1DisciplineResult< T > qsys_mg1_srpt (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &cs)
 M/G/1 under SRPT (shortest remaining processing time), by the Schrage-Miller formula.
template<class T, class Density>
Mg1kLossResult< T > qsys_mg1k_loss (const T &lambda, Density &&density, unsigned K)
 Exact M/G/1/K loss probability, via the chain embedded at service-start epochs.
template<class T>
Mg1kLossMgsResult< T > qsys_mg1k_loss_mgs (const T &lambda, const T &mu, const T &mu_scv, unsigned K)
 MacGregor Smith's closed-form approximation of the M/G/1/K loss probability.
template<class T>
MginfResult< T > qsys_mginf (const T &lambda, const T &mu)
 Exact solution of the M/G/infinity queue.
template<class T>
MginfResult< T > qsys_mginf (const T &lambda, const T &mu, unsigned k)
 Exact solution of the M/G/infinity queue.
template<class T>
QsysAbandonResult< T > qsys_mgisrgi_whitt (const T &lambda, const T &mu, unsigned s, double r, const Patience< T > &patience, const MgisrgiOptions &opts=MgisrgiOptions())
 Engineering solution of the call-center model M/GI/s/r+GI.
template<class T>
QsysAbandonResult< T > qsys_erlanga (const T &lambda, const T &mu, const T &theta, unsigned s, double r=std::numeric_limits< double >::infinity(), const MgisrgiOptions &opts=MgisrgiOptions())
 Exact analysis of the Erlang A model M/M/s/r+M.
template<class T>
QsysResult< T > qsys_mm1 (const T &lambda, const T &mu)
 Exact mean response time of the M/M/1 queue.
template<class T>
Mm1DpsResult< T > qsys_mm1_dps (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &w, const T &tol, unsigned maxCutoff)
 Multiclass M/M/1 under DPS (discriminatory processor sharing), solved numerically on the truncated population chain.
template<class T>
Mm1DpsResult< T > qsys_mm1_dps (const std::vector< T > &lambda, const std::vector< T > &mu, const std::vector< T > &w)
 MATLAB defaults: tol = 1e-10, maxCutoff = 2048.
template<class T>
LindleyResult< T > qsys_mm1_lindley (const T &lambda, const T &mu, const std::vector< T > &Wn, unsigned mmax=2)
 Conditional waiting-time moments of the M/M/1 Lindley recursion.
template<class T>
LindleyResult< T > qsys_mm1_lindley (const T &lambda, const T &mu, const T &Wn, unsigned mmax=2)
 Scalar overload.
template<class T>
Mm1PsResult< T > qsys_mm1_ps (const std::vector< T > &lambda, const std::vector< T > &mu)
 Exact sojourn-time moments of the multiclass M/M/1-PS queue.
template<class T>
Mm1TandemLindleyResult< T > qsys_mm1_tandem_lindley (const T &lambda, const T &mu1, const T &mu2, const std::vector< T > &Wk, const std::vector< T > &Wk1)
 Conditional waiting time at the SECOND station of an M/M/1 -> /M/1 tandem.
template<class T>
Mm1TandemLindleyResult< T > qsys_mm1_tandem_lindley (const T &lambda, const T &mu1, const T &mu2, const T &Wk, const T &Wk1)
 Scalar overload.
template<class T>
Mm1kLossResult< T > qsys_mm1k_loss (const T &lambda, const T &mu, unsigned K)
 Blocking probability of the M/M/1/K queue.
template<class T>
MmapG1kResult< T > qsys_mmapg1k (const Matrix< T > &D0, const std::vector< Matrix< T > > &D1c, const ServiceLaw< T > &svc, std::size_t K, const T &tol, std::size_t nmaxCap)
 MMAP[K]/G/1/K with tail drop.
template<class T>
MmapG1kResult< T > qsys_mmapg1k (const Matrix< T > &D0, const std::vector< Matrix< T > > &D1c, const ServiceLaw< T > &svc, std::size_t K)
 qsys_mmapg1k with the qsys_mapg1k defaults tol = 1e-12, nmax = 200000.
template<class T>
MmapGk1Result< T > qsys_mmapgk1 (const std::vector< Matrix< T > > &MMAP, const std::vector< lang::Distrib< T > > &svc, const std::vector< T > &w_points, std::size_t num_w_moms, double tol, std::size_t iter_max)
 MMAP[K]/G[K]/1 FCFS, per type.
template<class T>
MmapGk1Result< T > qsys_mmapgk1 (const std::vector< Matrix< T > > &MMAP, const std::vector< lang::Distrib< T > > &svc)
template<class T>
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>
qsys_mmk_qed_alpha (const T &beta)
 The Halfin-Whitt delay-probability function alpha(beta); 1 at beta <= 0.
template<class 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>
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>
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 -> .

Typedef Documentation

◆ Cplx

using line::qsys::Cplx = std::complex<double>

Definition at line 85 of file qsys_mg1_ps.h.

Enumeration Type Documentation

◆ MapG1ServiceFit

enum class line::qsys::MapG1ServiceFit
strong

Which branch of fitServiceToPH was taken, for the caller and for tests.

Enumerator
Exponential 

one moment, or cv2 exactly 1

Erlang 

0 < cv2 < 1, or the cv2 <= 0 branch

Hyperexponential 

cv2 > 1

Acyclic 

three or more moments

Definition at line 102 of file qsys_mapg1.h.

◆ PatienceForm

enum class line::qsys::PatienceForm
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.

◆ QedCriterion

enum class line::qsys::QedCriterion
strong

Which target the staffing rule is asked to meet.

Enumerator
Delay 
MeanWait 
ServiceLevel 

Definition at line 83 of file qsys_mmk_qed.h.

◆ ServiceKind

enum class line::qsys::ServiceKind
strong

Which family the service law belongs to.

Enumerator
Gamma 
Deterministic 
PhaseType 
Density 

Definition at line 99 of file qsys_mapg1k.h.

Function Documentation

◆ erlang_b_recursive()

template<class T>
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().

◆ npfqn_gtmtst_fluid()

template<class Tv>
NpfqnTvFluidResult< Tv > line::qsys::npfqn_gtmtst_fluid ( const std::vector< std::function< Tv(const Tv &)> > & lambdaFuns,
const std::vector< std::function< Tv(const Tv &)> > & sFuns,
const std::vector< std::function< Tv(const Tv &)> > & muFuns,
const std::vector< std::function< Tv(const Tv &)> > & patienceCcdfs,
const std::vector< std::vector< Tv > > & P,
const Tv & T,
const Tv & dt = num_traits<Tv>::from_int(0),
const std::vector< Tv > & B0 = std::vector<Tv>(),
const std::vector< Tv > & w0 = std::vector<Tv>(),
double tol = 1e-6,
std::size_t maxIter = 100 )

A time-varying open network of many-server fluid queues with abandonment.

Parameters
lambdaFunsexternal arrival rate of each queue
sFunsstaffing of each queue
muFunsservice rate of each queue
patienceCcdfspatience ccdf of each queue
Prouting proportions, substochastic
Thorizon
dtgrid step; non-positive takes T/2000
B0initial fluid in service, empty for an empty network
w0initial boundary waiting times, empty for an empty network
tolsup-norm tolerance on the arrival-rate iteration
maxItercap on the iterations

Definition at line 332 of file qsys_gtmtst_fluid.h.

References line::qsys::NpfqnTvFluidResult< T >::arrivalRates, line::qsys::TvFluidOptions< T >::B0, line::qsys::TvFluidOptions< T >::dt, line::InputError::InputError(), line::qsys::NpfqnTvFluidResult< T >::iterations, npfqn_gtmtst_fluid(), qsys_gtmtst_fluid(), line::qsys::NpfqnTvFluidResult< T >::queues, line::qsys::NpfqnTvFluidResult< T >::residual, line::qsys::QsysTvFluidResult< T >::sigma, line::qsys::NpfqnTvFluidResult< T >::times, and line::qsys::TvFluidOptions< T >::w0.

Referenced by npfqn_gtmtst_fluid().

◆ qsys_bmapm1() [1/2]

template<class T>
BmapM1Result< T > line::qsys::qsys_bmapm1 ( const std::vector< Matrix< T > > & D,
const T & mu )

The reference's defaults: adaptive truncation, 10000 iterations, tol 1e-12.

Definition at line 360 of file qsys_bmapm1.h.

References qsys_bmapm1().

◆ qsys_bmapm1() [2/2]

template<class T>
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.

Parameters
Dthe BMAP {D0, D1, ..., DK}; D0 carries hidden transitions, Dk the transitions releasing a batch of k
muexponential service rate
qParamuniformization constant; <= 0 selects the reference's default
maxLevelParamexplicit level truncation; 0 selects the adaptive search
maxIteriteration cap for the G matrix
tolconvergence tolerance for the G matrix
tailTolrelative 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().

◆ qsys_bmapphnn_retrial() [1/2]

template<class T>
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.

Parameters
Dthe BMAP as {D0, D1, ..., DK}, each V x V
betaPH service entry vector, length M
SPH service sub-generator, M x M
Nnumber of servers, which is also the capacity
alpharetrial rate per orbiting customer
gammaabandonment rate per orbiting customer
pprobability that an overflowing batch is lost rather than joining the orbit
Radmission threshold per BMAP state; a single entry is broadcast
opttruncation level

Definition at line 444 of file qsys_bmapphnn_retrial.h.

References line::qsys::BmapPhNnRetrialResult< T >::clipped, line::Matrix< T >::cols(), line::InputError::InputError(), line::inverse(), line::qsys::BmapPhNnRetrialResult< T >::L_orbit, line::qsys::BmapPhNnRetrialResult< T >::L_system, line::Matrix< T >::Matrix(), line::mulvec(), line::qsys::BmapPhNnRetrialResult< T >::N_server, line::NumericError::NumericError(), line::ones(), line::qsys::BmapPhNnRetrialResult< T >::P_empty_orbit, line::qsys::BmapPhNnRetrialResult< T >::P_empty_system, line::qsys::BmapPhNnRetrialResult< T >::P_idle, line::qsys::BmapPhNnRetrialResult< T >::pi, qsys_bmapphnn_retrial(), line::Matrix< T >::rows(), line::solve(), line::qsys::BmapPhNnRetrialResult< T >::throughput, line::qsys::BmapPhNnRetrialResult< T >::topLevelMass, line::Matrix< T >::transpose(), line::qsys::BmapPhNnRetrialResult< T >::truncLevel, and line::qsys::BmapPhNnRetrialResult< T >::utilization.

Referenced by qsys_bmapphnn_retrial(), qsys_bmapphnn_retrial(), and line::mam::solver_mam_retrial().

◆ qsys_bmapphnn_retrial() [2/2]

template<class T>
BmapPhNnRetrialResult< T > line::qsys::qsys_bmapphnn_retrial ( const std::vector< Matrix< T > > & D,
const std::vector< T > & beta,
const Matrix< T > & S,
int N,
const T & alpha,
const T & gamma,
const T & p,
long R )

qsys_bmapphnn_retrial with the reference's automatic truncation level.

Definition at line 692 of file qsys_bmapphnn_retrial.h.

References qsys_bmapphnn_retrial().

◆ qsys_dmc() [1/2]

template<class T>
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().

◆ qsys_dmc() [2/2]

template<class T>
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.

Parameters
lambdadeterministic arrival rate, interarrival time 1/lambda
muexponential service rate of one server
cnumber of servers, c >= 1
truncationstate-space truncation; 0 selects the MATLAB default
quadStepstrapezoid 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().

◆ qsys_erlang_b()

template<class T>
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.

Parameters
snumber of servers
aoffered 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().

◆ qsys_erlang_c()

template<class T>
T line::qsys::qsys_erlang_c ( unsigned s,
const T & a )

Erlang C from the same recursion; 1 when the load saturates the servers.

Parameters
snumber of servers
aoffered 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().

◆ qsys_erlanga()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate of one server
thetaabandonment rate of a waiting customer
snumber of servers
rextra waiting spaces; infinity for an unbounded queue
optscdf 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().

◆ qsys_gg1()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
ca2squared coefficient of variation of the interarrival time
cs2squared 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().

◆ qsys_ggingi_tga()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate of one server
nnumber of servers
cacoefficient of variation of the interarrival time
cscoefficient of variation of the service time
patienceCcdfF^c(x) = P(patience > x)
patiencePdfthe patience density; empty differences the ccdf
serviceCcdfG^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().

◆ qsys_ggisgi_fluid()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate of one server
snumber of servers, s >= 1
patienceCcdfF^c(t) = P(patience > t)
servingCcdfG^c(x) = P(service > x), used only for the in-service age density; an empty callable takes the exponential of rate mu
agePointsages at which to return the densities
tolbisection tolerance for w
maxTimelargest 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().

◆ qsys_ggnm_diffusion()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate of one server
nnumber of servers, n >= 1
mextra waiting spaces; infinity for an unbounded queue
cacoefficient of variation of the interarrival time
cscoefficient of variation of the service time
serviceCcdfG^c(x) = P(S > x); empty takes the exponential of rate mu
tolservice-tail cut for the peakedness integral
panelsSimpson 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().

◆ qsys_gig1_approx_allencunneen()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient 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().

◆ qsys_gig1_approx_gelenbe()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient 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().

◆ qsys_gig1_approx_heyman()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient 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().

◆ qsys_gig1_approx_kimura()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient 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().

◆ qsys_gig1_approx_klb()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient 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().

◆ qsys_gig1_approx_kobayashi()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient 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().

◆ qsys_gig1_approx_marchal()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient 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().

◆ qsys_gig1_approx_myskja()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient of variation of the service time
q0smallest third relative moment for the given mean and SCV
qathird 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().

◆ qsys_gig1_approx_myskja2()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient of variation of the service time
q0smallest third relative moment for the given mean and SCV
qathird 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().

◆ qsys_gig1_approx_whitt()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient 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().

◆ qsys_gig1_bnds_extremal()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient of variation of the service time
Ktruncation of the negative binomial value
Ntruncation of the random-walk length
skipTightskip 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().

◆ qsys_gig1_lbnd()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time, unused
cscoefficient 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().

◆ qsys_gig1_rq()

template<class T, class IaFun>
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.

Parameters
rhotraffic intensity lambda/mu
muservice rate
cs2squared 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().

◆ qsys_gig1_rqt() [1/2]

template<class T>
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().

◆ qsys_gig1_rqt() [2/2]

template<class T>
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).

Parameters
lambdaarrival rate
muservice rate
Gamma_avariability parameter of the arrival uncertainty set
Gamma_svariability parameter of the service uncertainty set
alpha_aarrival tail coefficient in (1,2]
alpha_sservice 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().

◆ qsys_gig1_ubnd_kingman()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
cacoefficient of variation of the interarrival time
cscoefficient 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().

◆ qsys_gigk_approx()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate of a single server
cacoefficient of variation of the interarrival time
cscoefficient of variation of the service time
knumber 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().

◆ qsys_gigk_approx_cosmetatos()

template<class T>
QsysResult< T > line::qsys::qsys_gigk_approx_cosmetatos ( const T & lambda,
const T & mu,
const T & ca,
const T & cs,
unsigned k )

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

Parameters
lambdaarrival rate
muservice rate of a single server
cacoefficient of variation of the interarrival time
cscoefficient of variation of the service time
knumber 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().

◆ qsys_gigk_approx_kingman()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate of a single server
cacoefficient of variation of the interarrival time
cscoefficient of variation of the service time
knumber 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().

◆ qsys_gigk_approx_whitt()

template<class T>
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).

Parameters
lambdaarrival rate
muservice rate of a single server
cacoefficient of variation of the interarrival time
cscoefficient of variation of the service time
knumber 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().

◆ qsys_gigk_rqt()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate of each server
Gamma_avariability parameter of the arrival uncertainty set
Gamma_svariability parameter of the service uncertainty set
knumber of servers
alpha_aarrival tail coefficient in (1,2]
alpha_sservice 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().

◆ qsys_gigk_rqt_gamma()

template<class T>
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.

Parameters
rhotraffic intensity lambda/(k mu)
muservice rate of each server, which sets the time unit
Gamma_avariability parameter of the arrival uncertainty set
sigma_sstandard deviation of the service time
knumber of servers
alpha_aeffective arrival tail coefficient in (1,2]
regimeadaptation 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().

◆ qsys_gm1()

template<class T>
T line::qsys::qsys_gm1 ( const T & sigma,
const T & mu )

Exact mean response time of the G/M/1 queue.

Parameters
sigmaload at arrival instants, 0 <= sigma < 1
muservice rate
Returns
mean response time W

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().

◆ qsys_gtmtst_fluid()

template<class Tv>
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>() )

◆ qsys_hh1_lindley() [1/2]

template<class T>
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.

Parameters
lambdaarrival phase rates, positive
paarrival phase probabilities, nonnegative and summing to 1
muservice phase rates, positive
psservice phase probabilities, nonnegative and summing to 1
Wnwaiting times of customer n, finite and nonnegative
mmaxhighest 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().

◆ qsys_hh1_lindley() [2/2]

template<class T>
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().

◆ qsys_ldps_workload() [1/2]

template<class T>
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().

◆ qsys_ldps_workload() [2/2]

template<class T>
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.

Parameters
lambdaPoisson arrival rate
Brequired service time: mean, SCV and CDF
alpharate scaling alpha(n) = n f(n) for n = 1..N, at least N entries
Nblocking capacity
tgrid at which the CDF is wanted; empty for an automatic grid
ngridpoints 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().

◆ qsys_lindley_moment() [1/2]

template<class T>
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.

Parameters
lambdaarrival rate, positive
muservice rate, positive
Wncurrent waiting times, nonnegative
mmoment order, at least 1
Returns
E[max(Wn + S - A, 0)^m] evaluated at every entry of Wn

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().

◆ qsys_lindley_moment() [2/2]

template<class T>
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().

◆ qsys_mapd1() [1/2]

template<class T>
MapD1Result< T > line::qsys::qsys_mapd1 ( const mam::Map< T > & arrival,
const T & s )

qsys_mapd1 with 100 materialized levels, an arrival-count cap of 4096, a level cap of 20000 and tolerance 1e-14.

Definition at line 390 of file qsys_mapd1.h.

References qsys_mapd1().

◆ qsys_mapd1() [2/2]

template<class T>
MapD1Result< T > line::qsys::qsys_mapd1 ( const mam::Map< T > & arrival,
const T & s,
std::size_t dist_size,
unsigned max_arrivals,
std::size_t max_levels,
const T & tol )

MAP/D/1 by the exact embedded M/G/1-type chain.

Parameters
arrivalarrival MAP (D0, D1)
sdeterministic service time, s > 0
dist_sizehow many entries of queueLengthDist to materialize
max_arrivalscap 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_levelscap on the number of embedded levels generated by Ramaswami's recursion
toltolerance on the counting-mass truncation, on the G iteration and on the level-tail truncation

Definition at line 201 of file qsys_mapd1.h.

References line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::eye(), line::InputError::InputError(), line::inverse(), line::mam::map_lambda(), line::matmul(), line::Matrix< T >::Matrix(), line::qsys::MapD1Result< T >::meanQueueLength, line::qsys::MapD1Result< T >::meanSojournTime, line::qsys::MapD1Result< T >::meanWaitingTime, line::mulvec(), line::num_abs(), line::ones(), qsys_mapd1(), line::qsys::MapD1Result< T >::queueLengthDist, line::qsys::MapD1Result< T >::utilization, and line::vecmul().

Referenced by qsys_mapd1(), and qsys_mapd1().

◆ qsys_mapdc() [1/2]

template<class T>
MapDcResult< T > line::qsys::qsys_mapdc ( const mam::Map< T > & arrival,
const T & s,
unsigned c )

qsys_mapdc with 100 materialized levels, an arrival-count cap of 4096, a super-level cap of 20000 and tolerance 1e-14, matching the qsys_mapd1 defaults.

Definition at line 320 of file qsys_mapdc.h.

References qsys_mapdc().

◆ qsys_mapdc() [2/2]

template<class T>
MapDcResult< T > line::qsys::qsys_mapdc ( const mam::Map< T > & arrival,
const T & s,
unsigned c,
std::size_t dist_size,
unsigned max_arrivals,
std::size_t max_levels,
const T & tol )

MAP/D/c by Crommelin's exact embedded lattice chain.

Parameters
arrivalarrival MAP (D0, D1)
sdeterministic service time, s > 0
cnumber of servers, c >= 1
dist_sizehow many entries of queueLengthDist to materialize
max_arrivalscap on K, the number of arrivals per interval tracked
max_levelscap on the number of super-levels generated
toltolerance on the counting-mass truncation, on the G iteration and on the level-tail truncation

Definition at line 153 of file qsys_mapdc.h.

References line::mam::Map< T >::D0, line::mam::Map< T >::D1, line::eye(), line::InputError::InputError(), line::inverse(), line::mam::map_lambda(), line::matmul(), line::Matrix< T >::Matrix(), line::qsys::MapDcResult< T >::meanQueueLength, line::qsys::MapDcResult< T >::meanSojournTime, line::qsys::MapDcResult< T >::meanWaitingTime, line::num_abs(), qsys_mapdc(), line::qsys::MapDcResult< T >::queueLengthDist, line::qsys::MapDcResult< T >::utilization, and line::vecmul().

Referenced by qsys_mapdc(), and qsys_mapdc().

◆ qsys_mapg1() [1/2]

template<class T>
MapG1Result< T > line::qsys::qsys_mapg1 ( const mam::Map< T > & arrival,
const std::vector< T > & moments )

qsys_mapg1 with the reference's default of 100 materialized levels.

Definition at line 261 of file qsys_mapg1.h.

References qsys_mapg1().

◆ qsys_mapg1() [2/2]

template<class T>
MapG1Result< T > line::qsys::qsys_mapg1 ( const mam::Map< T > & arrival,
const std::vector< T > & moments,
std::size_t dist_size )

◆ qsys_mapg1_service_fit()

template<class T>
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.

Parameters
momentsthe first one, two or three raw moments of the service time
kindout: which branch was taken

Definition at line 187 of file qsys_mapg1.h.

References Acyclic, line::mam::aph_fit(), Erlang, Exponential, Hyperexponential, line::InputError::InputError(), and qsys_mapg1_service_fit().

Referenced by qsys_mapg1(), and qsys_mapg1_service_fit().

◆ qsys_mapg1k() [1/2]

template<class T>
MapG1kResult< T > line::qsys::qsys_mapg1k ( const mam::Map< T > & arrival,
const ServiceLaw< T > & svc,
std::size_t K )

qsys_mapg1k with the reference defaults tol = 1e-12, nmax = 200000.

Definition at line 681 of file qsys_mapg1k.h.

References qsys_mapg1k().

◆ qsys_mapg1k() [2/2]

◆ qsys_mapg1k_perflow() [1/2]

template<class T>
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().

◆ qsys_mapg1k_perflow() [2/2]

◆ qsys_mapm1() [1/2]

template<class T>
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().

◆ qsys_mapm1() [2/2]

template<class T>
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.

Parameters
arrivalarrival MAP (D0, D1)
muexponential service rate
dist_sizehow 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().

◆ qsys_mapmap1() [1/2]

template<class T>
MapMap1Result< T > line::qsys::qsys_mapmap1 ( const mam::Map< T > & arrival,
const mam::Map< T > & service )

qsys_mapmap1 with 100 materialized levels, the reference's numQLProbs.

Definition at line 150 of file qsys_mapmap1.h.

References qsys_mapmap1().

◆ qsys_mapmap1() [2/2]

template<class T>
MapMap1Result< T > line::qsys::qsys_mapmap1 ( const mam::Map< T > & arrival,
const mam::Map< T > & service,
std::size_t dist_size )

◆ qsys_mapmc() [1/2]

template<class T>
MapMcResult< T > line::qsys::qsys_mapmc ( const mam::Map< T > & arrival,
const T & mu,
unsigned c )

qsys_mapmc with 100 materialized levels, the reference's maxNumComp scale.

Definition at line 240 of file qsys_mapmc.h.

References qsys_mapmc().

◆ qsys_mapmc() [2/2]

template<class T>
MapMcResult< T > line::qsys::qsys_mapmc ( const mam::Map< T > & arrival,
const T & mu,
unsigned c,
std::size_t dist_size )

◆ qsys_mapph1() [1/2]

template<class T>
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().

◆ qsys_mapph1() [2/2]

template<class T>
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.

Parameters
arrivalarrival MAP (D0, D1)
sigmaPH service entry vector, length m
SPH service sub-generator, m x m
dist_sizehow 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().

◆ qsys_mapphc() [1/2]

template<class T>
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().

◆ qsys_mapphc() [2/2]

template<class T>
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 )

◆ qsys_maxima_twomoment()

template<class T>
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.

Parameters
nthe number of samples
meanthe mean of the underlying law
cs2its squared coefficient of variation
qa quantile level in (0,1); non-positive returns the mean
exactFittedalso 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().

◆ qsys_mdc_crommelin()

template<class T>
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.

Parameters
lambda_arrPoisson arrival rate
sdeterministic service time
cnumber of servers
truncationstate-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().

◆ qsys_mg1()

template<class T>
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).

Parameters
lambdaarrival rate
muservice rate
cscoefficient of variation of the service time
Returns
W = mean response time, rhohat = Q/(1+Q)

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().

◆ qsys_mg1_fb()

template<class T>
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).

Parameters
lambdaper-class arrival rates
muper-class service rates
csper-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().

◆ qsys_mg1_lrpt()

template<class T>
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).

Parameters
lambdaper-class arrival rates
muper-class service rates
csper-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().

◆ qsys_mg1_prio()

template<class T>
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.

Parameters
lambdaper-class arrival rates, highest priority first
muper-class service rates
csper-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().

◆ qsys_mg1_ps()

◆ qsys_mg1_psjf()

template<class T>
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).

Parameters
lambdaper-class arrival rates
muper-class service rates
csper-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().

◆ qsys_mg1_setf()

template<class T>
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.

Parameters
lambdaper-class arrival rates
muper-class service rates
csper-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().

◆ qsys_mg1_srpt()

template<class T>
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.

Parameters
lambdaper-class arrival rates
muper-class service rates
csper-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().

◆ qsys_mg1k_loss()

template<class T, class Density>
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.

Parameters
lambdaPoisson arrival rate
densityservice-time density, callable as density(t) -> T
Ksystem 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().

◆ qsys_mg1k_loss_mgs()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate
mu_scvsquared coefficient of variation of the service time
Ksystem capacity, jobs in service included

Definition at line 55 of file qsys_mg1k_loss_mgs.h.

References line::qsys::Mg1kLossMgsResult< T >::lossProbability, line::NumericError::NumericError(), qsys_mg1k_loss_mgs(), and line::qsys::Mg1kLossMgsResult< T >::utilization.

Referenced by qsys_mg1k_loss_mgs(), and line::mva::solver_mva_qsys_analyzer().

◆ qsys_mginf() [1/2]

template<class T>
MginfResult< T > line::qsys::qsys_mginf ( const T & lambda,
const T & mu )

Exact solution of the M/G/infinity queue.

Parameters
lambdaarrival rate
muservice 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().

◆ qsys_mginf() [2/2]

template<class T>
MginfResult< T > line::qsys::qsys_mginf ( const T & lambda,
const T & mu,
unsigned k )

Exact solution of the M/G/infinity queue.

Parameters
kstate whose probability is additionally returned
lambdaarrival rate
muservice 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().

◆ qsys_mgisrgi_whitt()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate of one server, the reciprocal of the mean service time
snumber of servers, s >= 1
rextra waiting spaces; infinity for an unbounded queue
patiencethe patience law
optscdf 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().

◆ qsys_mm1()

template<class T>
QsysResult< T > line::qsys::qsys_mm1 ( const T & lambda,
const T & mu )

Exact mean response time of the M/M/1 queue.

Parameters
lambdaarrival rate
muservice rate
Returns
W = mean response time, rhohat = rho (MATLAB returns the true rho here)

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().

◆ qsys_mm1_dps() [1/2]

template<class T>
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().

◆ qsys_mm1_dps() [2/2]

template<class T>
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.

Parameters
lambdaper-class Poisson arrival rates
muper-class exponential service rates
wper-class DPS weights, positive
tolconvergence tolerance on the mean counts (MATLAB 1e-10)
maxCutoffhard 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().

◆ qsys_mm1_lindley() [1/2]

template<class T>
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.

Parameters
lambdaarrival rate, positive
muservice rate, positive
Wnwaiting times of customer n, finite and nonnegative
mmaxhighest 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().

◆ qsys_mm1_lindley() [2/2]

template<class T>
LindleyResult< T > line::qsys::qsys_mm1_lindley ( const T & lambda,
const T & mu,
const T & Wn,
unsigned mmax = 2 )

Scalar overload.

Definition at line 106 of file qsys_mm1_lindley.h.

References qsys_mm1_lindley().

◆ qsys_mm1_ps()

template<class T>
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.

Parameters
lambdaper-class Poisson arrival rates, nonnegative
muper-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().

◆ qsys_mm1_tandem_lindley() [1/2]

template<class T>
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.

Parameters
lambdaarrival rate at station 1, positive
mu1service rate at station 1, positive
mu2service rate at station 2, positive
Wkwaiting times at station 1, finite nonnegative
Wk1waiting 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().

◆ qsys_mm1_tandem_lindley() [2/2]

template<class T>
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().

◆ qsys_mm1k_loss()

template<class T>
Mm1kLossResult< T > line::qsys::qsys_mm1k_loss ( const T & lambda,
const T & mu,
unsigned K )

Blocking probability of the M/M/1/K queue.

Parameters
lambdaarrival rate
muservice rate
Ksystem capacity, jobs in service included, K >= 1

Definition at line 49 of file qsys_mm1k_loss.h.

References line::InputError::InputError(), line::qsys::Mm1kLossResult< T >::lossProbability, line::num_pow_int(), qsys_mm1k_loss(), and line::qsys::Mm1kLossResult< T >::utilization.

Referenced by qsys_mm1k_loss().

◆ qsys_mmapg1k() [1/2]

template<class T>
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().

◆ qsys_mmapg1k() [2/2]

template<class T>
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.

Parameters
D0hidden transition matrix of the arrival MMAP (M x M)
D1cper-class arrival matrices; D0 + sum_k D1c[k] must be an irreducible generator
svcservice law, shared by all classes
Kbuffer size in packets
tolconvergence tolerance
nmaxCapcap 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().

◆ qsys_mmapgk1() [1/2]

template<class T>
MmapGk1Result< T > line::qsys::qsys_mmapgk1 ( const std::vector< Matrix< T > > & MMAP,
const std::vector< lang::Distrib< T > > & svc )

Definition at line 536 of file qsys_mmapgk1.h.

References qsys_mmapgk1().

◆ qsys_mmapgk1() [2/2]

template<class T>
MmapGk1Result< T > line::qsys::qsys_mmapgk1 ( const std::vector< Matrix< T > > & MMAP,
const std::vector< lang::Distrib< T > > & svc,
const std::vector< T > & w_points,
std::size_t num_w_moms,
double tol,
std::size_t iter_max )

MMAP[K]/G[K]/1 FCFS, per type.

Parameters
MMAPLINE convention {D0, D1, D^(1), ..., D^(K)}, D1 = sum_k D^(k)
svcK service laws, one per marked type; families may differ
w_pointstimes at which to evaluate the per-type waiting time CDF
num_w_momshow many per-type waiting time moments to return
tolfixed point tolerance on U
iter_maxfixed point iteration cap

Definition at line 355 of file qsys_mmapgk1.h.

References line::qsys::MmapGk1Result< T >::arrivalRate, line::lang::dist_moment(), line::qsys::MmapGk1Result< T >::idleVector, line::InputError::InputError(), line::inverse(), line::qsys::MmapGk1Result< T >::lambdas, line::matmul(), line::qsys::MmapGk1Result< T >::meanQueueLength, line::qsys::MmapGk1Result< T >::meanSojournTime, line::qsys::MmapGk1Result< T >::meanWaitingTime, line::mulvec(), qsys_mmapgk1(), line::Matrix< T >::rows(), line::qsys::MmapGk1Result< T >::utilization, line::qsys::MmapGk1Result< T >::waitCDF, line::qsys::MmapGk1Result< T >::waitMoments, and line::qsys::MmapGk1Result< T >::waitPoints.

Referenced by qsys_mmapgk1(), and qsys_mmapgk1().

◆ qsys_mmcc_retrial_fp() [1/2]

template<class T>
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().

◆ qsys_mmcc_retrial_fp() [2/2]

template<class T>
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.

Parameters
lambdafresh arrival rate
muservice rate of one server
cnumber of servers, which is also the capacity
tolstopping tolerance on |r_{k+1} - r_k|
maxiteriteration 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().

◆ qsys_mmck()

template<class T>
MmckResult< T > line::qsys::qsys_mmck ( const T & lambda,
const T & mu,
unsigned c,
unsigned K )

◆ qsys_mmk()

template<class T>
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).

Parameters
lambdaarrival rate
muservice rate of a single server
knumber of servers, k >= 1
Returns
W = mean response time, rhohat = rho = lambda/(mu k)

Definition at line 60 of file qsys_mmk.h.

References line::InputError::InputError(), and qsys_mmk().

Referenced by qsys_gigk_approx_cosmetatos(), qsys_gigk_approx_kingman(), qsys_gigk_approx_whitt(), qsys_mmk(), and line::mva::solver_mva_qsys_analyzer().

◆ qsys_mmk_qed()

template<class T>
QsysQedResult< T > line::qsys::qsys_mmk_qed ( const T & lambda,
const T & mu,
unsigned s )

◆ qsys_mmk_qed_alpha()

template<class T>
T line::qsys::qsys_mmk_qed_alpha ( const T & beta)

The Halfin-Whitt delay-probability function alpha(beta); 1 at beta <= 0.

Parameters
betathe 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().

◆ qsys_mmk_qed_erlangc()

template<class T>
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.

Parameters
snumber of servers
lambdaarrival rate
muservice 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().

◆ qsys_mmk_qed_staffing()

template<class T>
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.

Parameters
lambdaarrival rate
muservice rate of one server
targetthe largest acceptable P(W>0) for Delay, the largest acceptable E[W] for MeanWait, unused for ServiceLevel
critwhich target to meet
deadlinethe deadline of the service-level criterion
levelthe probability that deadline must be met with
exactwalk 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().

◆ qsys_mtginf()

template<class T>
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.

Parameters
lambdaFunthe arrival rate; must accept arguments in the past when startTime is infinite
serviceCcdfG^c(x) = P(S > x)
ESthe mean service time
tvalsthe times at which to evaluate
startTimetime the system started empty; -Inf assumes an infinite past
ES2the second moment of the service time; NaN skips the lag
servicePdfthe service density for the exact departure rate, or empty
tolservice-tail cut for the age integral
panelsSimpson panels for that integral
maxAgecap 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().

◆ qsys_mtgs0_mol()

template<class T>
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.

Parameters
lambdaFunthe arrival rate
serviceCcdfG^c(x) = P(S > x)
ESthe mean service time
snumber of servers
tvalstimes at which to evaluate
startTimetime the system started empty; -Inf assumes an infinite past
delayuse 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().

◆ qsys_mxm1()

template<class T>
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.

Parameters
lambda_batchbatch arrival rate
muservice rate
E_Xmean batch size
E_X2second 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().

◆ qsys_mxm1_pmf()

template<class T>
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().

◆ qsys_mxm1_variance()

template<class T>
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().

◆ qsys_phm1() [1/2]

template<class T>
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().

◆ qsys_phm1() [2/2]

template<class T>
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.

Parameters
alphaPH entry probability vector, length k
TmPH sub-generator, k x k
muexponential service rate
tolwidth 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().

◆ qsys_phmc() [1/2]

template<class T>
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().

◆ qsys_phmc() [2/2]

template<class T>
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.

Parameters
alphaPH entry probability vector, length k
TmPH sub-generator, k x k
muexponential service rate of one server
cnumber of servers, c >= 1
maxIteriteration budget for the R fixed point (MATLAB 50000)
tolconvergence 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().

◆ qsys_phph1() [1/2]

template<class T>
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().

◆ qsys_phph1() [2/2]

template<class T>
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.

Parameters
alphaPH arrival entry vector, length n
TmPH arrival sub-generator, n x n
betaPH service entry vector, length m
SPH service sub-generator, m x m
dist_sizehow 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().

◆ qsys_tandem_lindley()

template<class T>
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.

Parameters
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().

◆ qsys_tandem_ub_ciucu()

template<class T>
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.

Parameters
xthresholds at which the tails are bounded, nonnegative
lstinterarrival transform, s -> E[e^{-s X}] for s >= 0
pservice phase probabilities, nonnegative and summing to one
muservice phase rates, positive
dlsts -> 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().