LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
aoi_lst_det.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2012-2026, QORE Lab, Imperial College London
3 * All rights reserved.
4 */
5#ifndef LINE_API_AOI_LST_DET_H
6#define LINE_API_AOI_LST_DET_H
7
8/**
9 * @file
10 * @ingroup api_aoi
11 * Laplace-Stieltjes transform of a deterministic (constant) distribution.
12 *
13 * Templated port of matlab/src/api/aoi/aoi_lst_det.m, cross-checked against
14 * Aoi_lst.det in jar/src/main/java/jline/api/aoi/Aoi_lst.java (identical).
15 *
16 * H*(s) = exp(-s d)
17 *
18 * static_assert(num_traits<T>::has_transcendental) -- this is the one
19 * transform in the family that leaves the field. It is also the one that makes
20 * an M/D/1 or D/M/1 AoI inexact no matter how the surrounding algebra is done.
21 */
22
24#include "line/num/number.h"
25
26namespace line {
27namespace aoi {
28
29/**
30 * @brief Laplace-Stieltjes transform of a deterministic (constant)
31 * distribution.
32 *
33 * @param d constant value, > 0
34 * @return s -> exp(-s d)
35 */
36template <class T>
37Lst<T> aoi_lst_det(const T& d) {
39 "aoi_lst_det requires transcendental arithmetic");
40 detail::require_positive(d, "aoi_lst_det", "the constant d");
41 return [d](const T& s) { return detail::num_exp(T(-s * d)); };
42}
43
44} // namespace aoi
45} // namespace line
46
47#endif // LINE_API_AOI_LST_DET_H
Shared return types and arithmetic helpers for the templated Age of Information port.
std::function< T(const T &)> Lst
A Laplace-Stieltjes transform evaluated at real arguments.
Definition aoi_types.h:41
Lst< T > aoi_lst_det(const T &d)
Laplace-Stieltjes transform of a deterministic (constant) distribution.
Definition aoi_lst_det.h:37
Number-type abstraction for the templated API port.