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

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

Detailed Description

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.