![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The option and result types every MVA analyzer shares. More...
#include <cmath>#include <optional>#include <string>#include <vector>#include "line/lang/qn/network_struct.h"#include "line/lang/qn/solver_feature_sets.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::mva::MvaOptions |
| The options SolverMVA reads. More... | |
| struct | line::mva::MvaSolution< T > |
| Class-level results, the [Q,U,R,T,C,X] of the MATLAB analyzers. More... | |
Namespaces | |
| namespace | line |
| namespace | line::mva |
Functions | |
| template<class T> | |
| std::string | line::mva::mva_closed_population_reason (const qn::NetworkStruct< T > &L, const std::string &method) |
| Per-method structural gates, shared by list_valid_methods and by the analyzers themselves. | |
| template<class T> | |
| std::string | line::mva::mva_single_class_open_reason (const qn::NetworkStruct< T > &L, const std::string &method) |
| RQNA and RQT decompose an open network into GI/G/1 queues and build one uncertainty set per flow out of the first two moments of a SINGLE stream, so a multiclass model has no counterpart in their equations. | |
| std::string | line::mva::mva_schmidt_ext_reason (const std::vector< double > &njobs, const std::vector< bool > &fcfs, const std::string &method) |
| The extended Schmidt method needs a customer of every class to tag. | |
| template<class T> | |
| std::string | line::mva::mva_mvac_reason (const qn::NetworkStruct< T > &L, const std::string &method) |
| MVAC is the exact chain recursion over single-server fixed-rate (SSFR) queues and infinite-server centres of a product-form network, and it recurs on the queueing centres, so it needs at least one. | |
| template<class T> | |
| std::string | line::mva::mva_qna_scheduling_reason (const qn::NetworkStruct< T > &L) |
| QNA's station update has an arm for INF, PS and FCFS and none for any other discipline, so a SIRO, LCFS, LCFS-PR, HOL or priority station used to leave its whole row of Q, U, R and T at zero and the table was returned as a solution. | |
The option and result types every MVA analyzer shares.
They live in their own header so that an analyzer in a separate translation unit (solver_qna.h, and any analyzer that follows it) can speak the same contract without including solver_mva.h and forming a cycle.
Definition in file mva_types.h.