![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Shared types of the stochastic network calculus domain. More...
#include <functional>Go to the source code of this file.
Classes | |
| struct | line::snc::Env |
| The pair (sigma, rho) of an envelope evaluated at one theta. More... | |
| struct | line::snc::SncResult |
| A bound together with the theta that attains it. More... | |
Namespaces | |
| namespace | line |
| namespace | line::snc |
Typedefs | |
| using | line::snc::Envelope = std::function<Env(double)> |
| An envelope as a function of the Chernoff parameter. | |
Shared types of the stochastic network calculus domain.
An envelope is the pair (sigma(theta), rho(theta)) in the exponential form
E[exp(theta*A(s,t))] <= exp(theta*(rho*(t-s) + sigma)), theta > 0,
and its service counterpart with the sign of theta reversed. The whole domain passes envelopes as FUNCTIONS of theta rather than as numbers, because every bound is an infimum over theta and a composition (superposition, leftover service, concatenation, departure) has to be re-evaluated at whatever theta the search asks for.
ARITHMETIC. This domain is DOUBLE-ONLY, deliberately. Every entry point is an exp/log expression minimized numerically over theta, so there is no exact or multiprecision instantiation to offer: a Rational cannot carry exp(theta) and a Real would buy digits the Chernoff search does not have. The templated SolverBA arm converts at the boundary with num_traits<T>::to_double and from_double, exactly as sylvester.h does for the same reason.
Port of matlab/src/api/snc, cross-checked against jline.api.snc.
Reference: M. Fidler, A. Rizk, "A Guide to the Stochastic Network Calculus", IEEE Communications Surveys and Tutorials 17(1), 92-105, 2015.
Definition in file snc_types.h.