![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
MMPP(2) matching counting-process characteristics (matlab/lib/kpctoolbox/mmpp/mmpp2_fitc.m). More...
#include "line/api/mam/map_fit_detail.h"#include "line/api/mam/map_moment.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::mam::Mmpp2FitcResult< T > |
| Result of mmpp2_fitc. More... | |
Namespaces | |
| namespace | line |
| namespace | line::mam |
Functions | |
| template<class T> | |
| Mmpp2FitcResult< T > | line::mam::mmpp2_fitc (const T &mu, const T &bt1, const T &bt2, const T &binf, const T &m3t2, const T &t1, const T &t2) |
| MMPP(2) from the arrival rate, the IDC at t1, t2 and infinity, and the third central moment of the counts at t2. | |
MMPP(2) matching counting-process characteristics (matlab/lib/kpctoolbox/mmpp/mmpp2_fitc.m).
Implements Heffes and Lucantoni (1986): the arrival rate mu, the index of dispersion for counts at two finite time scales and in the limit (bt1, bt2, binf) and the third central moment of the counts at t2 determine the four MMPP(2) parameters (r1, r2, l1, l2) in closed form. The only implicit step is the total switching rate x = r1 + r2, which solves (binf - 1)/(binf - bt1) = c, x t1 = W(-c e^-c) + c with W the principal branch of the Lambert function. MATLAB solves w e^w = -c e^-c with fsolve started at w = 1, i.e. it targets the principal branch; this port evaluates W0 directly by Halley iteration, so the result is deterministic and does not depend on a solver's tolerances.
Gated on transcendental arithmetic: exp, log and square roots appear throughout, and the Lambert step is inherently tolerance-driven.
Degenerate inputs return a Poisson process of rate mu, as in the reference: a constant unit IDC (binf = bt1 = 1) has no MMPP(2) representation, and neither does an IDC profile violating binf > bt1 > 1.
Definition in file mmpp2_fitc.h.