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

Classes

struct  BoolGraph
 A boolean sparse relation over element indices, e.g. More...
struct  Distrib
struct  LqnBoxBounds
 What lqn_boxbounds returns, in the layout of the reference's out struct. More...
class  LqnBuilder
struct  LqnCallGroup
 One routed call group: an activity, the strategy that picks among its targets, and the target ENTRIES in declaration order. More...
struct  LqnModel
 The intermediate model, and the second stage that flattens it. More...
struct  LqnMolInfo
 Everything lqn_mol reports beyond the four measure vectors. More...
struct  LqnMolOptions
 Tuning of the outer fixed point. More...
struct  LqnMolResult
 The four (nidx+1) vectors in the column convention SolverLN and LQNS report, so they line up with LN(model).getAvgTable cell for cell. More...
struct  LqnPrecedence
 One activity precedence of a task, with its activities resolved to indices. More...
struct  LqnStruct
struct  LqnWriteReport
 What the schema could not carry, one human-readable line per loss. More...
struct  ServerPools
 Heterogeneous server pools declared on a layer server, the twin of the nservertypes / servertypenames / serverspertype / servercompat / heterorates block a Network carries in sn.nodeparam{i}. More...
struct  SparseGraph
 A sparse square matrix over element indices, held as a dense vector of rows with an explicit nonzero list per row. More...

Typedefs

template<class T>
using CdScaling
 A class-dependent scaling map, sn.cdscaling.

Enumerations

enum class  CallType
 Call kinds, with the values of MATLAB CallType. More...
enum class  LqnElement
 LQN element kinds, with the values of MATLAB LayeredNetworkElement. More...
enum class  PrecedenceType
 Activity precedence kinds, with the values of MATLAB ActivityPrecedenceType. More...
enum class  ReplacementStrategy
 Cache replacement policies, with the values of MATLAB ReplacementStrategy. More...
enum class  SchedStrategy
 Scheduling disciplines, with the values of MATLAB SchedStrategy. More...

Functions

template<class T>
LqnBoxBounds< T > lqn_boxbounds (const LqnStruct< T > &lqn)
 Evaluate the box bounds of lqn.
template<class T>
LqnMolResult< T > lqn_mol (const LqnStruct< T > &lsn, const LqnMolOptions &options=LqnMolOptions())
 Method of Layers on the SRVN decomposition of a layered queueing network whose entries carry no activity graph.
template<class T>
LqnStruct< T > lqn_finalize (const LqnModel< T > &m)
 Port of @LayeredNetwork/getStruct.m: flatten the model into its struct.
template<class T>
LqnModel< T > read_lqnx_model (const std::string &path)
template<class T>
LqnStruct< T > read_lqnx (const std::string &path)
 Read a .lqnx model.
template<class T>
LqnWriteReport write_lqnx (const LqnModel< T > &m, const std::string &path, const std::string &model_name=std::string("LQN"), bool use_abstract_names=false)
 Write a layered model as a .lqnx document.

Typedef Documentation

◆ CdScaling

template<class T>
using line::lang::CdScaling

A class-dependent scaling map, sn.cdscaling.

It takes the per-class population vector at one station and returns the per-class rate multipliers, which is the signature pfqn_cdfun consumes; the alias resolves to the same std::function type as pfqn::CdScaling, so a map built here is passed straight through to the api layer.

Definition at line 639 of file lang_types.h.

Enumeration Type Documentation

◆ CallType

enum class line::lang::CallType
strong

Call kinds, with the values of MATLAB CallType.

Definition at line 467 of file lang_types.h.

◆ LqnElement

enum class line::lang::LqnElement
strong

LQN element kinds, with the values of MATLAB LayeredNetworkElement.

Definition at line 464 of file lang_types.h.

◆ PrecedenceType

enum class line::lang::PrecedenceType
strong

Activity precedence kinds, with the values of MATLAB ActivityPrecedenceType.

Definition at line 470 of file lang_types.h.

◆ ReplacementStrategy

Cache replacement policies, with the values of MATLAB ReplacementStrategy.

Definition at line 378 of file lang_types.h.

◆ SchedStrategy

enum class line::lang::SchedStrategy
strong

Scheduling disciplines, with the values of MATLAB SchedStrategy.

Definition at line 181 of file lang_types.h.

Function Documentation

◆ lqn_boxbounds()

◆ lqn_finalize()

template<class T>
LqnStruct< T > line::lqn::lqn_finalize ( const LqnModel< T > & m)

Port of @LayeredNetwork/getStruct.m: flatten the model into its struct.

Definition at line 432 of file lqn_reader.h.

References line::lsn::ACTIVITY, line::lqn::LqnStruct< T >::actphase, line::lqn::LqnStruct< T >::actposttype, line::lqn::LqnStruct< T >::actpretype, line::lqn::LqnStruct< T >::actquorum, line::lqn::LqnModel< T >::acts, line::lqn::LqnStruct< T >::actsof, line::lqn::LqnStruct< T >::actthink, line::lqn::LqnStruct< T >::arrival, line::lqn::LqnStruct< T >::ashift, line::lqn::LqnCallGroup::caller, line::lqn::LqnStruct< T >::callgroups, line::lqn::LqnStruct< T >::callhashnames, line::lqn::LqnStruct< T >::callnames, line::lqn::LqnStruct< T >::callpair_dst, line::lqn::LqnStruct< T >::callpair_src, line::lqn::LqnStruct< T >::callproc_mean, line::lqn::LqnStruct< T >::callsof, line::lqn::LqnStruct< T >::calltype, line::lqn::LqnStruct< T >::cdscaling, line::lqn::LqnStruct< T >::cdscalingpeak, line::Matrix< T >::cols(), line::lqn::ServerPools< T >::compat, line::lqn::ServerPools< T >::counts, line::lqn::LqnStruct< T >::cshift, line::lqn::LqnStruct< T >::dag, line::lsn::LsnInput< T >::dag, line::lqn::LqnStruct< T >::delayofftime, line::lqn::Distrib< T >::disabled_dist(), line::lqn::LqnModel< T >::entries, line::lqn::LqnStruct< T >::entriesof, line::lsn::ENTRY, line::lsn::LsnInput< T >::entry_has_arrival, line::lqn::LqnStruct< T >::eshift, line::lqn::LqnStruct< T >::fanin, line::lqn::LqnStruct< T >::fanout, line::lang::GlobalConstants::FineTol, line::lsn::Multiplicity< T >::finite(), line::lqn::LqnStruct< T >::graph, line::lqn::LqnStruct< T >::has_arrival, line::lqn::LqnStruct< T >::hashnames, line::lqn::LqnStruct< T >::hassetup, line::lsn::LsnInput< T >::hassetup, line::lsn::HOST, line::lqn::LqnStruct< T >::hostdem, line::lqn::LqnStruct< T >::hshift, line::lqn::Distrib< T >::immediate(), line::lsn::Multiplicity< T >::inf(), line::InputError::InputError(), line::lqn::LqnStruct< T >::isasynccaller, line::lqn::LqnStruct< T >::iscache, line::lqn::LqnStruct< T >::iscaller, line::lqn::LqnStruct< T >::isref, line::lsn::LsnInput< T >::isref, line::lqn::LqnStruct< T >::issynccaller, line::lqn::LqnStruct< T >::itemcap, line::lqn::LqnStruct< T >::itemproc, line::lqn::LqnStruct< T >::jdscaling, line::lqn::LqnStruct< T >::jdscalingpeak, line::lqn::LqnStruct< T >::lincon_A, line::lqn::LqnStruct< T >::lincon_b, line::lqn::LqnStruct< T >::lldscaling, lqn_finalize(), line::lsn::lsn_max_multiplicity(), line::Matrix< T >::Matrix(), line::lqn::LqnStruct< T >::maxmult, line::lqn::LqnStruct< T >::mult, line::lsn::LsnInput< T >::mult, line::lqn::LqnStruct< T >::nacts, line::lqn::LqnStruct< T >::names, line::lqn::ServerPools< T >::names, line::lqn::LqnStruct< T >::ncalls, line::lqn::LqnStruct< T >::nentries, line::lqn::LqnStruct< T >::nhosts, line::lqn::LqnStruct< T >::nidx, line::lqn::LqnStruct< T >::nitems, line::lqn::ServerPools< T >::npools(), line::lqn::LqnStruct< T >::ntasks, line::lqn::LqnStruct< T >::parent, line::lqn::LqnStruct< T >::pools, line::lqn::LqnPrecedence< T >::postacts, line::lqn::LqnPrecedence< T >::postparams, line::lqn::LqnPrecedence< T >::posttype, line::lqn::LqnPrecedence< T >::preacts, line::lqn::LqnStruct< T >::precedences, line::lqn::LqnPrecedence< T >::preparams, line::lqn::LqnPrecedence< T >::pretype, line::lqn::LqnModel< T >::proc_cdscaling, line::lqn::LqnModel< T >::proc_cdscalingpeak, line::lqn::LqnModel< T >::proc_jdscaling, line::lqn::LqnModel< T >::proc_jdscalingpeak, line::lqn::LqnModel< T >::proc_lincon, line::lqn::LqnModel< T >::proc_linconrows, line::lqn::LqnModel< T >::proc_lldscaling, line::lqn::LqnModel< T >::proc_pools, line::lqn::LqnModel< T >::procs, line::lqn::ServerPools< T >::rates, line::lqn::LqnStruct< T >::repl, line::lqn::LqnStruct< T >::replacestrat, line::lqn::BoolGraph::resize(), line::Matrix< T >::rows(), line::lqn::LqnStruct< T >::sched, line::lqn::BoolGraph::set(), line::lqn::LqnStruct< T >::setuptime, line::lqn::LqnCallGroup::strategy, line::lqn::LqnCallGroup::targets, line::lsn::TASK, line::lqn::LqnStruct< T >::taskgraph, line::lqn::LqnModel< T >::tasks, line::lqn::LqnStruct< T >::tasksof, line::lqn::LqnStruct< T >::think, line::lqn::LqnStruct< T >::tshift, line::lqn::LqnStruct< T >::type, and line::lsn::LsnInput< T >::type.

Referenced by line::lqn::LqnBuilder< T >::build(), line::opt::LineEvaluator::evaluate_layered_sensitivities(), lqn_finalize(), read_lqnx(), and write_lqnx().

◆ lqn_mol()

template<class T>
LqnMolResult< T > line::lqn::lqn_mol ( const LqnStruct< T > & lsn,
const LqnMolOptions & options = LqnMolOptions() )

Method of Layers on the SRVN decomposition of a layered queueing network whose entries carry no activity graph.

Parameters
lsnLayeredNetworkStruct of an entry-only, closed, synchronous LQN
optionsiteration cap, tolerance and under-relaxation factor

Definition at line 209 of file lqn_mol.h.

References line::lqn::LqnMolResult< T >::info, lqn_mol(), line::pfqn::pfqn_qdamva(), line::lqn::LqnMolResult< T >::QN, line::pfqn::QdAmvaResult< T >::R, line::lqn::LqnMolResult< T >::RN, line::lqn::LqnMolResult< T >::TN, and line::lqn::LqnMolResult< T >::UN.

Referenced by lqn_mol().

◆ read_lqnx()

template<class T>
LqnStruct< T > line::lqn::read_lqnx ( const std::string & path)

Read a .lqnx model.

Parameters
pathfile to read
Returns
the flattened struct SolverLN consumes

Definition at line 1632 of file lqn_reader.h.

References lqn_finalize(), read_lqnx(), and read_lqnx_model().

Referenced by line::io::read_layered_model(), and read_lqnx().

◆ read_lqnx_model()

◆ write_lqnx()

template<class T>
LqnWriteReport line::lqn::write_lqnx ( const LqnModel< T > & m,
const std::string & path,
const std::string & model_name = std::string("LQN"),
bool use_abstract_names = false )

Write a layered model as a .lqnx document.

Parameters
mthe intermediate model, from the builder or from read_lqnx_model
pathfile to create
model_namethe name attribute of <lqn-model>
use_abstract_namesrename elements P1/T1/E1/A1, as writeXML's third argument does, for a document that is compared rather than read
Returns
what the schema could not carry

Definition at line 198 of file lqn_writer.h.

References line::lqn::LqnModel< T >::acts, line::xml::Element::add_child(), line::lqn::LqnWriteReport::dropped, line::lqn::LqnModel< T >::entries, line::lang::GlobalConstants::FineTol, line::InputError::InputError(), lqn_finalize(), line::xml::Element::name, line::lqn::LqnModel< T >::proc_lincon, line::lqn::LqnModel< T >::proc_linconrows, line::lqn::LqnModel< T >::procs, line::lang::sched_to_lqnx(), line::xml::Element::set_attr(), line::lqn::LqnModel< T >::tasks, line::UnsupportedError::UnsupportedError(), line::xml::write_file(), and write_lqnx().

Referenced by line::lqns::SolverLQNS< T >::run_analyzer(), and write_lqnx().