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

Port of fluid_mfq_admits.m and fluid_is_single_queue.m: can the mfq fluid method (and its alias aoi) run as itself on this model? More...

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <set>
#include <string>
#include <vector>
#include "line/lang/qn/network_struct.h"
#include "line/solvers/fluid/fluid_aoi.h"
Include dependency graph for fluid_mfq_admits.h:

Go to the source code of this file.

Classes

struct  line::fluid::FluidSingleQueue
 The single-queue topology the reference reads, in 0-based indices. More...
struct  line::fluid::FluidMfqAdmits
 Verdict of fluid_mfq_admits. More...

Namespaces

namespace  line
 Conservation laws of a layered queueing network, enumerated from its structure.
namespace  line::fluid

Functions

template<class T>
FluidSingleQueue line::fluid::fluid_is_single_queue (const qn::NetworkStruct< T > &sn)
 Port of fluid_is_single_queue.m.
template<class T>
FluidMfqAdmits line::fluid::fluid_mfq_admits (const qn::NetworkStruct< T > &sn)
 Port of fluid_mfq_admits.m.

Detailed Description

Port of fluid_mfq_admits.m and fluid_is_single_queue.m: can the mfq fluid method (and its alias aoi) run as itself on this model?

The Markovian fluid queue answers ONE open station, Source -> Queue -> Sink. Off that shape mfq RESOLVES to matrix (SolverFLD.resolveMethod), which is the fallback the analyzer has always taken: stating it before the gate is what makes the gate check, and the result report, the method that answers. One predicate, two callers (fluid_resolve_method and the mfq arm of fluid_dispatch), as in MATLAB and native python.

Three arms, tried in the analyzer's own order:

  • the age-of-information shape (aoi_is_aoi);
  • the priority branch, taken when the classes carry distinct priorities: a class-independent finite positive service rate, a MAP {D0,D1} arrival for every open class, at least one of them modulated;
  • the plain branch, stated for ONE open class. Closed classes are refused by the feature set rather than here.

The topology test is NODE-level, as the reference's is: a Delay or Router node does not disqualify the model, only a second Source, Queue or Sink does. That differs from mfq_is_single_queue, the topology the solver itself builds, which is stricter; a model admitted here and refused there is answered by matrix in the dispatch, exactly as before.

Definition in file fluid_mfq_admits.h.