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

Wraps a flow-equivalent-server throughput table as a per-class class-dependence function beta_{i,r}(n). More...

#include <cstddef>
#include <functional>
#include <vector>
#include "line/api/fes/ljd_linearize.h"
#include "line/num/number.h"
#include "line/util/error.h"
Include dependency graph for fes_beta_handle.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::fes

Typedefs

template<class T>
using line::fes::FesBetaFun = std::function<std::vector<T>(const std::vector<int>&)>
 Class-dependence handle: population vector -> per-class beta.

Functions

template<class T>
FesBetaFun< T > line::fes::fes_beta_handle (const std::vector< std::vector< T > > &scalingTable, const std::vector< int > &cutoffs)
 Wraps a flow-equivalent-server throughput table as a per-class class-dependence function beta_{i,r}(n).

Detailed Description

Wraps a flow-equivalent-server throughput table as a per-class class-dependence function beta_{i,r}(n).

Templated port of matlab/src/api/fes/fes_beta_handle.m. The returned callable takes the per-class population n at the FES station and returns

beta_r(n) = X_r(n) |n| / n_r,

the DIMENSIONLESS scaling relative to the nominal rate-1 service of the FES station. The |n|/n_r factor cancels the processor-sharing share that the convolution applies (Sauer 1983, eq. (40), with mu_{r,i}(n) = (n_r/|n|) beta_r(n)), leaving the aggregate completing class r at exactly the subnetwork throughput X_r(n). The population is clamped to the cutoffs, so the scaling saturates beyond the tabulated range as the table intends; entries with n_r = 0 are never consulted by the recurrence and are returned as 1.

Arithmetic. One table lookup, one multiplication and one division, so this is exact at T = Rational.

Deviation from MATLAB, mechanical: the MATLAB handle is a closure over the table; here it is a std::function that owns copies of the table and the cutoffs, so the returned callable outlives its arguments.

Definition in file fes_beta_handle.h.