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

Time-reversed generator and transition matrix. More...

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

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::mc

Functions

template<class T>
Matrix< T > line::mc::ctmc_timereverse (const Matrix< T > &Q)
 Generator of the time-reversed CTMC.
template<class T>
Matrix< T > line::mc::dtmc_timereverse (const Matrix< T > &P)
 Transition matrix of the time-reversed DTMC.

Detailed Description

Time-reversed generator and transition matrix.

Templated port of matlab/lib/kpctoolbox/mc/ctmc_timereverse.m and dtmc_timereverse.m. The reversed chain is Qrev = diag(pi)^-1 Q' diag(pi), written here as the transpose of the elementwise scaling Q(i,j) pi_i / pi_j, which is the same matrix and is how MATLAB assembles it.

The construction needs the stationary law, so it is defined only for an irreducible chain: on a reducible one the stationary vector is not unique and the reversal is not either.

Definition in file ctmc_timereverse.h.