![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
AMVA-QD limited-load-dependence function. More...
#include <cmath>#include <cstddef>#include <limits>#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 |
Functions | |
| template<class T> | |
| std::vector< T > | line::pfqn::pfqn_lldfun (const std::vector< T > &n, const Matrix< T > &lldscaling, const std::vector< double > &nservers) |
| AMVA-QD limited-load-dependence function. | |
| template<class T> | |
| std::vector< T > | line::pfqn::pfqn_lldfun (const std::vector< T > &n, const Matrix< T > &lldscaling) |
| Overload without the multiserver term, matching the two-argument MATLAB call. | |
AMVA-QD limited-load-dependence function.
Templated port of matlab/src/api/pfqn/pfqn_lldfun.m, cross-checked against jar/src/main/java/jline/api/pfqn/ld/Pfqn_lldfun.java. Returns, for every station i, the reciprocal service-capacity multiplier at the (fractional) queue length n(i), combining
softmin. The reference rewrites the literal weighted average (x e^{-ax} + y e^{-ay})/(e^{-ax} + e^{-ay}) as lo + gap w/(1+w) with w = e^{-a gap}, so the exponent argument is never positive and the limit w -> 0 returns min(x,y) exactly; that form is reproduced here, including its cutoff at a*gap > 745 where exp underflows to zero in double.
Arithmetic: TRANSCENDENTAL-GATED, and here on a genuine transcendental, not on a tolerance: softmin evaluates exp(-alpha |n_i - c_i|), which is not an element of the field generated by the inputs for any alpha and gap of interest. There is no exact formulation of a soft minimum.
Definition in file pfqn_lldfun.h.