diff --git a/src/adapters/MathsatExpressionAdapter.h b/src/adapters/MathsatExpressionAdapter.h index 854b20542..9fec0cf15 100644 --- a/src/adapters/MathsatExpressionAdapter.h +++ b/src/adapters/MathsatExpressionAdapter.h @@ -22,9 +22,9 @@ namespace std { // Define hashing operator for MathSAT's declarations. template <> - struct std::hash { - std::size_t operator()(msat_decl const& declaration) const { - return std::hash()(declaration.repr); + struct hash { + size_t operator()(msat_decl const& declaration) const { + return hash()(declaration.repr); } }; } diff --git a/src/builder/ExplicitPrismModelBuilder.cpp b/src/builder/ExplicitPrismModelBuilder.cpp index 96b6298d0..a3d80d067 100644 --- a/src/builder/ExplicitPrismModelBuilder.cpp +++ b/src/builder/ExplicitPrismModelBuilder.cpp @@ -244,7 +244,7 @@ namespace storm { // not only appear in the probabilities, we re if (!std::is_same::value && preparedProgram->hasUndefinedConstants()) { #else - if (preparedProgram.hasUndefinedConstants()) { + if (preparedProgram->hasUndefinedConstants()) { #endif std::vector> undefinedConstants = preparedProgram->getUndefinedConstants(); std::stringstream stream; diff --git a/src/models/sparse/Model.cpp b/src/models/sparse/Model.cpp index a1e71c0b7..e30965998 100644 --- a/src/models/sparse/Model.cpp +++ b/src/models/sparse/Model.cpp @@ -320,7 +320,7 @@ namespace storm { return this->rewardModels; } - std::set getProbabilityParameters(Model const& model) { + std::set getProbabilityParameters(Model const& model) { return storm::storage::getVariables(model.getTransitionMatrix()); } diff --git a/src/storage/SparseMatrix.cpp b/src/storage/SparseMatrix.cpp index 1bc2f9af0..253609210 100644 --- a/src/storage/SparseMatrix.cpp +++ b/src/storage/SparseMatrix.cpp @@ -1208,6 +1208,19 @@ namespace storm { return result; } + +#ifdef STORM_HAVE_CARL + std::set getVariables(SparseMatrix const& matrix) + { + std::set result; + for(auto const& entry : matrix) { + entry.getValue().gatherVariables(result); + } + return result; + } + +#endif + // Explicitly instantiate the entry, builder and the matrix. // double template class MatrixEntry::index_type, double>; diff --git a/src/storage/SparseMatrix.h b/src/storage/SparseMatrix.h index 21d675cab..f9d9916c4 100644 --- a/src/storage/SparseMatrix.h +++ b/src/storage/SparseMatrix.h @@ -8,7 +8,7 @@ #include #include "src/utility/OsDetection.h" - +#include "src/adapters/CarlAdapter.h" #include // Forward declaration for adapter classes. @@ -970,14 +970,10 @@ namespace storm { }; - std::set getVariables(SparseMatrix const& matrix) { - std::set result; - for(auto const& entry : matrix) { - entry.probability.gatherVariables(result); - } - return result; - } - +#ifdef STORM_HAVE_CARL + std::set getVariables(SparseMatrix const& matrix); +#endif + } // namespace storage } // namespace storm diff --git a/src/utility/graph.cpp b/src/utility/graph.cpp index 193b0ff28..bac64948f 100644 --- a/src/utility/graph.cpp +++ b/src/utility/graph.cpp @@ -986,9 +986,10 @@ namespace storm { template storm::storage::BitVector performProb0A(storm::storage::SparseMatrix const& transitionMatrix, std::vector const& nondeterministicChoiceIndices, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); - template storm::storage::BitVector performProb0A(storm::models::sparse::NondeterministicModel> const& model, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates) ; - template storm::storage::BitVector performProb0A(storm::models::sparse::NondeterministicModel> const& model, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates) ; - + template storm::storage::BitVector performProb0A(storm::models::sparse::NondeterministicModel> const& model, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); +#ifdef STORM_HAVE_CARL + template storm::storage::BitVector performProb0A(storm::models::sparse::NondeterministicModel> const& model, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); +#endif template storm::storage::BitVector performProb1E(storm::storage::SparseMatrix const& transitionMatrix, std::vector const& nondeterministicChoiceIndices, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); @@ -1004,19 +1005,24 @@ namespace storm { template storm::storage::BitVector performProb0E(storm::models::sparse::NondeterministicModel> const& model, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); +#ifdef STORM_HAVE_CARL template storm::storage::BitVector performProb0E(storm::models::sparse::NondeterministicModel> const& model, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); +#endif template storm::storage::BitVector performProb0E(storm::storage::SparseMatrix const& transitionMatrix, std::vector const& nondeterministicChoiceIndices, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates) ; template storm::storage::BitVector performProb1A(storm::models::sparse::NondeterministicModel> const& model, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); +#ifdef STORM_HAVE_CARL template storm::storage::BitVector performProb1A(storm::models::sparse::NondeterministicModel> const& model, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); +#endif template storm::storage::BitVector performProb1A( storm::storage::SparseMatrix const& transitionMatrix, std::vector const& nondeterministicChoiceIndices, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); template std::pair performProb01Min(storm::storage::SparseMatrix const& transitionMatrix, std::vector const& nondeterministicChoiceIndices, storm::storage::SparseMatrix const& backwardTransitions, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates) ; template std::pair performProb01Min(storm::models::sparse::NondeterministicModel> const& model, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); - template std::pair performProb01Min(storm::models::sparse::NondeterministicModel> const& model, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); - +#ifdef STORM_HAVE_CARL + template std::pair performProb01Min(storm::models::sparse::NondeterministicModel> const& model, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); +#endif template std::vector getTopologicalSort(storm::storage::SparseMatrix const& matrix) ; diff --git a/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp b/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp index 04f706221..4d87796b8 100644 --- a/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp +++ b/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp @@ -10,6 +10,9 @@ #include "src/models/sparse/StandardRewardModel.h" #include "src/modelchecker/prctl/SparseMdpPrctlModelChecker.h" + +#ifdef STORM_HAVE_MSAT + TEST(SmtPermissiveSchedulerTest, DieSelection) { storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die_c1.nm"); storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); @@ -58,3 +61,5 @@ TEST(SmtPermissiveSchedulerTest, DieSelection) { // } + +#endif // STORM_HAVE_MSAT