![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Per-class throughput table of an isolated subnetwork, tabulated over the population lattice, for use as the load-dependent rates of a flow-equivalent server (Chandy, Herzog and Woo 1975). More...
#include <cstddef>#include <vector>#include "line/api/fes/ljd_linearize.h"#include "line/api/pfqn/pfqn_mva.h"#include "line/api/pfqn/pfqn_mvams.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"#include "line/util/population.h"Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::fes |
Functions | |
| template<class T> | |
| std::vector< std::vector< T > > | line::fes::fes_compute_throughputs (const Matrix< T > &L, const std::vector< int > &mi, const std::vector< bool > &isDelay, const std::vector< int > &cutoffs) |
| Per-class throughput table of an isolated subnetwork, tabulated over the population lattice, for use as the load-dependent rates of a flow-equivalent server (Chandy, Herzog and Woo 1975). | |
Per-class throughput table of an isolated subnetwork, tabulated over the population lattice, for use as the load-dependent rates of a flow-equivalent server (Chandy, Herzog and Woo 1975).
Templated port of matlab/src/api/fes/fes_compute_throughputs.m. Every population state 0 <= n <= cutoffs is solved with pfqn_mva on the isolated subnetwork; scalingTable[r][idx-1] holds X_r(n) at the LJD_LINEARIZE index idx of n. States with n_r = 0 store 0 for class r, and the empty state stores 0 for every class.
Arithmetic. pfqn_mva stays in the field of the inputs, and this function only enumerates and stores, so the table is exact at T = Rational.
Deviation from MATLAB, mechanical: MATLAB walks the lattice with a BFS over a cell-array queue guarded by a visited mask, which reaches every state exactly once; the port enumerates the same lattice directly with next_pop. The states, and hence the table, are identical; only the visit order differs, and each state is solved independently of the others. The MATLAB try/catch that stores zeros when the solver fails is mirrored by catching line::Error.
Definition in file fes_compute_throughputs.h.