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

SolverCTMC: the average table plus the chain it was computed from. More...

#include <line/solvers/solver.h>

Inheritance diagram for line::SolverCTMC:
Collaboration diagram for line::SolverCTMC:

Public Member Functions

 SolverCTMC (Network &m, const SolverOptions &o=SolverOptions())
 SolverCTMC (Network &m, const std::string &method)
Matrix< double > state_space ()
 getStateSpace(): the aggregate state space, one row per state.
Matrix< double > generator ()
 getGenerator(): the infinitesimal generator over that space.
double prob_aggr (std::size_t node, const std::vector< double > &state)
 getProbAggr(node, state): the aggregate marginal of one state.
std::vector< double > marg_aggr (std::size_t node)
 getProbStateAggr(node): the marginal over every state of one station.
std::vector< std::vector< CdfCurve > > cdf_respt ()
 getCdfRespT(): the response-time CDF per (station, class).
SymbolicSolution symbolic_solution ()
 getSymbolicSolution(): the stationary law over the rate symbols x1..xE.
Public Member Functions inherited from line::NetworkSolver
virtual ~NetworkSolver ()
const std::string & get_name () const
 getName(): the solver's own name, e.g.
const SolverOptions & options () const
 The options this solver was built with.
Network & model () const
 The model this solver was built on.
const AvgTable & avg_table ()
 getAvgTable(): the average table, solving on first demand.
const AvgTable & avg_sys_table ()
 getAvgSysTable(): the per-class system columns of the same solve.
const AvgTable & run_analyzer ()
 runAnalyzer(): force the solve, returning the table it produced.
std::vector< std::string > list_valid_methods () const
 listValidMethods(): the methods this solver advertises on this model.
bool is_solved () const
 isSolved() / hasResults(): whether a solve has been performed.
void reset ()
 reset(): discard the cached solve.
std::string method_used ()
 getMethodUsed(): the method the solve actually resolved to.

Static Public Member Functions

static void print_inf_gen (const Matrix< double > &Q, const Matrix< double > &space)
 CTMC.printInfGen(Q, SS): the generator beside the state it belongs to.

Additional Inherited Members

Protected Member Functions inherited from line::NetworkSolver
 NetworkSolver (Network &m, const std::string &name, const SolverOptions &o)
Protected Attributes inherited from line::NetworkSolver
Network * model_
std::string name_
SolverOptions opts_
AvgTable table_
bool solved_ = false

Detailed Description

SolverCTMC: the average table plus the chain it was computed from.

Definition at line 171 of file solver.h.

Constructor & Destructor Documentation

◆ SolverCTMC() [1/2]

line::SolverCTMC::SolverCTMC ( Network & m,
const SolverOptions & o = SolverOptions() )
inlineexplicit

Definition at line 173 of file solver.h.

References line::NetworkSolver::NetworkSolver().

◆ SolverCTMC() [2/2]

line::SolverCTMC::SolverCTMC ( Network & m,
const std::string & method )
inline

Definition at line 175 of file solver.h.

References line::NetworkSolver::NetworkSolver().

Member Function Documentation

◆ cdf_respt()

std::vector< std::vector< CdfCurve > > line::SolverCTMC::cdf_respt ( )

getCdfRespT(): the response-time CDF per (station, class).

Definition at line 608 of file solver_facade.cpp.

References line::qn::Network< T >::get_struct(), line::NetworkSolver::model_, line::NetworkSolver::opts_, and line::ctmc::solver_ctmc_cdf_respt().

◆ generator()

Matrix< double > line::SolverCTMC::generator ( )

getGenerator(): the infinitesimal generator over that space.

Definition at line 561 of file solver_facade.cpp.

References line::ctmc::ctmc_get_infgen(), line::qn::Network< T >::get_struct(), line::NetworkSolver::model_, line::NetworkSolver::opts_, and line::ctmc::solver_ctmc_analyzer().

◆ marg_aggr()

std::vector< double > line::SolverCTMC::marg_aggr ( std::size_t node)

◆ print_inf_gen()

void line::SolverCTMC::print_inf_gen ( const Matrix< double > & Q,
const Matrix< double > & space )
static

CTMC.printInfGen(Q, SS): the generator beside the state it belongs to.

Definition at line 635 of file solver_facade.cpp.

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

◆ prob_aggr()

double line::SolverCTMC::prob_aggr ( std::size_t node,
const std::vector< double > & state )

◆ state_space()

Matrix< double > line::SolverCTMC::state_space ( )

getStateSpace(): the aggregate state space, one row per state.

Definition at line 555 of file solver_facade.cpp.

References line::ctmc::ctmc_get_state_space(), line::qn::Network< T >::get_struct(), line::NetworkSolver::model_, line::NetworkSolver::opts_, and line::ctmc::solver_ctmc_analyzer().

◆ symbolic_solution()

SymbolicSolution line::SolverCTMC::symbolic_solution ( )

getSymbolicSolution(): the stationary law over the rate symbols x1..xE.

The generator itself needs no computer algebra, being linear in the symbols, but solving pi Q = 0 over the field of rational functions does, and that is delegated to the backend options.symbolic names. Throws when no backend can be resolved rather than returning a numeric answer under a symbolic name.

Definition at line 621 of file solver_facade.cpp.

References line::ctmc::ctmc_symbolic_solution(), line::ctmc::CtmcSymbolicSolution< T >::den, line::SymbolicSolution::den, line::ctmc::CtmcSymbolicSolution< T >::engine, line::SymbolicSolution::engine, line::qn::Network< T >::get_struct(), line::NetworkSolver::model_, line::ctmc::CtmcSymbolicSolution< T >::num, line::SymbolicSolution::num, line::NetworkSolver::opts_, line::ctmc::CtmcSymbolicSolution< T >::pi, line::SymbolicSolution::pi, line::ctmc::CtmcSymbolicSolution< T >::rate0, line::SymbolicSolution::rate0, line::ctmc::CtmcSymbolicSolution< T >::symbols, and line::SymbolicSolution::symbols.


The documentation for this class was generated from the following files: