LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::mdd::MddDescriptor< T > Struct Template Reference

Kronecker rate descriptor of a structured model, the input of mdd_mcd. More...

#include <line/api/mdd/mdd_types.h>

Collaboration diagram for line::mdd::MddDescriptor< T >:

Public Attributes

std::size_t K = 0
 Number of levels, i.e.
int N = 0
 Closed population; the conservation law the level marginals must satisfy.
std::vector< int > domain
 Local domain per level.
std::vector< T > mu
 Station service rates, 1/E[S]; empty for a descriptor with no queueing parameters.
std::vector< double > servers
 Servers per station; infinite for a delay station.
Matrix< T > P
 Station-to-station routing matrix.
std::vector< std::size_t > nphases
 Phases per station, 1 when exponential.
std::vector< std::vector< double > > valuemap
 valuemap[i][idx] is the physical occupancy of level i in local state idx.
std::vector< int > init
 Initial local index per level.
MddNextState nextfun
 Successor function over local indices.
std::vector< MddEvent< T > > events
 The events of the descriptor.
std::vector< double > invariant_weights
 Optional conservation law as weights' * QLen = value, overriding the closed-population test.
double invariant_value = 0.0
 Value of the invariant when invariant_weights is set.

Detailed Description

template<class T>
struct line::mdd::MddDescriptor< T >

Kronecker rate descriptor of a structured model, the input of mdd_mcd.

Built by mdd_descriptor (count-plus-in-service-phase local states, non-preemptive), mdd_ps (per-phase-count local states, shared servers) or spn::spn_mdd (a stochastic Petri net).

Definition at line 165 of file mdd_types.h.

Member Data Documentation

◆ domain

template<class T>
std::vector<int> line::mdd::MddDescriptor< T >::domain

Local domain per level.

Definition at line 171 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), line::mdd::mdd_ps(), line::ctmc::solver_ctmc_mdd_analyzer(), and line::spn::spn_mdd().

◆ events

template<class T>
std::vector<MddEvent<T> > line::mdd::MddDescriptor< T >::events

The events of the descriptor.

Definition at line 193 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), line::mdd::mdd_mcd(), line::mdd::mdd_ps(), and line::spn::spn_mdd().

◆ init

template<class T>
std::vector<int> line::mdd::MddDescriptor< T >::init

Initial local index per level.

Definition at line 189 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), line::mdd::mdd_ps(), and line::ctmc::solver_ctmc_mdd_analyzer().

◆ invariant_value

template<class T>
double line::mdd::MddDescriptor< T >::invariant_value = 0.0

Value of the invariant when invariant_weights is set.

Definition at line 200 of file mdd_types.h.

Referenced by line::mdd::mdd_mcd(), and line::spn::spn_mdd().

◆ invariant_weights

template<class T>
std::vector<double> line::mdd::MddDescriptor< T >::invariant_weights

Optional conservation law as weights' * QLen = value, overriding the closed-population test.

Empty when the population N is the invariant.

Definition at line 198 of file mdd_types.h.

Referenced by line::mdd::mdd_mcd(), and line::spn::spn_mdd().

◆ K

template<class T>
std::size_t line::mdd::MddDescriptor< T >::K = 0

Number of levels, i.e.

stations or places.

Definition at line 167 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), line::mdd::mdd_ps(), and line::spn::spn_mdd().

◆ mu

template<class T>
std::vector<T> line::mdd::MddDescriptor< T >::mu

Station service rates, 1/E[S]; empty for a descriptor with no queueing parameters.

Definition at line 173 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), line::mdd::mdd_mcd(), and line::mdd::mdd_ps().

◆ N

template<class T>
int line::mdd::MddDescriptor< T >::N = 0

Closed population; the conservation law the level marginals must satisfy.

Definition at line 169 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), line::mdd::mdd_mcd(), line::mdd::mdd_ps(), and line::spn::spn_mdd().

◆ nextfun

template<class T>
MddNextState line::mdd::MddDescriptor< T >::nextfun

Successor function over local indices.

Definition at line 191 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), line::mdd::mdd_ps(), and line::ctmc::solver_ctmc_mdd_analyzer().

◆ nphases

template<class T>
std::vector<std::size_t> line::mdd::MddDescriptor< T >::nphases

Phases per station, 1 when exponential.

Definition at line 179 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), and line::mdd::mdd_ps().

◆ P

template<class T>
Matrix<T> line::mdd::MddDescriptor< T >::P

Station-to-station routing matrix.

Definition at line 177 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), and line::mdd::mdd_ps().

◆ servers

template<class T>
std::vector<double> line::mdd::MddDescriptor< T >::servers

Servers per station; infinite for a delay station.

Definition at line 175 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), line::mdd::mdd_mcd(), and line::mdd::mdd_ps().

◆ valuemap

template<class T>
std::vector<std::vector<double> > line::mdd::MddDescriptor< T >::valuemap

valuemap[i][idx] is the physical occupancy of level i in local state idx.

A level whose local state encodes more than a count (a station holding both a population and a service phase) needs this map; without one the index would be the quantity.

Definition at line 187 of file mdd_types.h.

Referenced by line::mdd::mdd_descriptor(), line::mdd::mdd_mcd(), and line::mdd::mdd_ps().


The documentation for this struct was generated from the following file: