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

Shared return types and arithmetic helpers for the templated Age of Information port. More...

#include <cmath>
#include <functional>
#include <string>
#include "line/num/number.h"
#include "line/util/error.h"
Include dependency graph for aoi_types.h:

Go to the source code of this file.

Classes

struct  line::aoi::AoiResult< T >
 [meanAoI, varAoI, peakAoI], mirroring jline.api.aoi.AoiResult. More...
struct  line::aoi::AoiLstResult< T >
 [meanAoI, lstAoI, peakAoI], mirroring jline.api.aoi.AoiLstResult. More...

Namespaces

namespace  line
namespace  line::aoi

Typedefs

template<class T>
using line::aoi::Lst = std::function<T(const T&)>
 A Laplace-Stieltjes transform evaluated at real arguments.

Detailed Description

Shared return types and arithmetic helpers for the templated Age of Information port.

The MATLAB AoI family in matlab/src/api/aoi/ returns one of two triples: [meanAoI, varAoI, peakAoI] for the fully parameterized queues (M/M/1, M/D/1, D/M/1) and [meanAoI, lstAoI, peakAoI] for the ones taking a Laplace-Stieltjes transform as input (M/GI/1, GI/M/1). Both live here, mirroring jline.api.aoi.AoiResult and jline.api.aoi.AoiLstResult; each ported function lives in its own header named after the MATLAB file, as required by the port convention.

An LST is represented as a std::function<T(const T&)> rather than a distribution object, exactly as MATLAB represents it as a function handle and the JAR as a LstFunction. Nothing in the family inverts an LST: the transforms are evaluated at real arguments only, and where MATLAB needs a derivative it takes a central difference with a fixed step.

Definition in file aoi_types.h.