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

Gravey's characteristic maximum M_K, an upper bound on the expected maximum of K i.i.d. More...

Include dependency graph for fj_char_max.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::fj

Functions

template<class T>
FJCharMaxResult< T > line::fj::fj_char_max (unsigned K, const T &mu)
 Exponential branch.
template<class T>
FJCharMaxResult< T > line::fj::fj_char_max (unsigned K, unsigned k, const T &mu)
 Erlang-k branch.

Detailed Description

Gravey's characteristic maximum M_K, an upper bound on the expected maximum of K i.i.d.

random variables.

Templated port of matlab/src/api/fj/fj_char_max.m, cross-checked against FJ_char_max.fj_char_max_exp and fj_char_max_erlang in jar/src/main/java/jline/api/fj/FJ_char_max.java (identical; the JAR splits the MATLAB dist_type switch into two entry points, which this port mirrors as two overloads).

m_K is the greatest lower bound with P(X > m_K) <= 1/K, and M_K = m_K + K int_{m_K}^inf P(X > x) dx.

exponential: m_K = ln(K)/mu, M_K = H_K/mu (the bound is tight here) Erlang-k: m_K solves exp(-mu m) sum_{i<k} (mu m)^i/i! = 1/K, M_K = (k/mu)[1 + K exp(-mu m_K) (mu m_K)^k / k!]

static_assert(num_traits<T>::has_transcendental) – a log in the exponential case and a bracketed root of a transcendental equation in the Erlang one.

The MATLAB 'general' mode, which takes an arbitrary survival function handle and integrates its tail to infinity by adaptive quadrature after a doubling search for the truncation point, is NOT ported: the truncation search has no termination guarantee for a heavy tail and the JAR omits it too. Callers with a specific tail should use fj_order_stat.

Definition in file fj_char_max.h.