![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Fork-join section metrics: FJQLen, FJRespT and FJTput of every Fork/Join pair. More...
#include <algorithm>#include <cstddef>#include <utility>#include <vector>#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::solvers::FjMetrics< T > |
| self.result.FJ: one row per Fork/Join pair, one column per class. More... | |
Namespaces | |
| namespace | line |
| Conservation laws of a layered queueing network, enumerated from its structure. | |
| namespace | line::solvers |
Functions | |
| template<class S> | |
| std::vector< std::pair< std::size_t, std::size_t > > | line::solvers::fj_sorted_pairs (const S &sn) |
| The Fork/Join pairs of a struct, sortrows([forks joins]) over find(sn.fj): ascending in fork node, then in join node, with duplicates removed. | |
| template<class T, class S> | |
| FjMetrics< T > | line::solvers::fj_metrics_zero (const S &sn, std::size_t nclasses) |
| An empty-but-shaped result: every pair of sn, all three matrices zero. | |
| template<class T> | |
| FjMetrics< double > | line::solvers::fj_metrics_to_double (const FjMetrics< T > &in) |
| The same metrics in double precision, for the facade and the CLI. | |
Fork-join section metrics: FJQLen, FJRespT and FJTput of every Fork/Join pair.
The reference keeps them in self.result.FJ (struct forks, joins, QLen, RespT, Tput) and reports them through getAvgFJ and getAvgFJTable, separately from the average table, whose layout is unchanged on a fork-join model. A PAIR is a nonzero (f, j) of sn.fj, and the pairs are ordered by fork node and then by join node, which is sortrows([forks joins]) in fjFixedPoint.m.
FJRespT(p,r) mean time from a class-r job's arrival at the Fork of pair p to its departure from the matching Join; FJTput(p,r) class-r throughput through the pair; FJQLen(p,r) mean number of class-r jobs inside the section.
Who fills it: MVA, NC and Fluid from the fork-join fixed point (fj_driver.h, FJQLen = FJTput * FJRespT exactly), JMT from its 'Fork Join Response Time' and 'Fork Join Number of Customers' measures, and LDES from the per-fork-job sojourns it measures. Every other solver leaves it EMPTY, and so does every model without a Fork/Join pair: absent is not zero.
Definition in file fj_metrics.h.