![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Synchronous call DAG carrying reference-task customers into a layer. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <cstdio>#include <limits>#include <string>#include <utility>#include <vector>#include "line/lang/lang_types.h"#include "line/lang/lqn/lqn_struct.h"#include "line/num/number.h"Go to the source code of this file.
Classes | |
| struct | line::lqn::LqnRefCall< T > |
| One row of calls: the reference's [cidx, fromPos, toPos, aidx, vCall]. More... | |
| struct | line::lqn::LqnRefGroup< T > |
| One group, the reference's R(g): the DAG below one REF task. More... | |
| struct | line::lqn::LqnRefRoutes< T > |
| What lqn_ref_routes returns: the groups, or a non-empty why and no groups. More... | |
Namespaces | |
| namespace | line |
| Conservation laws of a layered queueing network, enumerated from its structure. | |
| namespace | line::lqn |
Functions | |
| template<class T> | |
| LqnRefRoutes< T > | line::lqn::lqn_ref_routes (const LqnStruct< T > &lqn, const std::vector< std::size_t > &callers, double maxpaths=32.0, const std::vector< std::size_t > &server_set={}) |
| Resolve the reference routes into the layer whose callers are CALLERS. | |
Synchronous call DAG carrying reference-task customers into a layer.
Port of matlab/src/api/lqn/lqn_ref_routes.m. Resolves, for the caller set of one layer, the synchronous call graph along which reference (REF) task customers descend to those callers, and the mean number of times each entry and each call is invoked per REF cycle. SolverLN's interlock_method='refpath' reads it to merge the callers that are the same REF customers arriving by different routes into ONE client chain.
Nodes are ENTRIES. Visits are computed TOPOLOGICALLY, v(u) = sum over parents of v(p)*w(a)*callmean, and routes are COUNTED in the same pass rather than enumerated. Only SYNC calls are followed: an ASYNC call is send-no-reply, and forwarding is already flattened into pseudo-SYNC arcs by lqn_fwd_rendezvous.
INDEXING. Element and call indices are the 1-based ones of LqnStruct. The POSITIONS into entries (LqnRefCall::from, ::to, prefix_pos) are 0-based, where the reference's are 1-based.
Definition in file lqn_ref_routes.h.