LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Toggle main menu visibility
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
21
#include "
line/api/pfqn/pfqn_lcp.h
"
22
23
namespace
line
{
24
namespace
pfqn
{
25
26
/** Legacy compatibility selector; JMT-compatible Chow ignores it. */
27
enum class
ChowVariant
{
Forward
,
Backward
};
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
*/
41
template
<
class
T>
42
AmvaResult<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>
(),
45
ChowVariant
variant =
ChowVariant::Forward
) {
46
(void)variant;
47
return
pfqn_lcp
(L, N, Z, type, tol, maxiter, QN0);
48
}
49
50
template
<
class
T>
51
AmvaResult<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
55
template
<
class
T>
56
AmvaResult<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
line::Matrix
Definition
matrix.h:56
line::pfqn
Definition
cd_peak_scaling.h:43
line::pfqn::ChowVariant
ChowVariant
Legacy compatibility selector; JMT-compatible Chow ignores it.
Definition
pfqn_chow.h:27
line::pfqn::ChowVariant::Forward
@ Forward
Definition
pfqn_chow.h:27
line::pfqn::ChowVariant::Backward
@ Backward
Definition
pfqn_chow.h:27
line::pfqn::pfqn_chow
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
line::pfqn::pfqn_lcp
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
line
Conservation laws of a layered queueing network, enumerated from its structure.
Definition
aoi_dist2ph.h:52
pfqn_lcp.h
Bard Large Customer Population (LCP) approximate MVA.
line::pfqn::AmvaResult
Definition
pfqn_bs.h:48
include
line
api
pfqn
pfqn_chow.h
Generated by
1.18.0