![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
AMVA-QD class-dependence function. More...
#include <cstddef>#include <functional>#include <vector>#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::pfqn |
Typedefs | |
| template<class T> | |
| using | line::pfqn::CdScaling = std::function<std::vector<T>(const std::vector<T>&)> |
| A per-station class-dependence callable: the population row -> 1 or R rates. | |
Functions | |
| template<class T> | |
| std::vector< T > | line::pfqn::pfqn_cdfun (const Matrix< T > &nvec, const std::vector< CdScaling< T > > &cdscaling, std::size_t classIdx) |
| AMVA-QD class-dependence function. | |
| template<class T> | |
| std::vector< T > | line::pfqn::pfqn_cdfun (const Matrix< T > &nvec, const std::vector< CdScaling< T > > &cdscaling) |
| MATLAB default: classIdx = 1, i.e. | |
AMVA-QD class-dependence function.
Templated port of matlab/src/api/pfqn/pfqn_cdfun.m, cross-checked against jar/src/main/java/jline/api/pfqn/ld/Pfqn_cdfun.java.
Returns, for every station i, the reciprocal of the class-dependent scaling beta_{i,r}(n_{i1}, ..., n_{iR}) evaluated at the per-class population row nvec(i,:), for the requested class r.
cdscaling[i] is a callable of that row. It may return a single value, i.e. a chain-independent scaling beta_i(n) shared by every class (the historical contract), or R values, i.e. the per-class scalings, of which element classIdx is taken. The per-class form expresses Sauer's chain-dependent service rates mu_{r,i}(n) (Sauer 1983, eq. (40)). An absent (empty) callable leaves the station at 1.
Arithmetic: EXACT-CAPABLE. The function itself performs one reciprocal per station and nothing else, so it carries no transcendental gate; whether the result is exact is entirely a property of the supplied callables.
Definition in file pfqn_cdfun.h.