LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
pfqn_ncjd.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_PFQN_NCJD_H
6#define LINE_API_PFQN_NCJD_H
7
8/**
9 * @file
10 * @ingroup api_pfqn
11 * Joint-dependent name of pfqn_ncoi: the balance-function convolution of a
12 * closed network whose station rates read the whole per-class occupancy vector.
13 *
14 * The two names denote the SAME routine because the balanced-fairness recursion
15 * Phi_i(0) = 1, mu_i(n) Phi_i(n) = sum_{r: n_r>0} v_{i,r} Phi_i(n - e_r) never
16 * inspects the structure of mu_i: it evaluates the callable at the full count
17 * vector n. Order independence (mu_i constant on each support) is a modelling
18 * restriction that buys insensitivity and a physical reading of Phi, not
19 * something the convolution uses, so any joint-dependent scaling eta_i(n)
20 * (sn.jdscaling) is admissible, with the proviso that the product form it
21 * induces is the balanced-fair one matched to that rate.
22 *
23 * Use pfqn_ncoi when the model is genuinely order independent and the name
24 * should say so, this one when the rate is a general joint dependence.
25 * pfqn_clwjd is the transform route and is NOT merely a renaming: it needs the
26 * rate to saturate at a finite cutoff.
27 */
28
29#include <vector>
30
32
33namespace line {
34namespace pfqn {
35
36/** @see pfqn_ncoi */
37template <class T>
38NcResult<T> pfqn_ncjd(const std::vector<T>& Z, const std::vector<int>& N,
39 const std::vector<OiRate<T>>& mu, const Matrix<T>& visits) {
40 return pfqn_ncoi(Z, N, mu, visits);
41}
42
43/** @see pfqn_ncoi */
44template <class T>
45NcResult<T> pfqn_ncjd(const std::vector<T>& Z, const std::vector<int>& N,
46 const std::vector<OiRate<T>>& mu) {
47 return pfqn_ncoi(Z, N, mu, Matrix<T>());
48}
49
50} // namespace pfqn
51} // namespace line
52
53#endif // LINE_API_PFQN_NCJD_H
NcResult< T > pfqn_ncoi(const std::vector< T > &Z, const std::vector< int > &N, const std::vector< OiRate< T > > &mu, const Matrix< T > &visits)
Normalizing constant of a closed network of ORDER-INDEPENDENT (OI) / pass-and-swap stations with empt...
Definition pfqn_ncoi.h:153
NcResult< T > pfqn_ncjd(const std::vector< T > &Z, const std::vector< int > &N, const std::vector< OiRate< T > > &mu, const Matrix< T > &visits)
Definition pfqn_ncjd.h:38
std::function< T(const std::vector< int > &)> OiRate
An OI station's total service rate as a function of the occupancy vector.
Definition pfqn_ncoi.h:61
Normalizing constant of a closed network of ORDER-INDEPENDENT (OI) / pass-and-swap stations with empt...
Return value of the normalizing-constant family, mirroring Ret.pfqnNc.
Definition pfqn_ca.h:44