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

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

Function Documentation

◆ me_cqn()

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

Parameters
Mnumber of stations
Rnumber of classes
Nclass populations (R)
muservice rates (M x R)
Csservice scvs (M x R)
Prouting, R matrices (M x M)
cservers per station, 0 for an infinite-server station; finite values must be 1
refstat_inreference station per class, or -1 for the first station the class is served at
insensinsensitive discipline flags per station
opttolerance 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().

◆ me_gegec_mql()

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

Parameters
lambdaarrival rate
Casquared coefficient of variation of the interarrival times
muservice rate of ONE server
Cssquared coefficient of variation of the service times
cnumber of servers, finite and at least 1
Returns
the mean number of jobs in the queue

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

◆ me_gegecn()

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

Parameters
lambdaarrival rate OFFERED to the queue, the arrivals turned away included
Casquared coefficient of variation of the interarrival times; the GE distribution needs at least 1
muservice rate of ONE server
Cssquared coefficient of variation of the service times, >= 1
cnumber of servers, finite and at least 1
Kminimum number of jobs in the queue, >= 0
Nbuffer 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().

◆ me_gegecn_pb()

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

Parameters
pqueue-length distribution, p[idx] = Pr{n = K + idx}
Kminimum number of jobs in the queue
Nbuffer capacity in jobs
cnumber of servers
Cssquared coefficient of variation of the service times
Casquared coefficient of variation of the interarrival times OF THE STREAM whose blocking probability is requested
Returns
the probability that an arrival of this stream finds the queue full

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

◆ me_mqn()

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

Parameters
Mnumber of stations
Rnumber of classes
open_classesper-class flag, nonzero for an open class
lambda0external arrival rates (M x R), zero for closed classes
Ca0external arrival scvs (M x R)
Npopulations (R); the entries of open classes are unused
muservice rates (M x R)
Csservice scvs (M x R)
Prouting, R matrices (M x M)
cservers per station, 0 for an infinite-server station
refstatreference station per class, -1 for the default
insensinsensitive discipline flags per station
opttolerance 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().

◆ me_oqn()

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

Parameters
Mnumber of stations
Rnumber of classes
lambda0external arrival rates (M x R)
Ca0external arrival scvs (M x R)
muservice rates (M x R)
Csservice scvs (M x R)
Prouting, R matrices (M x M), P[r](j,i)
cservers per station, 0 for an infinite-server station
insensinsensitive discipline flags per station
opttolerance 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().

◆ me_oqn_blk()

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

Parameters
Mnumber of stations
lambda0external arrival rates (M)
Ca0external interarrival scv (M), at least 1 where lambda0 > 0
muservice rates (M)
Csservice scv (M), at least 1 at every finite-buffer station
Prouting (M x M), P(i,j) = p_ij; a row sum below one sends the residual flow out of the network
cservers per station (M); 0 marks an infinite server, as everywhere else in api/me
Nbuffer capacity per station (M) in jobs, service included; 0 marks an unbounded buffer
blockruleper station (M): 0 = loss, 1 = transfer blocking
opttolerance, 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().