![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
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 std::complex<double> line::qsys::mmapgk1lcfsprdetail::cdbl |
Definition at line 96 of file qsys_mmapgk1_lcfspr.h.
| typedef std::vector<std::vector<cdbl> > line::qsys::mmapgk1lcfsprdetail::CMat |
Definition at line 97 of file qsys_mmapgk1_lcfspr.h.
|
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().
|
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().
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().
|
inline |
Definition at line 101 of file qsys_mmapgk1_lcfspr.h.
References ceye(), and czeros().
Referenced by ceig_decomp(), cexpm(), and ceye().
Definition at line 107 of file qsys_mmapgk1_lcfspr.h.
References cmatmul().
Referenced by ceig_decomp(), cexpm(), cmatmul(), and sojourn_lst().
| CMat line::qsys::mmapgk1lcfsprdetail::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.
Definition at line 305 of file qsys_mmapgk1_lcfspr.h.
References ceig_apply(), ceig_decomp(), cexpm(), cmatrix_lst(), cmatrix_lst_map(), czeros(), line::lang::DET, line::lang::dist_lst(), line::lang::dist_moment(), line::lang::dist_to_map(), line::lang::process_is_markovian(), and line::lang::Distrib< T >::type.
Referenced by cmatrix_lst(), cmatrix_lst(), and sojourn_lst().
| CMat line::qsys::mmapgk1lcfsprdetail::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.
Definition at line 357 of file qsys_mmapgk1_lcfspr.h.
References ceig_apply(), ceig_decomp(), cmatrix_lst(), cmatrix_lst_map(), line::qsys::MmapGk1Service< T >::dist, line::qsys::MmapGk1Service< T >::kind, line::qsys::MmapGk1Service< T >::MAP, line::qsys::MmapGk1Service< T >::map, line::qsys::MmapGk1Service< T >::TRANSFORM, and line::qsys::MmapGk1Service< T >::transform.
| 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().
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().
|
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().
|
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().
| 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().
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().