![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
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"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) |
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.