LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
map_moment.h File Reference

Markovian arrival process descriptors: stationary vectors, rate, moments, autocorrelation and the index of dispersion. More...

#include <cstddef>
#include <vector>
#include "line/api/mc/ctmc_solve.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/linalg.h"
#include "line/util/matrix.h"
Include dependency graph for map_moment.h:

Go to the source code of this file.

Classes

struct  line::mam::Map< T >
 A MAP as the pair of matrices (D0, D1). More...

Namespaces

namespace  line
namespace  line::mam

Functions

int line::mam::map_feastol ()
 Tolerance exponent shared by the KPC feasibility checks (map_feastol.m).
template<class T>
Matrix< T > line::mam::map_infgen (const Map< T > &m)
 Generator of the underlying phase process, D0 + D1.
template<class T>
std::vector< T > line::mam::map_prob (const Map< T > &m)
 Stationary distribution of the phase process, pi (D0 + D1) = 0.
template<class T>
line::mam::map_lambda (const Map< T > &m)
 Stationary arrival rate, lambda = pi D1 e.
template<class T>
std::vector< T > line::mam::map_pie (const Map< T > &m)
 Phase distribution seen by an arriving job, pie = pi D1 / (pi D1 e).
template<class T>
line::mam::map_mean (const Map< T > &m)
 Mean inter-arrival time, 1/lambda.
template<class T>
Matrix< T > line::mam::map_embedded (const Map< T > &m)
 Embedded DTMC at arrival epochs, P = (-D0)^-1 D1.
template<class T>
line::mam::map_moment (const Map< T > &m, unsigned k)
 Raw moment of order k of the inter-arrival time: k!
template<class T>
line::mam::map_var (const Map< T > &m)
 Variance of the inter-arrival time.
template<class T>
line::mam::map_scv (const Map< T > &m)
 Squared coefficient of variation.
template<class T>
std::vector< T > line::mam::map_acf (const Map< T > &m, const std::vector< unsigned > &lags)
 Autocorrelation coefficients of the inter-arrival times at the given lags,.
template<class T>
line::mam::map_idc (const Map< T > &m)
 Index of dispersion for counts, I = 1 + 2(lambda - pie (Q + e pi)^-1 D1 e).
template<class T>
Map< T > line::mam::map_exponential (const T &lambda)
 Two-phase MAP constructor for a Poisson process of rate lambda.

Detailed Description

Markovian arrival process descriptors: stationary vectors, rate, moments, autocorrelation and the index of dispersion.

Templated port of the kpctoolbox MAP primitives used across LINE (matlab/lib/kpctoolbox/map/map_prob.m, map_pie.m, map_lambda.m, map_mean.m, map_moment.m, map_var.m, map_scv.m, map_embedded.m, map_acf.m, map_idc.m, map_infgen.m).

A MAP is the pair (D0, D1): D0 carries the hidden transitions and the negative diagonal, D1 the transitions that emit an arrival. The whole family is rational in the entries of D0 and D1 – stationary vectors are linear solves, moments are i! pie (-D0)^-i e – so all of it is exact in rational arithmetic. That matters for fitting work, where the moments of a candidate MAP are compared against targets and a rounding artifact is easy to mistake for a fitting error.

Definition in file map_moment.h.