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

Shared declarations for the empirical trace statistics domain. More...

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <set>
#include <vector>
#include "line/num/number.h"
#include "line/util/error.h"
Include dependency graph for trace_types.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::trace

Detailed Description

Shared declarations for the empirical trace statistics domain.

Templated port of the kpctoolbox trace primitives (matlab/lib/kpctoolbox/trace/, matlab/lib/m3a/m3a/mtrace/) and of jar/src/main/java/jline/api/trace/.

CONVENTIONS

  • A single-class trace is a vector of inter-arrival (or service) times, passed as std::vector<T>.
  • A marked (multi-class) trace is the pair (T, A) with A a vector of integer class labels of the same length. The label alphabet is whatever distinct values occur in A, taken in increasing order; row c of every returned matrix refers to the c-th smallest label, exactly as MATLAB's unique(A) and the JAR's TreeSet do. Two JAR functions instead index by the raw label value (Mtrace_cov, Mtrace_joint use 1..max(A)); those divergences are documented on the individual headers.

ARITHMETIC Sample moments, autocovariances, class-transition frequencies, counting processes and order statistics are sums, products and divisions of the data, so the whole of this domain except trace_skew, trace_summary and trace_gamma's residual comparison is a field computation and is instantiated for double, Rational and Real50. Only the functions that take a square root (skewness normalization, standard deviations in the summary) carry a has_transcendental static_assert.

Definition in file trace_types.h.