![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Input validation for Flow-Equivalent Server (FES) aggregation. More...
#include <cstddef>#include <set>#include <string>#include <vector>#include "line/api/sn/sn_predicates.h"#include "line/lang/qn/network_struct.h"#include "line/num/number.h"#include "line/util/error.h"Go to the source code of this file.
Classes | |
| struct | line::fes::FesValidateResult |
| The reference's (isValid, errorMsg) pair. More... | |
Namespaces | |
| namespace | line |
| namespace | line::fes |
Functions | |
| std::string | line::fes::fes_node_type_text (qn::NodeType t) |
| NodeType.toText, so that the refusal messages read as the reference's do. | |
| template<class T> | |
| FesValidateResult | line::fes::fes_validate (const qn::NetworkStruct< T > &sn, const std::vector< std::size_t > &subsetIndices) |
| Input validation for Flow-Equivalent Server (FES) aggregation. | |
Input validation for Flow-Equivalent Server (FES) aggregation.
Templated port of matlab/src/api/fes/fes_validate.m.
Checks that the network structure and the station subset admit an FES aggregation:
The reference returns (isValid, errorMsg) rather than raising, because the caller (ModelAdapter.aggregateFES) reports the message to the user; the port keeps that contract. THE ORDER OF THE CHECKS IS PART OF THE CONTRACT: a subset that is both too large and holds a Source would report the first failure, and callers key on the message.
NOTE the closed-model test is sn_is_open_model, which is true only when EVERY class is open. A MIXED model therefore passes this validator; that is the reference's behaviour and is reproduced rather than tightened, since changing it would silently refuse models the MATLAB path accepts.
Arithmetic: EXACT-CAPABLE. Structural checks only; no arithmetic on T.
Definition in file fes_validate.h.