diff --git a/src/storm/solver/Z3LpSolver.cpp b/src/storm/solver/Z3LpSolver.cpp index c152a9d20..16c04bd57 100644 --- a/src/storm/solver/Z3LpSolver.cpp +++ b/src/storm/solver/Z3LpSolver.cpp @@ -393,6 +393,11 @@ namespace storm { throw storm::exceptions::NotImplementedException() << "This version of storm was compiled without Z3 or the version of Z3 does not support optimization. Yet, a method was called that requires this support."; } + template + void Z3LpSolver::writeModelToFile(std::string const& filename) const { + throw storm::exceptions::NotImplementedException() << "This version of storm was compiled without Z3 or the version of Z3 does not support optimization. Yet, a method was called that requires this support."; + } + template void Z3LpSolver::push() { throw storm::exceptions::NotImplementedException() << "This version of storm was compiled without Z3 or the version of Z3 does not support optimization. Yet, a method was called that requires this support."; diff --git a/src/storm/storage/geometry/NativePolytope.h b/src/storm/storage/geometry/NativePolytope.h index abf147bda..324d5b1fb 100644 --- a/src/storm/storage/geometry/NativePolytope.h +++ b/src/storm/storage/geometry/NativePolytope.h @@ -1,8 +1,10 @@ #ifndef STORM_STORAGE_GEOMETRY_NATIVEPOLYTOPE_H_ #define STORM_STORAGE_GEOMETRY_NATIVEPOLYTOPE_H_ +#include #include "storm/storage/geometry/Polytope.h" #include "storm/adapters/EigenAdapter.h" +#include "storm/storage/expressions/Expression.h" namespace storm { namespace storage { diff --git a/src/storm/storage/geometry/Polytope.cpp b/src/storm/storage/geometry/Polytope.cpp index 1839e636f..3db106719 100644 --- a/src/storm/storage/geometry/Polytope.cpp +++ b/src/storm/storage/geometry/Polytope.cpp @@ -66,7 +66,6 @@ namespace storm { return create(points); } assert(points.front().size() == selectedDimensions.size()); - uint64_t dimensions = selectedDimensions.size(); std::vector> halfspaces; // We build the convex hull of the given points. diff --git a/src/storm/utility/FilteredRewardModel.h b/src/storm/utility/FilteredRewardModel.h index 32dc13521..5280cfd98 100644 --- a/src/storm/utility/FilteredRewardModel.h +++ b/src/storm/utility/FilteredRewardModel.h @@ -8,9 +8,8 @@ namespace storm { namespace utility { - /* - * This class wraps around a + * This class wraps around a Reward model where certain reward types are disabled. */ template class FilteredRewardModel { @@ -45,20 +44,25 @@ namespace storm { RewardModelType const* rewardModel; }; - template - FilteredRewardModel createFilteredRewardModel(ModelType const& model, CheckTaskType const& checkTask) { - auto const& baseRewardModel = checkTask.isRewardModelSet() ? model.getRewardModel(checkTask.getRewardModel()) : model.getUniqueRewardModel(); - if (checkTask.getFormula().hasRewardAccumulation()) { - auto const& acc = checkTask.getFormula().getRewardAccumulation(); - STORM_LOG_THROW(model.isDiscreteTimeModel() || !acc.isExitSet() || !baseRewardModel.hasStateRewards(), storm::exceptions::NotSupportedException, "Exit rewards for continuous time models are not supported."); + template + FilteredRewardModel createFilteredRewardModel(RewardModelType const& baseRewardModel, bool isDiscreteTimeModel, FormulaType const& formula) { + if (formula.hasRewardAccumulation()) { + auto const& acc = formula.getRewardAccumulation(); + STORM_LOG_THROW(isDiscreteTimeModel || !acc.isExitSet() || !baseRewardModel.hasStateRewards(), storm::exceptions::NotSupportedException, "Exit rewards for continuous time models are not supported."); // Check which of the available reward types are allowed. - bool hasStateRewards = model.isDiscreteTimeModel() ? acc.isExitSet() : acc.isTimeSet(); + bool hasStateRewards = isDiscreteTimeModel ? acc.isExitSet() : acc.isTimeSet(); bool hasStateActionRewards = acc.isStepsSet(); bool hasTransitionRewards = acc.isStepsSet(); - return FilteredRewardModel(baseRewardModel, hasStateRewards, hasStateActionRewards, hasTransitionRewards); + return FilteredRewardModel(baseRewardModel, hasStateRewards, hasStateActionRewards, hasTransitionRewards); } else { - return FilteredRewardModel(baseRewardModel, true, true, true); + return FilteredRewardModel(baseRewardModel, true, true, true); } } + + template + FilteredRewardModel createFilteredRewardModel(ModelType const& model, CheckTaskType const& checkTask) { + auto const& baseRewardModel = checkTask.isRewardModelSet() ? model.getRewardModel(checkTask.getRewardModel()) : model.getUniqueRewardModel(); + return createFilteredRewardModel(baseRewardModel, model.isDiscreteTimeModel(), checkTask.getFormula()); + } } } \ No newline at end of file