![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
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. | |
| 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.
|
strong |
Call kinds, with the values of MATLAB CallType.
Definition at line 467 of file lang_types.h.
|
strong |
LQN element kinds, with the values of MATLAB LayeredNetworkElement.
Definition at line 464 of file lang_types.h.
|
strong |
Activity precedence kinds, with the values of MATLAB ActivityPrecedenceType.
Definition at line 470 of file lang_types.h.
|
strong |
Cache replacement policies, with the values of MATLAB ReplacementStrategy.
Definition at line 378 of file lang_types.h.
|
strong |
Scheduling disciplines, with the values of MATLAB SchedStrategy.
Definition at line 181 of file lang_types.h.
| LqnBoxBounds< T > line::lqn::lqn_boxbounds | ( | const LqnStruct< T > & | lqn | ) |
Evaluate the box bounds of lqn.
A reference task of infinite multiplicity is treated as one customer, as the reference does: the bound is over a closed chain and an infinite population has no lower bound to report.
Definition at line 130 of file lqn_boxbounds.h.
References line::lqn::LqnBoxBounds< T >::D, line::lqn::LqnBoxBounds< T >::defined_T, line::lqn::LqnBoxBounds< T >::defined_U, line::InputError::InputError(), lqn_boxbounds(), line::Matrix< T >::Matrix(), line::pfqn::pfqn_mwrbb(), line::lqn::LqnBoxBounds< T >::refidx, line::lqn::LqnBoxBounds< T >::TN_lo, line::lqn::LqnBoxBounds< T >::TN_up, line::lqn::LqnBoxBounds< T >::UN_lo, line::lqn::LqnBoxBounds< T >::UN_up, line::lqn::LqnBoxBounds< T >::Xlo, line::pfqn::MwrbbBounds< T >::Xlo, line::lqn::LqnBoxBounds< T >::Xup, and line::pfqn::MwrbbBounds< T >::Xup.
Referenced by line::ln::SolverLN< T >::box_bounds(), and lqn_boxbounds().
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().
| 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.
| lsn | LayeredNetworkStruct of an entry-only, closed, synchronous LQN |
| options | iteration 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().
| LqnStruct< T > line::lqn::read_lqnx | ( | const std::string & | path | ) |
Read a .lqnx model.
| path | file to read |
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().
| LqnModel< T > line::lqn::read_lqnx_model | ( | const std::string & | path | ) |
Definition at line 1314 of file lqn_reader.h.
References line::lqn::LqnModel< T >::acts, line::xml::Element::attr(), line::xml::Element::by_tag(), line::xml::Element::child_tags(), line::dbl_from_decimal(), line::lqn::LqnModel< T >::entries, line::lqn::Distrib< T >::exp_mean(), line::lqn::Distrib< T >::exp_rate(), line::lqn::Distrib< T >::immediate(), line::InputError::InputError(), line::num_from_decimal(), line::xml::parse_file(), line::lqn::LqnModel< T >::procs, read_lqnx_model(), line::lang::sched_from_lqnx(), and line::lqn::LqnModel< T >::tasks.
Referenced by read_lqnx(), and read_lqnx_model().
| 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.
| m | the intermediate model, from the builder or from read_lqnx_model |
| path | file to create |
| model_name | the name attribute of <lqn-model> |
| use_abstract_names | rename elements P1/T1/E1/A1, as writeXML's third argument does, for a document that is compared rather than read |
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().