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

M3PP obtained by SUPERPOSING one second-order process per class (matlab/lib/m3a/m3a/m3pp/m3pp_superpos_fitc.m and its two entry points m3pp_superpos_fitc_theoretical.m and m3pp_superpos_fitc_trace.m). More...

#include <cstddef>
#include <vector>
#include "line/api/mam/map_count_moment.h"
#include "line/api/mam/mmap_lambda.h"
#include "line/api/mam/mmap_stats.h"
#include "line/api/mam/mmpp2_fitc.h"
#include "line/api/trace/mtrace_iat2counts.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/matrix.h"
Include dependency graph for m3pp_superpos_fitc.h:

Go to the source code of this file.

Classes

struct  line::mam::M3ppSuperposResult< T >
 Result of the superposition fits. More...

Namespaces

namespace  line
namespace  line::mam

Functions

template<class T>
M3ppSuperposResult< T > line::mam::m3pp_superpos_fitc (const std::vector< T > &av, const std::vector< T > &btv, const std::vector< T > &binfv, const std::vector< T > &m3tv, const T &t, const T &tinf)
 Fit one second-order M3PP per class from its counting characteristics and superpose them.
template<class T>
M3ppSuperposResult< T > line::mam::m3pp_superpos_fitc_theoretical (const Mmap< T > &mm, const T &t, const T &tinf)
 Superpose one M3PP per class to fit the counting characteristics of a given MMAP.
template<class T>
M3ppSuperposResult< T > line::mam::m3pp_superpos_fitc_trace (const std::vector< T > &Tv, const std::vector< int > &A, const T &t, const T &tinf)
 Superpose one M3PP per class to fit a multi-class trace.
template<class T>
M3ppSuperposResult< T > line::mam::m3pp_superpos_fitc_trace (const std::vector< T > &Tv, const std::vector< int > &A)
 m3pp_superpos_fitc_trace with the reference's default time scales.

Detailed Description

M3PP obtained by SUPERPOSING one second-order process per class (matlab/lib/m3a/m3a/m3pp/m3pp_superpos_fitc.m and its two entry points m3pp_superpos_fitc_theoretical.m and m3pp_superpos_fitc_trace.m).

Each class gets its own MMPP(2) from mmpp2_fitc on that class's own rate, IDC at t, IDC at infinity and third central moment of counts; the class is then a single-class MMAP {D0, D1, D1}, and the k of them are superposed. The result therefore has order 2^k, not k + 1: the phase process of a superposition is the PRODUCT chain, and the reference's own comment "M3PP[m] of order k+1" describes the lumped interleaving of m3pp2m_interleave, not this. What the superposition buys instead is that every per-class second-order characteristic is matched exactly and independently, since the components do not interact.

REFERENCE DEFECT (m3pp_superpos_fitc_theoretical.m): it calls mmap_count_moment, which is defined NOWHERE in the MATLAB tree – neither in m3a nor in matlab/src/api. The entry point therefore raises "Unrecognized function" before any fitting happens and cannot execute. The function is defined in the JAR (jline.api.mam.Mmap_count_moment) as the counting moments of the per-class MARGINAL MAP, {D0 + sum_{j != k} D1_j, D1_k}, which is the standard definition and is what mmap_count_moment in map_count_moment.h implements; that is what this port calls. MATLAB was NOT edited. m3pp_superpos_fitc_trace.m is unaffected: it reads its moments off the trace.

Gated on transcendental arithmetic, through mmpp2_fitc.

Definition in file m3pp_superpos_fitc.h.