5#ifndef LINE_SOLVERS_MAM_SOLVER_MAM_MAPMAP1_EXACT_H
6#define LINE_SOLVERS_MAM_SOLVER_MAM_MAPMAP1_EXACT_H
65 if (K != 1)
return out;
66 if (!std::isinf(L.
classes[0].population))
return out;
68 std::size_t src = 0, q = 0;
69 std::size_t nsrc = 0, nq = 0;
70 for (std::size_t i = 1; i <= M; ++i) {
71 if (L.
stations[i - 1].sched == SchedStrategy::EXT) {
74 }
else if (L.
stations[i - 1].sched == SchedStrategy::FCFS) {
79 if (nsrc != 1 || nq != 1)
return out;
80 if (L.
stations[q - 1].nservers != 1.0)
return out;
83 if (M != 2)
return out;
90 if (!basic_detail::is_markovian_map(arv) || !basic_detail::is_markovian_map(svc))
return out;
92 if (basic_detail::is_renewal_map(arv) && basic_detail::is_renewal_map(svc))
return out;
96 if (!(lambda < mu))
return out;
107 s.
Tp(src - 1, 0) = lambda;
108 s.
Tp(q - 1, 0) = lambda;
109 s.
Q(q - 1, 0) = r.
QN;
110 s.
U(q - 1, 0) = T(lambda / mu);
111 s.
R(q - 1, 0) = T(r.
QN / lambda);
112 s.
C[0] = s.
R(q - 1, 0);
A network plus its refreshed NetworkStruct.
std::vector< std::vector< Distrib< T > > > service
service[i][r], 0-based station and class; a disabled entry marks a pair never visited.
std::vector< std::vector< bool > > disabled
std::vector< JobClass > classes
std::vector< Station< T > > stations
stations[k-1] is the k-th station
What refreshProcessRepresentations and refreshLST compute FROM a distribution: the (D0,...
Markovian arrival process descriptors: stationary vectors, rate, moments, autocorrelation and the ind...
The option and result types every MVA analyzer shares.
mam::Map< T > dist_to_map(const Distrib< T > &d)
SchedStrategy
Scheduling disciplines, with the values of MATLAB SchedStrategy.
QbdMapMap1Result< T > qbd_mapmap1(const Map< T > &arrival, const Map< T > &service_in, const T &util, std::size_t max_levels)
MAP/MAP/1 queue (qbd_mapmap1.m).
MapMap1Exact< T > solver_mam_mapmap1_exact(const qn::NetworkStruct< T > &L)
T map_lambda(const Map< T > &m)
Stationary arrival rate, lambda = pi D1 e.
Conservation laws of a layered queueing network, enumerated from its structure.
A queueing network and its refreshed NetworkStruct.
The MAP/MAP/1 queue solved as a quasi-birth-death process.
Port of solver_mam_basic.m, the dec.source analyzer and the default algorithm of SolverMAM.
Result of the fast path; ok false means the model is not in its regime.
mva::MvaSolution< T > sol
A MAP as the pair of matrices (D0, D1).
Result of qbd_mapmap1, mirroring the MATLAB return list.
T QN
mean number in system, closed form
Class-level results, the [Q,U,R,T,C,X] of the MATLAB analyzers.