LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
method_registry.h
Go to the documentation of this file.
1#pragma once
2/**
3 * @file method_registry.h
4 * The method names of each solver, in listing order.
5 *
6 * method_registry::methods("MVA") is every method a solver can be asked for in
7 * C++, in the order its list_valid_methods lists them; that function filters the
8 * row to the model in hand. The rows are shared with MATLAB, the JAR and Python.
9 *
10 * GENERATED by doc/generate-method-registry.py from doc/line-methods.json. Do not edit.
11 */
12
13#include <map>
14#include <stdexcept>
15#include <string>
16#include <vector>
17
18namespace line {
19namespace method_registry {
20
21inline const std::map<std::string, std::vector<std::string>>& table() {
22 static const std::map<std::string, std::vector<std::string>> t = {
23 {"AG", {"default", "inap", "inaprc", "inapinf", "exact"}},
24 {"BA", {"default", "auto.upper", "auto.lower", "aba.upper", "aba.lower", "bjb.upper", "bjb.lower", "pb.upper", "pb.lower", "gb.upper", "gb.lower", "sb.upper", "sb.lower", "harel.upper", "harel.lower", "mw.upper", "mw.lower", "pbh.upper", "pbh.lower", "bjbh.upper", "bjbh.lower", "cbh.upper", "cbh.lower", "ssd.upper", "ssd.lower", "cub.upper", "mbjb.lower", "looping.upper", "looping.lower", "sib.upper", "sib.lower", "scb.upper", "scb.lower", "ldac.lower", "bpt.lower", "bgt.upper", "snc.upper", "qr", "lr", "lr.upper", "lr.lower", "mapamva.upper", "mapamva.lower", "qrf.mmi", "qrf.mem", "qrf.bethe", "qrf.mmi.ld", "qrf.mmi.linear", "qrf.bas.mmi", "qrf.bas.mem", "qrf.bas.bethe", "qrf.bas", "qrf.rsrd", "spnlp2.upper", "spnlp2.lower", "spnlp1.upper", "spnlp1.lower"}},
25 {"CTMC", {"default", "exact", "mdd"}},
26 {"ENV", {"default", "meanfield", "mean", "meancov", "blend", "blending", "smp", "statedep", "statevec", "avg", "dec", "occupation"}},
27 {"FLD", {"default", "matrix", "fld.matrix", "pnorm", "fld.pnorm", "softmin", "fld.softmin", "statedep", "fld.statedep", "closing", "fld.closing", "minnormal", "fld.minnormal", "refined", "fld.refined", "tbi", "fld.tbi", "diffusion", "fld.diffusion", "mfq", "fld.mfq", "rmf", "fld.rmf", "aoi", "fld.aoi", "kp", "fld.kp", "dae", "fld.dae", "mtginf", "fld.mtginf", "mol", "fld.mol", "ggisgi", "fld.ggisgi", "ggingi", "fld.ggingi", "tvms", "fld.tvms"}},
28 {"JMT", {"default", "jsim", "jmva", "jmva.amva", "jmva.mva", "jmva.recal", "jmva.comom", "jmva.chow", "jmva.bs", "jmva.aql", "jmva.lin", "jmva.dmlin"}},
29 {"LDES", {"default", "para", "parallel"}},
30 {"LN", {"srvn", "srvn.ph", "srvn.cs", "flat", "flat.cs", "flat.ph", "moment3", "nlp", "default"}},
31 {"LQNS", {"default", "lqns", "srvn", "exactmva", "srvn.exactmva", "sim", "lqsim", "lqns.default", "qns", "qns.conway", "qns.rolia", "qns.zhou", "qns.suri", "qns.reiser", "qns.schmidt"}},
32 {"MAM", {"default", "dec.source", "dec.mmap", "dec.poisson", "mna", "ldqbd", "dec.source.mmap", "bgchain", "retrial", "sync.faster", "sync.slower"}},
33 {"MVA", {"default", "mva", "exact", "amva", "qna", "rqna", "rqt", "sum", "esum", "qdlin", "amva.qdlin", "bs", "amva.bs", "aql", "amva.aql", "qsa", "amva.qsa", "sqni", "qd", "amva.qd", "qli", "amva.qli", "fli", "amva.fli", "ab", "amva.ab", "schmidt", "amva.schmidt", "schmidt-ext", "amva.schmidt-ext", "tay", "amva.tay", "scat", "amva.scat", "lcp", "amva.lcp", "chow", "amva.chow", "pamb", "amva.pamb", "pami", "amva.pami", "pamt", "amva.pamt", "clust", "amva.clust", "dmlin", "amva.dmlin", "sqd", "mvablo", "mvac", "sjn.mva", "sjn.amva", "marie", "amva.marie", "amva.mapqn", "priomva", "amva.priomva", "lin", "egflin", "gflin", "amva.lin", "mm1", "mmk", "mg1", "mgi1", "gm1", "gig1", "gim1", "gig1.kingman", "gigk", "gigk.kingman_approx", "gig1.gelenbe", "gig1.heyman", "gig1.kimura", "gig1.allen", "gig1.kobayashi", "gig1.klb", "gig1.marchal", "gigk.whitt", "qed", "gig1.extremal", "gigk.diffusion", "erlanga", "mgisrgi"}},
34 {"NC", {"default", "exact", "divdiff", "rayint", "spm", "ms", "erlangfp", "mci", "imci", "ls", "le", "ble", "aghq", "mmint2", "gleint", "pana", "panald", "ca", "clw", "kt", "bkt", "lekt", "bk", "bkue", "lc", "lc.ue", "sampling", "is", "mcmc", "propfair", "comom", "comomld", "cub", "rgf", "ger", "rd", "nrp", "nrl", "nre", "gm", "mem", "sdr", "sdr.mva", "morrison", "rec", "cftp", "cftp.approx"}},
35 {"SSA", {"default", "ssa", "serial", "para", "pana", "parallel", "nrm", "mlmc"}},
36 {"UQ", {"default", "dd", "quad", "mc"}},
37 };
38 return t;
39}
40
41/// Every method name the solver can be asked for, in listing order.
42inline std::vector<std::string> methods(const std::string& solver) {
43 const std::string key = solver.rfind("Solver", 0) == 0 ? solver.substr(6) : solver;
44 const auto it = table().find(key);
45 if (it == table().end()) {
46 throw std::invalid_argument("No method registry row for solver " + solver);
47 }
48 return it->second;
49}
50
51} // namespace method_registry
52} // namespace line
const std::map< std::string, std::vector< std::string > > & table()
std::vector< std::string > methods(const std::string &solver)
Every method name the solver can be asked for, in listing order.
Conservation laws of a layered queueing network, enumerated from its structure.
Definition aoi_dist2ph.h:52