Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
region.cpp
Go to the documentation of this file.
2
3#include <memory>
4
11
12namespace storm {
13namespace api {
14
15template<typename ParametricType, typename ImpreciseType, typename PreciseType>
16std::unique_ptr<storm::modelchecker::RegionModelChecker<ParametricType>> createRegionModelChecker(storm::modelchecker::RegionCheckEngine engine,
17 storm::models::ModelType modelType) {
18 STORM_LOG_THROW(modelType == storm::models::ModelType::Dtmc || modelType == storm::models::ModelType::Mdp, storm::exceptions::NotSupportedException,
19 "Unable to create a region checker for the provided model type.");
20
21 switch (engine) {
23 if (modelType == storm::models::ModelType::Dtmc) {
24 return std::make_unique<
26 } else {
27 return std::make_unique<
29 }
31 if (modelType == storm::models::ModelType::Dtmc) {
32 return std::make_unique<
34 } else {
35 return std::make_unique<storm::modelchecker::SparseMdpParameterLiftingModelChecker<storm::models::sparse::Mdp<ParametricType>, PreciseType>>();
36 }
38 return std::make_unique<
41 if (modelType == storm::models::ModelType::Dtmc) {
42 return std::make_unique<storm::modelchecker::ValidatingSparseParameterLiftingModelChecker<storm::models::sparse::Dtmc<ParametricType>,
43 ImpreciseType, PreciseType>>();
44 } else {
45 return std::make_unique<storm::modelchecker::ValidatingSparseParameterLiftingModelChecker<storm::models::sparse::Mdp<ParametricType>,
46 ImpreciseType, PreciseType>>();
47 }
48 default:
49 STORM_LOG_THROW(false, storm::exceptions::UnexpectedException, "Unexpected region model checker type.");
50 }
51 return nullptr;
52}
53
54template std::unique_ptr<storm::modelchecker::RegionModelChecker<storm::RationalFunction>>
56 storm::models::ModelType modelType);
57
58} // namespace api
59} // namespace storm
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:28
std::unique_ptr< storm::modelchecker::RegionModelChecker< ParametricType > > createRegionModelChecker(storm::modelchecker::RegionCheckEngine engine, storm::models::ModelType modelType)
Definition region.cpp:16
template std::unique_ptr< storm::modelchecker::RegionModelChecker< storm::RationalFunction > > createRegionModelChecker< storm::RationalFunction, double, storm::RationalNumber >(storm::modelchecker::RegionCheckEngine engine, storm::models::ModelType modelType)
RegionCheckEngine
The considered engine for region checking.
@ ParameterLifting
Parameter lifting approach.
@ ValidatingParameterLifting
Parameter lifting approach with a) inexact (and fast) computation first and b) exact validation of ob...
@ RobustParameterLifting
Parameter lifting approach based on robust markov models instead of generating nondeterminism.
@ ExactParameterLifting
Parameter lifting approach with exact arithmethics.