![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
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"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. | |
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.