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

Logistic expansion with the eps->0 bias correction (BLE). More...

#include <cmath>
#include <cstddef>
#include <vector>
#include "line/api/pfqn/pfqn_le.h"
#include "line/lang/lang_types.h"
#include "line/num/number.h"
#include "line/util/matrix.h"
Include dependency graph for pfqn_ble.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::pfqn

Typedefs

template<class T>
using line::pfqn::BleResult = LeResult<T>
 Return value of pfqn_ble, mirroring [Gn, lGn].

Functions

template<class T>
BleResult< T > line::pfqn::pfqn_ble (const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z)
 Logistic expansion estimate of the normalizing constant, bias-corrected.
template<class T>
BleResult< T > line::pfqn::pfqn_ble (const Matrix< T > &L, const std::vector< T > &N)

Detailed Description

Logistic expansion with the eps->0 bias correction (BLE).

Templated port of matlab/src/api/pfqn/pfqn_ble.m. Cas17 Theorem 4.1 holds for eps >= eps_N > 0; the K(1+eps*N) self-looping populations are what make the integrand concentrate. Evaluated at eps->0, as pfqn_le does, the curvature at the saddle tends to 1 rather than growing with N, so Laplace's method has no asymptotic regime there and carries an O(1) relative bias of e/sqrt(2 pi) PER LAPLACED DIRECTION. The count is the exponent on sqrt(2 pi) in the branch taken: M-1 with Z = 0, where the radial integral is exact as Gamma(N+M), and M with Z > 0, where the radius is Laplaced too. Measured over the 1562 models of the Cas17 dataset (Zenodo 546873, sec5.3.1, sigma = 100) the Z > 0 deficit is M to within 0.01 units. The published expansion is NOT in error and the correction is EMPIRICAL, not part of Cas17; see _kb/03-api-layer.md.

ARITHMETIC. Inherited from pfqn_le: the correction is a logarithm, so the routine is gated on num_traits<T>::has_transcendental for the same reason.

DEGENERATE BRANCH. When there is no queueing station to expand around, pfqn_le returns the exact delay term and there is no Laplace step to correct, so pfqn_ble returns it unchanged; this is the MATLAB branching.

Definition in file pfqn_ble.h.