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

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"
Include dependency graph for lqn_ph.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.

Detailed Description

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.