LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
pfqn_chow.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_CHOW_H
6#define LINE_API_PFQN_CHOW_H
7
8/**
9 * @file
10 * @ingroup api_pfqn
11 * JMT-compatible Chow approximate MVA.
12 *
13 * JMT estimates every class's arrival-instant queue length at a station by
14 * the aggregate queue length at the full population. This is the Bard
15 * large-customer-population fixed point implemented by pfqn_lcp.
16 */
17
18#include <cstddef>
19#include <vector>
20
22
23namespace line {
24namespace pfqn {
25
26/** Legacy compatibility selector; JMT-compatible Chow ignores it. */
28
29/**
30 * @brief JMT-compatible Chow approximate MVA.
31 *
32 * @param L (M x R) demands
33 * @param N (R) populations
34 * @param Z (R) think times, empty for none
35 * @param type (M) per-station scheduling, empty for all PS
36 * @param tol convergence tolerance
37 * @param maxiter iteration cap
38 * @param QN0 queue lengths that warm-start the iteration; empty for a cold start
39 * @param variant legacy compatibility selector; accepted but ignored
40 */
41template <class T>
42AmvaResult<T> pfqn_chow(const Matrix<T>& L, const std::vector<T>& N, const std::vector<T>& Z,
43 const std::vector<AmvaSched>& type, double tol = 1e-6,
44 std::size_t maxiter = 1000, const Matrix<T>& QN0 = Matrix<T>(),
46 (void)variant;
47 return pfqn_lcp(L, N, Z, type, tol, maxiter, QN0);
48}
49
50template <class T>
51AmvaResult<T> pfqn_chow(const Matrix<T>& L, const std::vector<T>& N, const std::vector<T>& Z) {
52 return pfqn_chow(L, N, Z, std::vector<AmvaSched>());
53}
54
55template <class T>
56AmvaResult<T> pfqn_chow(const Matrix<T>& L, const std::vector<T>& N) {
57 return pfqn_chow(L, N, std::vector<T>(), std::vector<AmvaSched>());
58}
59
60} // namespace pfqn
61} // namespace line
62
63#endif // LINE_API_PFQN_CHOW_H
ChowVariant
Legacy compatibility selector; JMT-compatible Chow ignores it.
Definition pfqn_chow.h:27
AmvaResult< T > pfqn_chow(const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z, const std::vector< AmvaSched > &type, double tol=1e-6, std::size_t maxiter=1000, const Matrix< T > &QN0=Matrix< T >(), ChowVariant variant=ChowVariant::Forward)
JMT-compatible Chow approximate MVA.
Definition pfqn_chow.h:42
AmvaResult< T > pfqn_lcp(const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z, const std::vector< AmvaSched > &type, double tol=1e-6, std::size_t maxiter=1000, const Matrix< T > &QN0=Matrix< T >())
Bard Large Customer Population (LCP) approximate MVA.
Definition pfqn_lcp.h:57
Conservation laws of a layered queueing network, enumerated from its structure.
Definition aoi_dist2ph.h:52
Bard Large Customer Population (LCP) approximate MVA.