![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Controls, defaulting to SolverOptions('SSA') in the reference. More...
#include <line/solvers/ssa/ssa_types.h>
Public Attributes | |
| std::string | method = "default" |
| default and nrm both select the Next Reaction Method here. | |
| std::size_t | samples = 10000 |
| Reaction firings to simulate; options.samples in the reference. | |
| unsigned long | seed = 23000 |
| options.seed; LINE's own default is 23000. | |
| bool | verbose = false |
| double | warmupfrac = -1.0 |
| options.config.warmupfrac: the leading fraction of the path discarded before the means are taken. | |
| std::string | state_space_gen = "default" |
| options.config.state_space_gen of solver_ssa_analyzer_nrm.m: which of the two NRM engines runs. | |
| double | cutoff = -1.0 |
| options.cutoff: the bound on an open class's jobs at a station, which the serial and replicated engines resolve as SolverCTMC does (< 0 = the reference's automatic value). | |
Controls, defaulting to SolverOptions('SSA') in the reference.
Definition at line 71 of file ssa_types.h.
| double line::ssa::SsaOptions::cutoff = -1.0 |
options.cutoff: the bound on an open class's jobs at a station, which the serial and replicated engines resolve as SolverCTMC does (< 0 = the reference's automatic value).
On the base for the reason warmupfrac is: on SsaSerialOptions no caller could set it, so an open model was always truncated at the default 10, which lost a retrial orbit's jobs at the boundary and read a throughput of 0.744 where the exact one is 0.8.
Definition at line 114 of file ssa_types.h.
| std::string line::ssa::SsaOptions::method = "default" |
default and nrm both select the Next Reaction Method here.
Definition at line 73 of file ssa_types.h.
Referenced by line::ssa::solver_ssa_parallel_analyzer().
| std::size_t line::ssa::SsaOptions::samples = 10000 |
Reaction firings to simulate; options.samples in the reference.
Definition at line 75 of file ssa_types.h.
Referenced by line::ssa::solver_ssa_parallel_analyzer().
| unsigned long line::ssa::SsaOptions::seed = 23000 |
options.seed; LINE's own default is 23000.
Definition at line 77 of file ssa_types.h.
Referenced by line::ssa::solver_ssa_parallel_analyzer().
| std::string line::ssa::SsaOptions::state_space_gen = "default" |
options.config.state_space_gen of solver_ssa_analyzer_nrm.m: which of the two NRM engines runs.
none and default take the plain engine, which integrates the metrics along the path; anything else takes the tabulating one, which records the states it visits and forms the means as pi * A over them. The two answer the same question by different routes, which is what makes them testable against each other.
Definition at line 105 of file ssa_types.h.
| bool line::ssa::SsaOptions::verbose = false |
Definition at line 78 of file ssa_types.h.
Referenced by line::ssa::solver_ssa_parallel_analyzer().
| double line::ssa::SsaOptions::warmupfrac = -1.0 |
options.config.warmupfrac: the leading fraction of the path discarded before the means are taken.
DECLARED HERE, NOT ON SsaSerialOptions, although only the serial and replicated engines read one: ssa_serial_options builds the engine's knobs by copying the BASE slice of the caller's, so a field on the derived struct is unreachable from a caller and kept its default however the request was spelled – which is what made --warmupfrac a knob the C++ CLI could not offer at all.
NEGATIVE = UNSET, the sentinel SolverOptions::warmupfrac and line-cli's --warmupfrac already use. solver_ssa resolves it once through ssa_resolve_warmupfrac (0.2 on a steady-state run of a model with an open class, else 0); an engine reached directly reads an unset value as 0, so a sample path keeps its initial transient.
Definition at line 96 of file ssa_types.h.
Referenced by line::ssa::solver_ssa_engine(), and line::ssa::solver_ssa_prob().