![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Mean subtask dispersion of a split-merge system with Erlang branches. More...
#include <cstddef>#include <vector>#include "line/api/fj/fj_types.h"#include "line/api/fj/fj_xmax_erlang.h"#include "line/num/number.h"#include "line/util/error.h"Go to the source code of this file.
Classes | |
| struct | line::fj::FJDispersionResult< T > |
| [Edisp, Emax, Emin] of fj_dispersion. More... | |
Namespaces | |
| namespace | line |
| namespace | line::fj |
Functions | |
| template<class T> | |
| FJDispersionResult< T > | line::fj::fj_dispersion (const std::vector< unsigned > &shape, const std::vector< T > &rate, const std::vector< T > &d, const T &tol=num_traits< T >::from_double(1e-10), unsigned npanels=4000) |
| Mean subtask dispersion of a split-merge system with Erlang branches. | |
| template<class T> | |
| FJDispersionResult< T > | line::fj::fj_dispersion (const std::vector< unsigned > &shape, const std::vector< T > &rate) |
| The undelayed system, d = 0. | |
Mean subtask dispersion of a split-merge system with Erlang branches.
Templated port of matlab/src/api/fj/fj_dispersion.m.
E[X_(N)] = integral_0^inf [ 1 - prod_i F_i(x - d_i) ] dx E[X_(1)] = integral_0^inf prod_i [ 1 - F_i(x - d_i) ] dx E[D_d] = E[X_(N)] - E[X_(1)]
The integrand actually evaluated is 1 - prod F_i - prod (1-F_i), which is non-negative and vanishes at both ends; the difference of the two products printed in the survey is not the dispersion and can go negative.
Branch i is an Erlang with shape(i) stages of rate rate(i), the split-merge equivalent used in the delay-scheduling construction: a subtask with q others ahead of it in its parallel queue behaves as an Erlang(q+1, mu).
Definition in file fj_dispersion.h.