![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Phase-type composition of an LQN activity graph, the machinery behind SolverLN method 'srvn.ph'. More...
#include <cstddef>#include <string>#include <unordered_map>#include <vector>#include "line/lang/lang_types.h"#include "line/lang/lqn/lqn_struct.h"#include "line/lang/workflow/workflow.h"#include "line/util/error.h"#include "line/util/matrix.h"#include "line/util/lu.h"Go to the source code of this file.
Classes | |
| struct | line::api::lqn::EntryWorkflow< T > |
| Activity graph of one entry, as a workflow plus its execution counts. More... | |
| struct | line::api::lqn::Distrib< T > |
| struct | line::api::lqn::GlobalConstants |
| The MATLAB GlobalConstants, as reported by lineStart at its defaults. More... | |
| struct | line::api::lqn::PhLaw< T > |
| A phase-type law as the composition rules pass it around. More... | |
| struct | line::api::lqn::Precedence< T > |
| One precedence of the activity graph. More... | |
| struct | line::api::lqn::SPTree< T > |
| The flat series-parallel tree. More... | |
| class | line::api::lqn::Workflow< T > |
Namespaces | |
| namespace | line |
| namespace | line::api |
| namespace | line::api::lqn |
Enumerations | |
| enum class | line::api::lqn::PrecedenceType |
| Activity precedence kinds, with the values of MATLAB ActivityPrecedenceType. More... | |
| enum class | line::api::lqn::SPNodeType |
| A node of the series-parallel tree. More... | |
Functions | |
| template<class T> | |
| PhLaw< T > | line::api::lqn::ph_law_of (const Distrib< T > &d) |
| The (alpha, S) pair of a phase-type Distrib, the form the composition rules take. | |
| template<class T> | |
| EntryWorkflow< T > | line::api::lqn::entry_workflow (const ::line::lqn::LqnStruct< T > &lqn, std::size_t eidx, bool with_calls) |
| Activity graph of LQN entry EIDX as a Workflow. | |
| template<class T> | |
| PhLaw< T > | line::api::lqn::detail_compose_serialized (Workflow< T > &wf, const SPTree< T > &tree, std::size_t k) |
| Recursive body of serial_law, declared first so serial_law can call it. | |
| template<class T> | |
| PhLaw< T > | line::api::lqn::serial_law (Workflow< T > &wf) |
| Composed law of a workflow in which the branches of an AND fork are SERIAL rather than concurrent, that is, the total work the branches request rather than the elapsed time until the last of them finishes. | |
| template<class T> | |
| std::pair< T, T > | line::api::lqn::ph_moments (const std::vector< T > &alpha, const Matrix< T > &S) |
| First two moments of a phase-type law without building a Distrib, which is what the layered fixed point needs at every iteration for every composed entry law. | |
Phase-type composition of an LQN activity graph, the machinery behind SolverLN method 'srvn.ph'.
An entry becomes a Workflow whose leaves are its activities and, when requested, its synchronous calls; the series-parallel reduction of that workflow is then the exact law of the entry service time. Port of the MATLAB lqn_entry_workflow.m, lqn_ph_serial_law.m and lqn_ph_moments.m, of the JAR jline.api.lqn.LqnPh and of the Python line_solver.api.lqn.lqn_ph.
Definition in file lqn_ph.h.