diff --git a/src/models/ModelBase.cpp b/src/models/ModelBase.cpp index b79d7a81f..00a566b9b 100644 --- a/src/models/ModelBase.cpp +++ b/src/models/ModelBase.cpp @@ -17,5 +17,9 @@ namespace storm { bool ModelBase::isOfType(storm::models::ModelType const& modelType) const { return this->getType() == modelType; } + + bool ModelBase::isParametric() const { + return false; + } } } \ No newline at end of file diff --git a/src/models/ModelBase.h b/src/models/ModelBase.h index d118e1516..9fd80171a 100644 --- a/src/models/ModelBase.h +++ b/src/models/ModelBase.h @@ -97,6 +97,11 @@ namespace storm { */ bool isOfType(storm::models::ModelType const& modelType) const; + /*! + * Checks whether the model is parametric + */ + virtual bool isParametric() const; + private: // The type of the model. ModelType modelType; diff --git a/src/models/sparse/Model.cpp b/src/models/sparse/Model.cpp index e30965998..f0cf38e1c 100644 --- a/src/models/sparse/Model.cpp +++ b/src/models/sparse/Model.cpp @@ -310,6 +310,11 @@ namespace storm { return true; } + template + bool Model::isParametric() const { + return std::is_same::value; + } + template std::unordered_map& Model::getRewardModels() { return this->rewardModels; @@ -319,6 +324,8 @@ namespace storm { std::unordered_map const& Model::getRewardModels() const { return this->rewardModels; } + + std::set getProbabilityParameters(Model const& model) { return storm::storage::getVariables(model.getTransitionMatrix()); diff --git a/src/models/sparse/Model.h b/src/models/sparse/Model.h index 7d36ebca3..dc0378348 100644 --- a/src/models/sparse/Model.h +++ b/src/models/sparse/Model.h @@ -278,6 +278,7 @@ namespace storm { virtual bool isSparseModel() const override; + virtual bool isParametric() const override; protected: RewardModelType & rewardModel(std::string const& rewardModelName);