5#ifndef LINE_API_QSYS_QSYS_MAPPH1_H
6#define LINE_API_QSYS_QSYS_MAPPH1_H
80mam::Map<T> ph_to_map(
const std::vector<T>& beta,
const Matrix<T>& S) {
81 const std::size_t m = S.rows();
82 if (S.cols() != m || beta.size() != m)
83 throw InputError(
"ph_to_map: beta and S dimensions are inconsistent");
86 out.D1 =
Matrix<T>(m, m, num_traits<T>::from_int(0));
87 for (std::size_t i = 0; i < m; ++i) {
88 T exit = num_traits<T>::from_int(0);
89 for (std::size_t j = 0; j < m; ++j) exit -= S(i, j);
90 for (std::size_t j = 0; j < m; ++j) out.D1(i, j) = exit * beta[j];
107 const Matrix<T>& S, std::size_t dist_size) {
109 "qsys_mapph1 requires transcendental arithmetic");
110 return qsys_mapmap1(arrival, detail::ph_to_map(sigma, S), dist_size);
117 return qsys_mapph1(arrival, sigma, S,
static_cast<std::size_t
>(100));
The exception types the port throws.
Markovian arrival process descriptors: stationary vectors, rate, moments, autocorrelation and the ind...
Dense matrix and non-owning view.
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.
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.
Conservation laws of a layered queueing network, enumerated from its structure.
Number-type abstraction for the templated API port.
The MAP/MAP/1 FCFS queue: mean number in system, waiting time, sojourn time, utilization and the queu...
A MAP as the pair of matrices (D0, D1).
Return value of the MAP/MAP/1 family (qsys_mapmap1, qsys_mapph1, qsys_phph1), carrying the same quant...