34 std::vector<Engine> res;
36 res.push_back(
static_cast<Engine>(i));
50 return "dd-to-sparse";
76 if (engineStr ==
"portfolio") {
99 STORM_LOG_THROW(
false, storm::exceptions::InvalidArgumentException,
"The given engine has no builder type to it.");
104template<
typename ValueType>
116 case ModelType::DTMC:
120 case ModelType::CTMC:
125 case ModelType::POMDP:
133 case ModelType::DTMC:
137 case ModelType::CTMC:
142 case ModelType::POMDP:
149 case ModelType::DTMC:
153 case ModelType::CTMC:
155 case ModelType::POMDP:
161 if constexpr (std::is_same_v<ValueType, storm::RationalNumber>) {
165 case ModelType::DTMC:
169 case ModelType::CTMC:
171 case ModelType::POMDP:
177 if constexpr (std::is_same_v<ValueType, storm::RationalNumber>) {
181 case ModelType::DTMC:
186 case ModelType::CTMC:
188 case ModelType::POMDP:
194 STORM_LOG_ERROR(
"The selected engine " << engine <<
" is not considered.");
196 STORM_LOG_ERROR(
"The selected combination of engine (" << engine <<
") and model type (" << modelType
197 <<
") does not seem to be supported for this value type.");
213 case ModelType::DTMC:
215 case ModelType::CTMC:
219 case ModelType::POMDP:
226 case ModelType::DTMC:
229 case ModelType::CTMC:
234 case ModelType::POMDP:
241 case ModelType::DTMC:
245 case ModelType::CTMC:
247 case ModelType::POMDP:
256 STORM_LOG_ERROR(
"The selected engine" << engine <<
" is not considered.");
258 STORM_LOG_ERROR(
"The selected combination of engine (" << engine <<
") and model type (" << modelType
259 <<
") does not seem to be supported for this value type.");
263template<
typename ValueType>
266 auto canHandleFormula = [&engine, &modelDescription](
auto const& formula,
bool onlyInitialStatesRelevant) {
269 STORM_LOG_INFO_COND(result,
"Engine " << engine <<
" can not handle formula '" << task.getFormula() <<
"' on models of type "
273 auto canHandleProperty = [&canHandleFormula](
auto const& property) {
274 if (property.getFilter().isDefault()) {
275 return canHandleFormula(*property.getRawFormula(),
true);
277 return canHandleFormula(*property.getRawFormula(),
false) && canHandleFormula(*property.getFilter().getStatesFormula(),
false);
280 return std::all_of(properties.begin(), properties.end(), canHandleProperty) &&
281 storm::builder::canHandle<ValueType>(
getBuilderType(engine), modelDescription, properties);
This class represents a discrete-time Markov decision process.
ModelType getModelType() const
#define STORM_LOG_WARN(message)
#define STORM_LOG_ERROR(message)
#define STORM_LOG_ASSERT(cond, message)
#define STORM_LOG_THROW(cond, exception, message)
#define STORM_LOG_INFO_COND(cond, message)
bool canHandle< storm::RationalFunction >(storm::utility::Engine const &engine, storm::storage::SymbolicModelDescription::ModelType const &modelType, storm::modelchecker::CheckTask< storm::logic::Formula, storm::RationalFunction > const &checkTask)
Engine
An enumeration of all engines.
template bool canHandle< storm::RationalNumber >(storm::utility::Engine const &, std::vector< storm::jani::Property > const &, storm::storage::SymbolicModelDescription const &)
template bool canHandle< double >(storm::utility::Engine const &, std::vector< storm::jani::Property > const &, storm::storage::SymbolicModelDescription const &)
std::ostream & operator<<(std::ostream &os, Engine const &engine)
Writes the string representation of the given engine to the given stream.
storm::builder::BuilderType getBuilderType(Engine const &engine)
Returns the builder type used for the given engine.
std::string toString(Engine const &engine)
Returns a string representation of the given engine.
std::vector< Engine > getEngines()
Returns a list of all available engines (excluding Unknown)
Engine engineFromString(std::string const &engineStr)
Parses the string representation of an engine and returns the corresponding engine.
bool canHandle(storm::utility::Engine const &engine, storm::storage::SymbolicModelDescription::ModelType const &modelType, storm::modelchecker::CheckTask< storm::logic::Formula, ValueType > const &checkTask)