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

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"
Include dependency graph for sn_map_modulation.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)

Detailed Description

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.