Package jline.api.pfqn.nc
Class Pfqn_bkt
java.lang.Object
jline.api.pfqn.nc.Pfqn_bkt
-
Method Summary
Modifier and TypeMethodDescriptionstatic Ret.pfqnNcstatic Ret.pfqnNcKnessl-Tier expansion corrected for the Stirling remainder that steepest descent drops in each class direction.static doublestirlingRemainder(double n) The Stirling remainder s(N) = log(N!) - (N log N - N + log(2 pi N)/2), exactly, for N >= 1.
-
Method Details
-
stirlingRemainder
public static double stirlingRemainder(double n) The Stirling remainder s(N) = log(N!) - (N log N - N + log(2 pi N)/2), exactly, for N >= 1. s(1) is the constant pfqn_ble adds per station direction, and s(N) = 1/(12 N) + O(N^-2). -
pfqn_bkt
Knessl-Tier expansion corrected for the Stirling remainder that steepest descent drops in each class direction. pfqn_kt extracts N from the generating function of G by steepest descent. On the demand-free integral the exact coefficient is [u^N] exp(Z u) = Z^N/N!, whereas the expansion returns N log Z - (N log N - N + log(2 pi N)/2), Stirling's approximation of log(N!) in place of log(N!). So KT lies ABOVE the exact value by s(N) per Laplaced class direction, and BKT subtracts sum_r s(N_r). The remainder is evaluated exactly from logGamma: truncating it at 1/(12 N) loses an order of magnitude (on the 1562 models of Cas17 sec5.3.1 the median |error| is 0.083 nats for KT, 1.9e-4 for the truncation and 1.4e-5 for the exact remainder). With a think time BKT is the SAME estimator as pfqn_ble, to the accuracy of the two saddle-point solvers. Only the classes pfqn_kt actually Laplaces are corrected: a class with no jobs is dropped by its recursion, and a self-looping class (one nonzero demand and no think time) has its coefficient extracted exactly, so neither carries a remainder. The predicate below is pfqn_kt's own. See _kb/03-api-layer.md. -
pfqn_bkt
-