STORM_LOG_THROW(!properties.empty(),storm::exceptions::InvalidArgumentException,"Portfolio engine requires a property.");
STORM_LOG_WARN_COND(properties.size()==1,"Portfolio engine does not support decisions based on multiple properties. Only the first property will be considered.");
STORM_LOG_THROW(!properties.empty(),storm::exceptions::InvalidArgumentException,"Automatic engine requires a property.");
STORM_LOG_WARN_COND(properties.size()==1,"Automatic engine does not support decisions based on multiple properties. Only the first property will be considered.");
STORM_LOG_WARN("The settings picked by the portfolio engine (engine="<<mpi.engine<<", bisim="<<mpi.applyBisimulation<<", exact="<<useExact<<") are incompatible with this model. Falling back to default settings.");
STORM_LOG_WARN("The settings picked by the automatic engine (engine="<<mpi.engine<<", bisim="<<mpi.applyBisimulation<<", exact="<<useExact<<") are incompatible with this model. Falling back to default settings.");
engines.push_back("portfolio");// for backwards compatibility
this->addOption(storm::settings::OptionBuilder(moduleName,engineOptionName,false,"Sets which engine is used for model building and model checking.").setShortName(engineOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the engine to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(engines)).setDefaultValueString("sparse").build()).build());
STORM_LOG_THROW(engine!=storm::utility::Engine::Unknown,storm::exceptions::InvalidOperationException,"Tried to get the engine but apparently no prediction was done before.");