Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
LinearEquationSolverRequirements.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
6
7namespace storm {
8namespace solver {
9
11 public:
12 // The different requirements a solver can have.
13 enum class Element {
14 // Requirements that are related to the graph structure of the model.
15 Acyclic,
16
17 // Requirements that are related to bounds for the actual solution.
20 };
21
23
28
29 SolverRequirement const& acyclic() const;
30 SolverRequirement const& lowerBounds() const;
31 SolverRequirement const& upperBounds() const;
32 SolverRequirement const& get(Element const& element) const;
33
34 void clearAcyclic();
35 void clearLowerBounds();
36 void clearUpperBounds();
37
38 bool hasEnabledRequirement() const;
40
45 std::string getEnabledRequirementsAsString() const;
46
47 private:
48 SolverRequirement acyclicRequirement;
49 SolverRequirement lowerBoundsRequirement;
50 SolverRequirement upperBoundsRequirement;
51};
52
53} // namespace solver
54} // namespace storm
LinearEquationSolverRequirements & requireLowerBounds(bool critical=true)
LinearEquationSolverRequirements & requireAcyclic(bool critical=true)
std::string getEnabledRequirementsAsString() const
Checks whether there are no critical requirements left.
SolverRequirement const & get(Element const &element) const
LinearEquationSolverRequirements & requireBounds(bool critical=true)
LinearEquationSolverRequirements & requireUpperBounds(bool critical=true)
LabParser.cpp.
Definition cli.cpp:18