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

Birman-Kogan asymptotic evaluation of closed networks with many stations. More...

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <limits>
#include <string>
#include <vector>
#include "line/api/pfqn/pfqn_mva.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/lu.h"
#include "line/util/matrix.h"
Include dependency graph for pfqn_bk.h:

Go to the source code of this file.

Classes

struct  line::pfqn::BkResult< T >
 Return value of pfqn_bk, mirroring [G, lG, X, U, A, B]. More...
struct  line::pfqn::BkLcResult< T >
 Return value of pfqn_bklc. More...

Namespaces

namespace  line
namespace  line::pfqn

Functions

template<class T>
BkResult< T > line::pfqn::pfqn_bk (const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z)
 Birman-Kogan saddle point normalizing constant with bottleneck detection.
double line::pfqn::bk_erfcx (double x)
 Scaled complementary error function exp(x^2)*erfc(x) for x >= 0.
template<class T>
BkResult< T > line::pfqn::pfqn_bkue (const std::vector< T > &L, const T &N, const T &Z)
 Birman-Kogan uniform (van der Waerden) expansion for a single chain.
template<class T>
BkLcResult< T > line::pfqn::pfqn_bklc (const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z, const std::string &method="mva", double tol=1e-10, int maxiter=1000)
 Birman-Kogan load concealment algorithm (Algorithm 2).

Detailed Description

Birman-Kogan asymptotic evaluation of closed networks with many stations.

Templated port of matlab/src/api/pfqn/pfqn_bk.m, pfqn_bkue.m and pfqn_bklc.m. Birman and Kogan (Communications in Statistics. Stochastic Models 8(3):543-563, 1992) evaluate the multichain partition function by the saddle point method applied to the Cauchy inversion of its generating function. Three algorithms live here:

pfqn_bk Propositions 1 and 3 with Algorithm 1. Stations that serve a single chain and appear only once (the paper's dedicated single servers) stay OUTSIDE the exponent as O(1) algebraic factors, so their poles may be crossed by the saddle point; Algorithm 1 detects those chains and pins their coordinate on the pole, where the residue rather than the saddle carries the mass. The rest are the paper's large groups of identical stations and are exponentiated. pfqn_bkue The van der Waerden uniform expansion of Section 4, which keeps one dominant pole and the saddle in a single erfc formula and so stays accurate on both sides of the crossing. pfqn_bklc Algorithm 2, the load concealment reduction of a multichain network to single chain problems.

ARITHMETIC. Logarithms, an error function and a Newton iteration, so gated on num_traits<T>::has_transcendental.

Definition in file pfqn_bk.h.