14 acyclicRequirement.enable(critical);
19 lowerBoundsRequirement.enable(critical);
24 upperBoundsRequirement.enable(critical);
35 return acyclicRequirement;
39 return lowerBoundsRequirement;
43 return upperBoundsRequirement;
55 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentException,
"Unknown ElementType");
59 acyclicRequirement.clear();
63 lowerBoundsRequirement.clear();
67 upperBoundsRequirement.clear();
71 return acyclicRequirement || lowerBoundsRequirement || upperBoundsRequirement;
75 return acyclicRequirement.isCritical() || lowerBoundsRequirement.isCritical() || upperBoundsRequirement.isCritical();
79 std::string res =
"[";
100 res +=
"(mandatory)";
109 res +=
"upperBounds";
111 res +=
"(mandatory)";
LinearEquationSolverRequirements & requireLowerBounds(bool critical=true)
LinearEquationSolverRequirements & requireAcyclic(bool critical=true)
bool hasEnabledRequirement() const
LinearEquationSolverRequirements()
SolverRequirement const & upperBounds() const
SolverRequirement const & acyclic() const
std::string getEnabledRequirementsAsString() const
Checks whether there are no critical requirements left.
SolverRequirement const & lowerBounds() const
SolverRequirement const & get(Element const &element) const
LinearEquationSolverRequirements & requireBounds(bool critical=true)
LinearEquationSolverRequirements & requireUpperBounds(bool critical=true)
bool hasEnabledCriticalRequirement() const
#define STORM_LOG_THROW(cond, exception, message)