![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Classes | |
| struct | GegecnResult |
| What me_gegecn returns: the law and the four means read off it. More... | |
| struct | MeBlkOptions |
| Controls of the blocking fixed point, me_oqn_blk's options struct. More... | |
| struct | MeBlkResult |
| What me_oqn_blk returns, per station. More... | |
| struct | MeOptions |
| Iteration control, mirroring the MATLAB options struct. More... | |
| struct | MeResult |
| Mean-value results shared by the open, closed and mixed algorithms. More... | |
Functions | |
| template<class T> | |
| MeResult< T > | me_cqn (std::size_t M, std::size_t R, const std::vector< long > &N, const Matrix< T > &mu, const Matrix< T > &Cs, const std::vector< Matrix< T > > &P, const std::vector< long > &c, const std::vector< long > &refstat_in, const std::vector< char > &insens, const MeOptions &opt=MeOptions()) |
| Maximum-entropy algorithm for closed multiclass queueing networks. | |
| template<class T> | |
| T | me_gegec_mql (const T &lambda, const T &Ca, const T &mu, const T &Cs, long c) |
| Port of me_gegec_mql. | |
| template<class T> | |
| GegecnResult< T > | me_gegecn (const T &lambda, const T &Ca, const T &mu, const T &Cs, long c, long K, long N) |
| Port of me_gegecn. | |
| template<class T> | |
| T | me_gegecn_pb (const std::vector< T > &p, long K, long N, long c, const T &Cs, const T &Ca) |
| Port of me_gegecn_pb. | |
| template<class T> | |
| MeResult< T > | me_mqn (std::size_t M, std::size_t R, const std::vector< char > &open_classes, const Matrix< T > &lambda0, const Matrix< T > &Ca0, const std::vector< long > &N, const Matrix< T > &mu, const Matrix< T > &Cs, const std::vector< Matrix< T > > &P, const std::vector< long > &c, const std::vector< long > &refstat, const std::vector< char > &insens, const MeOptions &opt=MeOptions()) |
| Maximum-entropy algorithm for mixed open/closed multiclass networks. | |
| template<class T> | |
| MeResult< T > | me_oqn (std::size_t M, std::size_t R, const Matrix< T > &lambda0, const Matrix< T > &Ca0, const Matrix< T > &mu, const Matrix< T > &Cs, const std::vector< Matrix< T > > &P, const std::vector< long > &c, const std::vector< char > &insens, const MeOptions &opt=MeOptions()) |
| Maximum-entropy algorithm for open multiclass queueing networks. | |
| template<class T> | |
| MeBlkResult< T > | me_oqn_blk (std::size_t M, const std::vector< T > &lambda0, const std::vector< T > &Ca0, const std::vector< T > &mu, const std::vector< T > &Cs, const Matrix< T > &P, const std::vector< long > &c, const std::vector< long > &N, const std::vector< int > &blockrule, const MeBlkOptions &opt=MeBlkOptions()) |
| Port of me_oqn_blk. | |
| MeResult< T > line::me::me_cqn | ( | std::size_t | M, |
| std::size_t | R, | ||
| const std::vector< long > & | N, | ||
| const Matrix< T > & | mu, | ||
| const Matrix< T > & | Cs, | ||
| const std::vector< Matrix< T > > & | P, | ||
| const std::vector< long > & | c, | ||
| const std::vector< long > & | refstat_in, | ||
| const std::vector< char > & | insens, | ||
| const MeOptions & | opt = MeOptions() ) |
Maximum-entropy algorithm for closed multiclass queueing networks.
| M | number of stations |
| R | number of classes |
| N | class populations (R) |
| mu | service rates (M x R) |
| Cs | service scvs (M x R) |
| P | routing, R matrices (M x M) |
| c | servers per station, 0 for an infinite-server station; finite values must be 1 |
| refstat_in | reference station per class, or -1 for the first station the class is served at |
| insens | insensitive discipline flags per station |
| opt | tolerance and iteration budget |
Definition at line 463 of file me_cqn.h.
References line::me::MeResult< T >::Ca, line::me::MeResult< T >::Cd, line::me::MeResult< T >::converged, line::InputError::InputError(), line::me::MeResult< T >::iter, line::me::MeResult< T >::L, line::me::MeResult< T >::lambda, line::Matrix< T >::Matrix(), me_cqn(), line::num_abs(), line::me::MeResult< T >::rho, line::me::MeResult< T >::W, and line::me::MeResult< T >::X.
Referenced by me_cqn(), me_mqn(), and line::nc::solver_nc_mem().
| T line::me::me_gegec_mql | ( | const T & | lambda, |
| const T & | Ca, | ||
| const T & | mu, | ||
| const T & | Cs, | ||
| long | c ) |
Port of me_gegec_mql.
| lambda | arrival rate |
| Ca | squared coefficient of variation of the interarrival times |
| mu | service rate of ONE server |
| Cs | squared coefficient of variation of the service times |
| c | number of servers, finite and at least 1 |
Definition at line 53 of file me_gegec_mql.h.
References line::InputError::InputError(), and me_gegec_mql().
Referenced by me_gegec_mql(), and me_oqn_blk().
| GegecnResult< T > line::me::me_gegecn | ( | const T & | lambda, |
| const T & | Ca, | ||
| const T & | mu, | ||
| const T & | Cs, | ||
| long | c, | ||
| long | K, | ||
| long | N ) |
Port of me_gegecn.
| lambda | arrival rate OFFERED to the queue, the arrivals turned away included |
| Ca | squared coefficient of variation of the interarrival times; the GE distribution needs at least 1 |
| mu | service rate of ONE server |
| Cs | squared coefficient of variation of the service times, >= 1 |
| c | number of servers, finite and at least 1 |
| K | minimum number of jobs in the queue, >= 0 |
| N | buffer capacity in jobs, service included, finite and > K |
Definition at line 75 of file me_gegecn.h.
References line::InputError::InputError(), line::me::GegecnResult< T >::L, line::me::GegecnResult< T >::Lq, me_gegecn(), me_gegecn_pb(), line::me::GegecnResult< T >::p, line::me::GegecnResult< T >::PB, and line::me::GegecnResult< T >::U.
Referenced by me_gegecn(), and me_oqn_blk().
| T line::me::me_gegecn_pb | ( | const std::vector< T > & | p, |
| long | K, | ||
| long | N, | ||
| long | c, | ||
| const T & | Cs, | ||
| const T & | Ca ) |
Port of me_gegecn_pb.
| p | queue-length distribution, p[idx] = Pr{n = K + idx} |
| K | minimum number of jobs in the queue |
| N | buffer capacity in jobs |
| c | number of servers |
| Cs | squared coefficient of variation of the service times |
| Ca | squared coefficient of variation of the interarrival times OF THE STREAM whose blocking probability is requested |
Definition at line 58 of file me_gegecn_pb.h.
References line::InputError::InputError(), me_gegecn_pb(), and line::num_pow_int().
Referenced by me_gegecn(), me_gegecn_pb(), and me_oqn_blk().
| MeResult< T > line::me::me_mqn | ( | std::size_t | M, |
| std::size_t | R, | ||
| const std::vector< char > & | open_classes, | ||
| const Matrix< T > & | lambda0, | ||
| const Matrix< T > & | Ca0, | ||
| const std::vector< long > & | N, | ||
| const Matrix< T > & | mu, | ||
| const Matrix< T > & | Cs, | ||
| const std::vector< Matrix< T > > & | P, | ||
| const std::vector< long > & | c, | ||
| const std::vector< long > & | refstat, | ||
| const std::vector< char > & | insens, | ||
| const MeOptions & | opt = MeOptions() ) |
Maximum-entropy algorithm for mixed open/closed multiclass networks.
| M | number of stations |
| R | number of classes |
| open_classes | per-class flag, nonzero for an open class |
| lambda0 | external arrival rates (M x R), zero for closed classes |
| Ca0 | external arrival scvs (M x R) |
| N | populations (R); the entries of open classes are unused |
| mu | service rates (M x R) |
| Cs | service scvs (M x R) |
| P | routing, R matrices (M x M) |
| c | servers per station, 0 for an infinite-server station |
| refstat | reference station per class, -1 for the default |
| insens | insensitive discipline flags per station |
| opt | tolerance and iteration budget |
Definition at line 78 of file me_mqn.h.
References line::me::MeResult< T >::Ca, line::me::MeResult< T >::Cd, line::me::MeResult< T >::converged, line::InputError::InputError(), line::me::MeResult< T >::iter, line::me::MeResult< T >::L, line::me::MeResult< T >::lambda, line::Matrix< T >::Matrix(), me_cqn(), me_mqn(), me_oqn(), line::me::MeResult< T >::rho, line::me::MeResult< T >::W, and line::me::MeResult< T >::X.
Referenced by me_mqn(), and line::nc::solver_nc_mem().
| MeResult< T > line::me::me_oqn | ( | std::size_t | M, |
| std::size_t | R, | ||
| const Matrix< T > & | lambda0, | ||
| const Matrix< T > & | Ca0, | ||
| const Matrix< T > & | mu, | ||
| const Matrix< T > & | Cs, | ||
| const std::vector< Matrix< T > > & | P, | ||
| const std::vector< long > & | c, | ||
| const std::vector< char > & | insens, | ||
| const MeOptions & | opt = MeOptions() ) |
Maximum-entropy algorithm for open multiclass queueing networks.
| M | number of stations |
| R | number of classes |
| lambda0 | external arrival rates (M x R) |
| Ca0 | external arrival scvs (M x R) |
| mu | service rates (M x R) |
| Cs | service scvs (M x R) |
| P | routing, R matrices (M x M), P[r](j,i) |
| c | servers per station, 0 for an infinite-server station |
| insens | insensitive discipline flags per station |
| opt | tolerance and iteration budget |
Definition at line 121 of file me_oqn.h.
References line::me::MeResult< T >::Ca, line::me::MeResult< T >::Cd, line::Matrix< T >::cols(), line::me::MeResult< T >::converged, line::InputError::InputError(), line::me::MeResult< T >::iter, line::me::MeResult< T >::L, line::me::MeResult< T >::lambda, line::Matrix< T >::Matrix(), me_oqn(), line::num_abs(), line::NumericError::NumericError(), line::me::MeResult< T >::rho, line::Matrix< T >::rows(), line::me::MeResult< T >::W, and line::me::MeResult< T >::X.
Referenced by me_mqn(), me_oqn(), and line::nc::solver_nc_mem().
| MeBlkResult< T > line::me::me_oqn_blk | ( | std::size_t | M, |
| const std::vector< T > & | lambda0, | ||
| const std::vector< T > & | Ca0, | ||
| const std::vector< T > & | mu, | ||
| const std::vector< T > & | Cs, | ||
| const Matrix< T > & | P, | ||
| const std::vector< long > & | c, | ||
| const std::vector< long > & | N, | ||
| const std::vector< int > & | blockrule, | ||
| const MeBlkOptions & | opt = MeBlkOptions() ) |
Port of me_oqn_blk.
| M | number of stations |
| lambda0 | external arrival rates (M) |
| Ca0 | external interarrival scv (M), at least 1 where lambda0 > 0 |
| mu | service rates (M) |
| Cs | service scv (M), at least 1 at every finite-buffer station |
| P | routing (M x M), P(i,j) = p_ij; a row sum below one sends the residual flow out of the network |
| c | servers per station (M); 0 marks an infinite server, as everywhere else in api/me |
| N | buffer capacity per station (M) in jobs, service included; 0 marks an unbounded buffer |
| blockrule | per station (M): 0 = loss, 1 = transfer blocking |
| opt | tolerance, iteration budget and relaxation weight |
Definition at line 113 of file me_oqn_blk.h.
References line::me::MeBlkResult< T >::Ca, line::me::MeBlkResult< T >::Cd, line::Matrix< T >::cols(), line::me::MeBlkResult< T >::converged, line::InputError::InputError(), line::me::MeBlkResult< T >::iter, line::me::GegecnResult< T >::L, line::me::MeBlkResult< T >::lambda, me_gegec_mql(), me_gegecn(), me_gegecn_pb(), me_oqn_blk(), line::NumericError::NumericError(), line::me::GegecnResult< T >::p, line::me::MeBlkResult< T >::PBa, line::me::MeBlkResult< T >::Q, line::Matrix< T >::rows(), line::solve(), line::me::MeBlkResult< T >::T_, line::me::GegecnResult< T >::U, line::me::MeBlkResult< T >::U, and line::me::MeBlkResult< T >::W.
Referenced by me_oqn_blk(), and line::nc::solver_nc_mem().