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

MMPP(2) matching counting-process characteristics (matlab/lib/kpctoolbox/mmpp/mmpp2_fitc.m). More...

Include dependency graph for mmpp2_fitc.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.

Detailed Description

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.