![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Port of matlab/src/api/sn/sn_map_modulation.m. More...
#include <cmath>#include <cstddef>#include <string>#include <vector>#include "line/lang/qn/network_struct.h"#include "line/num/number.h"Go to the source code of this file.
Classes | |
| struct | line::api::SnMapModulation< T > |
| One modulating process: which station and classes it drives, and its blocks. More... | |
Namespaces | |
| namespace | line |
| namespace | line::api |
Functions | |
| template<class T> | |
| std::vector< SnMapModulation< T > > | line::api::sn_map_modulation (const qn::NetworkStruct< T > &sn) |
Port of matlab/src/api/sn/sn_map_modulation.m.
Every MAP-like process in the model, collected as the modulating environment it really is: map2renv turns this list into a random-environment model, in which the MAP's phase process is the environment stage and the network runs at the rate that stage selects.
MARKED PROCESSES. When a station's arrival is a marked MAP (an MMAP), the classes it marks share ONE modulating phase process, so they are reported as a SINGLE entry carrying (D0, D1^(1), ..., D1^(C)) over the marked class set, not as one entry per class. Splitting them would give each class its own independent environment and lose exactly the correlation the MMAP encodes.
is_mmpp records whether every mark block is diagonal: a diagonal D1 means an arrival never changes the phase, which is the MMPP special case whose environment is the phase process alone.
ARITHMETIC: field. A Frobenius norm comparison, no transcendental.
Definition in file sn_map_modulation.h.