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

Typedefs

typedef std::complex< double > cdbl
typedef std::vector< std::vector< cdbl > > CMat

Functions

CMat czeros (std::size_t n)
CMat ceye (std::size_t n)
CMat cmatmul (const CMat &A, const CMat &B)
template<class T>
CMat to_cmat (const Matrix< T > &A)
CMat csolve (const CMat &A, const CMat &B)
 X = A^-1 B over the complex field, column by column.
CMat cexpm (CMat A)
 Complex matrix exponential, scaling and squaring over a Taylor series.
void ceig_decomp (const CMat &U, std::vector< cdbl > &ev, CMat &V, CMat &Vinv, double &rcond)
 U = V diag(ev) V^-1 for a COMPLEX matrix, the reference's eig(U) at a complex argument.
CMat ceig_apply (const CMat &V, const CMat &Vinv, const std::vector< cdbl > &g)
 V diag(g) V^-1, kept complex.
template<class T>
CMat cmatrix_lst_map (const mam::Map< T > &rep, const CMat &U)
 int exp(Ut) dF(t) for a (D0, D1) phase-type law at a complex U, on the Kronecker sum.
template<class T>
CMat cmatrix_lst (const lang::Distrib< T > &law, const CMat &U, std::size_t quad_nodes)
 The matrix transform of a Distribution object at a complex U.
template<class T>
CMat cmatrix_lst (const MmapGk1Service< T > &svc, const CMat &U, std::size_t quad_nodes)
 The matrix transform of a service law in any of its three forms, at a complex U.
template<class T>
std::vector< cdbl > sojourn_lst (const Matrix< T > &D0, const std::vector< Matrix< T > > &Dk, const std::vector< MmapGk1Service< T > > &svc, const std::vector< T > &piArr, const std::vector< T > &lambdas, cdbl s, std::size_t quad_nodes, double tol)
 Per-type sojourn LST pi D_k F_k(Q*(s)) e / lambda_k, Q*(s) the minimal solution of Q* = C - sI + sum_j D_j F_j(Q*), iterated from C - sI.
double euler_invert (const std::function< cdbl(cdbl)> &lst, double t)
 Abate-Whitt Euler inversion of a CDF from its LST, qsys_mmapgk1_invert.m.

Typedef Documentation

◆ cdbl

typedef std::complex<double> line::qsys::mmapgk1lcfsprdetail::cdbl

Definition at line 96 of file qsys_mmapgk1_lcfspr.h.

◆ CMat

typedef std::vector<std::vector<cdbl> > line::qsys::mmapgk1lcfsprdetail::CMat

Definition at line 97 of file qsys_mmapgk1_lcfspr.h.

Function Documentation

◆ ceig_apply()

CMat line::qsys::mmapgk1lcfsprdetail::ceig_apply ( const CMat & V,
const CMat & Vinv,
const std::vector< cdbl > & g )
inline

V diag(g) V^-1, kept complex.

Definition at line 258 of file qsys_mmapgk1_lcfspr.h.

References ceig_apply(), and czeros().

Referenced by ceig_apply(), cmatrix_lst(), and cmatrix_lst().

◆ ceig_decomp()

void line::qsys::mmapgk1lcfsprdetail::ceig_decomp ( const CMat & U,
std::vector< cdbl > & ev,
CMat & V,
CMat & Vinv,
double & rcond )
inline

U = V diag(ev) V^-1 for a COMPLEX matrix, the reference's eig(U) at a complex argument.

The same LAPACK-free route as mmapgk1detail::eig_decomp (Faddeev-LeVerrier, Durand-Kerner, inverse iteration), with complex coefficients throughout. rcond is the reciprocal 1-norm condition number of V, 0 when V could not be inverted.

Definition at line 178 of file qsys_mmapgk1_lcfspr.h.

References ceig_decomp(), ceye(), cmatmul(), and czeros().

Referenced by ceig_decomp(), cmatrix_lst(), and cmatrix_lst().

◆ cexpm()

CMat line::qsys::mmapgk1lcfsprdetail::cexpm ( CMat A)
inline

Complex matrix exponential, scaling and squaring over a Taylor series.

Definition at line 142 of file qsys_mmapgk1_lcfspr.h.

References cexpm(), ceye(), and cmatmul().

Referenced by cexpm(), and cmatrix_lst().

◆ ceye()

CMat line::qsys::mmapgk1lcfsprdetail::ceye ( std::size_t n)
inline

Definition at line 101 of file qsys_mmapgk1_lcfspr.h.

References ceye(), and czeros().

Referenced by ceig_decomp(), cexpm(), and ceye().

◆ cmatmul()

CMat line::qsys::mmapgk1lcfsprdetail::cmatmul ( const CMat & A,
const CMat & B )
inline

Definition at line 107 of file qsys_mmapgk1_lcfspr.h.

References cmatmul().

Referenced by ceig_decomp(), cexpm(), cmatmul(), and sojourn_lst().

◆ cmatrix_lst() [1/2]

template<class T>
CMat line::qsys::mmapgk1lcfsprdetail::cmatrix_lst ( const lang::Distrib< T > & law,
const CMat & U,
std::size_t quad_nodes )

◆ cmatrix_lst() [2/2]

template<class T>
CMat line::qsys::mmapgk1lcfsprdetail::cmatrix_lst ( const MmapGk1Service< T > & svc,
const CMat & U,
std::size_t quad_nodes )

◆ cmatrix_lst_map()

template<class T>
CMat line::qsys::mmapgk1lcfsprdetail::cmatrix_lst_map ( const mam::Map< T > & rep,
const CMat & U )

int exp(Ut) dF(t) for a (D0, D1) phase-type law at a complex U, on the Kronecker sum.

Definition at line 272 of file qsys_mmapgk1_lcfspr.h.

References cmatrix_lst_map(), csolve(), czeros(), line::mam::Map< T >::D0, and line::mam::map_pie().

Referenced by cmatrix_lst(), cmatrix_lst(), and cmatrix_lst_map().

◆ csolve()

CMat line::qsys::mmapgk1lcfsprdetail::csolve ( const CMat & A,
const CMat & B )
inline

X = A^-1 B over the complex field, column by column.

Definition at line 129 of file qsys_mmapgk1_lcfspr.h.

References csolve().

Referenced by cmatrix_lst_map(), and csolve().

◆ czeros()

CMat line::qsys::mmapgk1lcfsprdetail::czeros ( std::size_t n)
inline

Definition at line 99 of file qsys_mmapgk1_lcfspr.h.

References czeros().

Referenced by ceig_apply(), ceig_decomp(), ceye(), cmatrix_lst(), cmatrix_lst_map(), and czeros().

◆ euler_invert()

double line::qsys::mmapgk1lcfsprdetail::euler_invert ( const std::function< cdbl(cdbl)> & lst,
double t )
inline

Abate-Whitt Euler inversion of a CDF from its LST, qsys_mmapgk1_invert.m.

Definition at line 426 of file qsys_mmapgk1_lcfspr.h.

References euler_invert().

Referenced by euler_invert(), and line::qsys::qsys_mmapgk1_lcfspr().

◆ sojourn_lst()

template<class T>
std::vector< cdbl > line::qsys::mmapgk1lcfsprdetail::sojourn_lst ( const Matrix< T > & D0,
const std::vector< Matrix< T > > & Dk,
const std::vector< MmapGk1Service< T > > & svc,
const std::vector< T > & piArr,
const std::vector< T > & lambdas,
cdbl s,
std::size_t quad_nodes,
double tol )

Per-type sojourn LST pi D_k F_k(Q*(s)) e / lambda_k, Q*(s) the minimal solution of Q* = C - sI + sum_j D_j F_j(Q*), iterated from C - sI.

Definition at line 381 of file qsys_mmapgk1_lcfspr.h.

References cmatmul(), cmatrix_lst(), line::Matrix< T >::rows(), sojourn_lst(), and to_cmat().

Referenced by line::qsys::qsys_mmapgk1_lcfspr(), and sojourn_lst().

◆ to_cmat()

template<class T>
CMat line::qsys::mmapgk1lcfsprdetail::to_cmat ( const Matrix< T > & A)

Definition at line 120 of file qsys_mmapgk1_lcfspr.h.

References line::Matrix< T >::cols(), line::Matrix< T >::rows(), and to_cmat().

Referenced by sojourn_lst(), and to_cmat().