![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Standalone LQN routines that SolverLN needs but does not contain. More...
#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.
Namespaces | |
| namespace | line |
| 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. | |
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.