Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MinMaxLinearEquationSolverRequirements.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
7
8namespace storm {
9namespace solver {
10
12 public:
13 // The different requirements a solver can have.
14 enum class Element {
15 // Requirements that are related to the graph structure of the system. Note that the requirements in this
16 // category are to be interpreted incrementally in the following sense: whenever the system has a unique
17 // solution then a valid initial scheduler is no longer required.
18 Acyclic,
21
22 // Requirements that are related to bounds for the actual solution.
25 };
26
27 // The type of a requirement.
28
30
37
38 SolverRequirement const& acyclic() const;
39 SolverRequirement const& uniqueSolution() const;
41 SolverRequirement const& lowerBounds() const;
42 SolverRequirement const& upperBounds() const;
43 SolverRequirement const& get(Element const& element) const;
44
45 void clearAcyclic();
48 void clearLowerBounds();
49 void clearUpperBounds();
50 void clearBounds();
51
52 bool hasEnabledRequirement() const;
54
58 std::string getEnabledRequirementsAsString() const;
59
60 private:
61 SolverRequirement acyclicRequirement;
62 SolverRequirement uniqueSolutionRequirement;
63 SolverRequirement validInitialSchedulerRequirement;
64 SolverRequirement lowerBoundsRequirement;
65 SolverRequirement upperBoundsRequirement;
66};
67
68} // namespace solver
69} // namespace storm
SolverRequirement const & get(Element const &element) const
MinMaxLinearEquationSolverRequirements & requireBounds(bool critical=true)
MinMaxLinearEquationSolverRequirements & requireUniqueSolution(bool critical=true)
MinMaxLinearEquationSolverRequirements & requireLowerBounds(bool critical=true)
MinMaxLinearEquationSolverRequirements & requireValidInitialScheduler(bool critical=true)
MinMaxLinearEquationSolverRequirements & requireUpperBounds(bool critical=true)
std::string getEnabledRequirementsAsString() const
Returns a string that enumerates the enabled requirements.
MinMaxLinearEquationSolverRequirements & requireAcyclic(bool critical=true)
LabParser.cpp.
Definition cli.cpp:18