![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Varma-Makowski light-traffic interpolation for the mean response time of a K-way fork-join system of M/M/1 branches. More...
#include "line/api/fj/fj_harmonic.h"#include "line/api/fj/fj_types.h"#include "line/num/number.h"#include "line/util/error.h"Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::fj |
Functions | |
| template<class T> | |
| T | line::fj::fj_respt_vm (unsigned K, const T &lambda, const T &mu) |
| Varma-Makowski light-traffic interpolation for the mean response time of a K-way fork-join system of M/M/1 branches. | |
Varma-Makowski light-traffic interpolation for the mean response time of a K-way fork-join system of M/M/1 branches.
Templated port of matlab/src/api/fj/fj_respt_vm.m, cross-checked against FJ_respt.fj_respt_vm in jar/src/main/java/jline/api/fj/FJ_respt.java (identical).
R_K = [ H_K + (A_K - H_K) rho ] / (mu - lambda) A_K = sum_{i=1..K} C(K,i) (-1)^{i-1} sum_{m=1..i} C(i,m) (m-1)! / i^{m+1}
Every term is rational, so the whole interpolation is exact in the field. A_K is an alternating sum of binomial coefficients: at K = 30 the largest term is about 1e8 times the result, so in double roughly eight significant digits are lost to cancellation and by K = 60 nothing is left. The exact instantiation is the only way to evaluate A_K at those K, and the only way to measure the loss in the double one.
Definition in file fj_respt_vm.h.