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;
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
bool isCritical() const
Returns true if the solver fails in case this requirement is not met.
void enable(bool critical=true)
Enables this requirement.
void clear()
Clears this requirement.
#define STORM_LOG_THROW(cond, exception, message)