![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Standalone LQN routines that SolverLN needs but does not contain. More...
#include <cctype>#include <cmath>#include <cstddef>#include <string>#include <vector>#include "line/lang/lqn/lqn_struct.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::ln::LnInterlockChoice |
| The interlock tracking method a run will use, and why it differs from the request. More... | |
Namespaces | |
| namespace | line |
| Conservation laws of a layered queueing network, enumerated from its structure. | |
| namespace | line::ln |
Enumerations | |
| enum class | line::ln::CallType |
| Call kinds, with the values of MATLAB CallType. More... | |
Functions | |
| template<class T> | |
| void | line::ln::lqn_fwd_rendezvous (LqnStruct< T > &lqn) |
| Replace every forwarding chain reachable from a synchronous call by caller-side pseudo rendezvous calls to the forwarding targets. | |
| template<class T> | |
| T | line::ln::lqn_overtake_markov (const Matrix< T > &clientPhases, const T &prVisit, const T &xj, const std::vector< T > &y_aj) |
| Overtaking probability from the LQNS phased-server Markov chain. | |
| template<class T> | |
| LnInterlockChoice | line::ln::ln_interlock_method (const LqnStruct< T > &lqn, const std::string &requested, bool interlocking, const std::string &lnmethod) |
| Port of matlab/src/solvers/LN/ln_interlock_method.m, asked as a query. | |
Standalone LQN routines that SolverLN needs but does not contain.
Port of matlab/src/solvers/LN/lqn_fwd_rendezvous.m and matlab/src/solvers/LN/lqn_overtake_markov.m.
lqn_act_thinktime.m is DELIBERATELY ABSENT. Its whole content – add the activity think time to the activity's service and residence time, skipping the unset (NaN in MATLAB, disabled here) case – is already inline in the servt_map loop of solver_ln.h. A second copy of a two-line rule that two files would have to keep agreeing on is worse than no helper at all.
BOTH ARE WIRED IN. SolverLN::construct calls lqn_fwd_rendezvous before it reads anything else out of the struct, as @SolverLN/SolverLN.m:162-164 does, and lqn_overtake_markov is reached from update_metrics through the input mapping of lqn_analyzers.h's lqn_overtake_prob_markov. Neither construct is refused by name any longer.
Definition in file lqn_helpers.h.