LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches

Shared types of the stochastic network calculus domain. More...

#include <functional>
Include dependency graph for snc_types.h:

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.

Detailed Description

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.