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

Aggregate load-dependent rate of m identical c-server FCFS stations. More...

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

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::pfqn

Functions

template<class T>
std::vector< T > line::pfqn::pfqn_mu_ms (int N, int m, int c)
 Aggregate load-dependent rate of m identical c-server FCFS stations.

Detailed Description

Aggregate load-dependent rate of m identical c-server FCFS stations.

Templated port of matlab/src/api/pfqn/pfqn_mu_ms.m.

A single c-server station holding k jobs has balance function beta_1(k) = 1 / prod_{j=1}^{k} min(j, c). The flow-equivalent aggregate of m such stations in parallel has the convolution

beta_m(n) = sum_{k=0}^{n} beta_1(k) beta_{m-1}(n - k), beta_m(0) = 1,

and the load-dependent rate of the aggregate is the ratio of consecutive balance-function values,

mu(n) = beta_m(n - 1) / beta_m(n), n = 1, ..., N.

The reference writes the inner term as 1/(prod(a) * prod(b)) with b = 1/beta_{m-1}(n-k), i.e. as beta_{m-1}(n-k)/prod_{j<=k} min(j,c), which is the convolution above; the MATLAB idiom relies on prod([]) = 1 to cover k = 0. It also fills the table with the population outermost and the station count innermost, so beta_{m-1}(n) is available at the same n; that ordering is preserved here even though the port could iterate either way.

Arithmetic: EXACT-CAPABLE. Only additions, multiplications and divisions in the field of the inputs, all of them on values built from the integers, so at T = Rational the returned rates are exact rationals.

Definition in file pfqn_mu_ms.h.