Browse Source

svi now considers bounds by default

tempestpy_adaptions
TimQu 7 years ago
parent
commit
94fb16e654
  1. 5
      src/storm/solver/IterativeMinMaxLinearEquationSolver.cpp
  2. 5
      src/storm/solver/NativeLinearEquationSolver.cpp

5
src/storm/solver/IterativeMinMaxLinearEquationSolver.cpp

@ -264,13 +264,10 @@ namespace storm {
if (!this->hasUniqueSolution()) { if (!this->hasUniqueSolution()) {
requirements.requireNoEndComponents(); requirements.requireNoEndComponents();
} }
requirements.requireBounds(false);
} else { } else {
STORM_LOG_THROW(false, storm::exceptions::InvalidEnvironmentException, "Unsupported technique for iterative MinMax linear equation solver."); STORM_LOG_THROW(false, storm::exceptions::InvalidEnvironmentException, "Unsupported technique for iterative MinMax linear equation solver.");
} }
if (env.solver().minMax().isForceBoundsSet()) {
requirements.requireBounds();
}
return requirements; return requirements;
} }

5
src/storm/solver/NativeLinearEquationSolver.cpp

@ -957,14 +957,13 @@ namespace storm {
template<typename ValueType> template<typename ValueType>
LinearEquationSolverRequirements NativeLinearEquationSolver<ValueType>::getRequirements(Environment const& env) const { LinearEquationSolverRequirements NativeLinearEquationSolver<ValueType>::getRequirements(Environment const& env) const {
LinearEquationSolverRequirements requirements; LinearEquationSolverRequirements requirements;
if (env.solver().native().isForceBoundsSet()) {
requirements.requireBounds();
}
auto method = getMethod(env, storm::NumberTraits<ValueType>::IsExact); auto method = getMethod(env, storm::NumberTraits<ValueType>::IsExact);
if (method == NativeLinearEquationSolverMethod::IntervalIteration) { if (method == NativeLinearEquationSolverMethod::IntervalIteration) {
requirements.requireBounds(); requirements.requireBounds();
} else if (method == NativeLinearEquationSolverMethod::RationalSearch) { } else if (method == NativeLinearEquationSolverMethod::RationalSearch) {
requirements.requireLowerBounds(); requirements.requireLowerBounds();
} else if (method == NativeLinearEquationSolverMethod::SoundValueIteration) {
requirements.requireBounds(false);
} }
return requirements; return requirements;
} }

Loading…
Cancel
Save