![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Two-level multigrid aggregation-disaggregation for a nearly completely decomposable CTMC. More...
#include <cstddef>#include <vector>#include "line/api/mc/ctmc_courtois.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::mc::MultiResult< T > |
Namespaces | |
| namespace | line |
| namespace | line::mc |
Functions | |
| template<class T> | |
| MultiResult< T > | line::mc::ctmc_multi (const Matrix< T > &Q, const std::vector< std::vector< std::size_t > > &MS, const std::vector< std::vector< std::size_t > > &MSS, const T &q) |
| Two-level multigrid aggregation-disaggregation for a nearly completely decomposable CTMC. | |
| template<class T> | |
| MultiResult< T > | line::mc::ctmc_multi (const Matrix< T > &Q, const std::vector< std::vector< std::size_t > > &MS, const std::vector< std::vector< std::size_t > > &MSS) |
| Overload deriving the rate as MATLAB does, q = (21/20) max|Qperm|. | |
Two-level multigrid aggregation-disaggregation for a nearly completely decomposable CTMC.
Templated port of matlab/src/api/mc/ctmc_multi.m and jar/src/main/java/jline/api/mc/Ctmc_multi.java. The construction is exactly Courtois's: permute into macro-state order, decouple, solve each diagonal block for its conditional distribution, and assemble the macro-state chain G. The one difference, and the whole point of the method, is that G is not solved directly but decomposed AGAIN, by a second Courtois step over the macro-macro-states MSS, so the coarse problem is itself solved by aggregation. This is the one-step, two-level instance of multigrid; a full multi-level implementation is repeated coarsening with the same base method.
The fine level is shared verbatim with ctmc_courtois rather than duplicated, so the two cannot drift apart.
GATED ON TRANSCENDENTAL ARITHMETIC: both levels are Courtois steps, and epsMAX is an eigenvalue modulus.
Definition in file ctmc_multi.h.