LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
soundness_report.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2012-2026, QORE Lab, Imperial College London
3 * All rights reserved.
4 */
5#ifndef LINE_API_WFN_SOUNDNESS_REPORT_H
6#define LINE_API_WFN_SOUNDNESS_REPORT_H
7
8/**
9 * @file
10 * @ingroup api_wfn
11 * The report of `WorkflowNet::check_soundness`.
12 *
13 * Markings are row vectors over the places, in the order of
14 * `WorkflowNet::places()`.
15 *
16 * MATLAB twin: the `report` struct of matlab/src/api/wfn/WorkflowNet.m checkSoundness
17 */
18
19#include <cstddef>
20#include <string>
21#include <vector>
22
23namespace line {
24namespace wfn {
25
27 typedef std::vector<long> Marking;
28
29 /** The first output of MATLAB's checkSoundness: true only when the verdict is "sound". */
30 bool sound = false;
31 long k = 1;
32 /** "sound", "unsound" or "unknown" (state cap reached first). */
33 std::string verdict = "unknown";
34 std::size_t state_space_size = 0;
35 std::vector<Marking> deadlocks;
36 std::vector<Marking> no_option_to_complete;
37 std::vector<Marking> improper_completion;
38 std::vector<std::string> dead_transitions;
39 bool unbounded = false;
42 /** One readable line per defect. */
43 std::vector<std::string> witnesses;
44};
45
46} // namespace wfn
47} // namespace line
48
49#endif // LINE_API_WFN_SOUNDNESS_REPORT_H
Conservation laws of a layered queueing network, enumerated from its structure.
Definition aoi_dist2ph.h:52
std::vector< Marking > improper_completion
std::vector< Marking > deadlocks
std::vector< Marking > no_option_to_complete
std::vector< std::string > dead_transitions
bool sound
The first output of MATLAB's checkSoundness: true only when the verdict is "sound".
std::vector< std::string > witnesses
One readable line per defect.
std::vector< long > Marking
std::string verdict
"sound", "unsound" or "unknown" (state cap reached first).