![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
AMVA joint-dependence function for non-product-form scaling. 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::JdScaling = std::function<std::vector<T>(const std::vector<T>&)> |
| A per-station joint-dependence callable: the population row -> 1 or R rates. | |
Functions | |
| template<class T> | |
| std::vector< T > | line::pfqn::pfqn_jdfun (const Matrix< T > &nvec, const std::vector< JdScaling< T > > &jdscaling, std::size_t classIdx) |
| AMVA joint-dependence function for non-product-form scaling. | |
| template<class T> | |
| std::vector< T > | line::pfqn::pfqn_jdfun (const Matrix< T > &nvec, const std::vector< JdScaling< T > > &jdscaling) |
| MATLAB default: classIdx = 1, i.e. | |
AMVA joint-dependence function for non-product-form scaling.
Templated port of matlab/src/api/pfqn/pfqn_jdfun.m.
Returns, for every station i, the reciprocal of the joint-dependent scaling eta_i(n_{i1}, ..., n_{iR}) evaluated at the per-station population row nvec(i,:), for the requested class.
jdscaling[i] is a callable of that row. It may return a single value, i.e. a scaling eta_i(n) shared by every class (broadcast, as in the flagship min(n_i1, c)), or R values, i.e. the per-class scalings eta_{i,r}(n), of which element classIdx is taken (Sauer chain-dependent rate mu_{r,i}(n)).
Unlike pfqn_cdfun – whose beta_{i,r} is a product-form scaling reading only the own-class marginal n_{i,r} – eta may read the joint vector arbitrarily and is therefore NON-product-form: the AMVA result is an approximation with no exactness or uniqueness guarantee. The numerical evaluation is identical to pfqn_cdfun; the distinction is semantic and is carried by the separate sn.jdscaling field.
Arithmetic: EXACT-CAPABLE. One reciprocal per station and nothing else, so no transcendental gate; exactness is a property of the supplied callables.
Definition in file pfqn_jdfun.h.