5#ifndef LINE_API_QSYS_MTGS0_MOL_H
6#define LINE_API_QSYS_MTGS0_MOL_H
78 for (
unsigned j = 1; j <= s; ++j)
93 if (a >= sT)
return one;
96 return b / (one - rho * (one - b));
113 const std::function<T(
const T&)>& serviceCcdf,
const T& ES,
114 unsigned s,
const std::vector<T>& tvals,
115 double startTime = -std::numeric_limits<double>::infinity(),
116 bool delay =
false) {
118 "qsys_mtgs0_mol integrates the offered load, so it needs inexact arithmetic");
119 if (s < 1)
throw InputError(
"qsys_mtgs0_mol: the number of servers s must be at least 1");
127 const std::size_t n = inf.
times.size();
132 for (std::size_t i = 0; i < n; ++i) {
The exception types the port throws.
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.
T qsys_erlang_c(unsigned s, const T &a)
Erlang C from the same recursion; 1 when the load saturates the servers.
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.
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!
Number-type abstraction for the templated API port.
Exact time-varying analysis of the Mt/G/infinity queue.
MOL and PSA measures of a time-varying multiserver system.
std::vector< T > times
the evaluation times
std::vector< T > probBlockPSA
the same at the instantaneous load
std::vector< T > instantLoad
lambda(t)E[S]
std::vector< T > probBlockMOL
B(s,m(t)) or C(s,m(t)).
std::vector< T > meanBusyMOL
carried load m(t)(1-B), or min(m,s) for the delay model
std::vector< T > arrivalRate
lambda(t)
std::vector< T > offeredLoad
m(t), the infinite-server load
Time-varying measures of the Mt/G/infinity queue.
std::vector< T > meanNumber
m(t), the Poisson mean
std::vector< T > times
the evaluation times
std::vector< T > arrivalRate
lambda(t)
std::vector< T > offeredLoadPSA
ES lambda(t), the pointwise stationary approximation.