![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Limiting distribution of a CTMC whose generator may be reducible. More...
#include <cstddef>#include <vector>#include "line/api/mc/ctmc_randomization.h"#include "line/api/mc/dtmc_solve_reducible.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::mc |
Functions | |
| template<class T> | |
| ReducibleResult< T > | line::mc::ctmc_solve_reducible (const Matrix< T > &Q, const std::vector< T > &pi0, double zeroColTol=1e-12) |
| Limiting distribution of a CTMC whose generator may be reducible. | |
| template<class T> | |
| ReducibleResult< T > | line::mc::ctmc_solve_reducible (const Matrix< T > &Q, double zeroColTol=1e-12) |
| Overload without an initial vector. | |
Limiting distribution of a CTMC whose generator may be reducible.
Templated port of matlab/src/api/mc/ctmc_solve_reducible.m and jar/src/main/java/jline/api/mc/Ctmc_solve_reducible.java: the generator is uniformized and handed to dtmc_solve_reducible, which does all the work. The uniformized chain has the same strongly connected components and the same limiting distribution as the CTMC, so nothing is lost by the detour, and the component logic lives in exactly one place.
EXACT. Uniformization at the deterministic rate (21/20) max|Q| is a field operation and the reducible solver carries no tolerance either, so a generator with rational rates yields the exact limiting distribution. This is the routine ctmc_courtois uses for its diagonal blocks, which is how the exactness reaches the aggregation methods' microprobabilities.
Definition in file ctmc_solve_reducible.h.