message(STATUS"storm - version is ${STORM_VERSION_MAJOR}.${STORM_VERSION_MINOR}.${STORM_VERSION_PATCH} (${STORM_VERSION_COMMITS_AHEAD} commits ahead of tag), building from git: ${STORM_VERSION_GIT_HASH} (dirty: ${STORM_VERSION_DIRTY_STR}).")
message(STATUS"Storm - Version is ${STORM_CPP_VERSION_MAJOR}.${STORM_CPP_VERSION_MINOR}.${STORM_CPP_VERSION_PATCH} (${STORM_CPP_VERSION_COMMITS_AHEAD} commits ahead of Tag) build from ${STORM_CPP_VERSION_HASH} (Dirty: ${STORM_CPP_VERSION_DIRTY}).")
message(FATAL_ERROR"Storm (CudaPlugin) - Could not test type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}")
message(FATAL_ERROR"storm (CudaPlugin) - Could not test type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}")
elseif(STORM_CUDA_RUN_RESULT_TYPEALIGNMENTEQUAL0)
message(STATUS"StoRM (CudaPlugin) - Result of Type Alignment Check: OK.")
message(STATUS"storm (CudaPlugin) - Result of Type Alignment Check: OK.")
else()
message(FATAL_ERROR"Storm (CudaPlugin) - Result of Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_TYPEALIGNMENT})")
message(FATAL_ERROR"storm (CudaPlugin) - Result of Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_TYPEALIGNMENT})")
endif()
#TestforFloat64bitAlignment
@ -503,15 +503,15 @@ if(ENABLE_CUDA)
COMPILE_OUTPUT_VARIABLEOUTPUT_TEST_VAR
)
if(NOTSTORM_CUDA_COMPILE_RESULT_FLOATALIGNMENT)
message(FATAL_ERROR"Storm (CudaPlugin) - Could not test float type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeFloatAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}")
message(FATAL_ERROR"storm (CudaPlugin) - Could not test float type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeFloatAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}")
@ -203,9 +205,9 @@ int main(const int argc, const char** argv) {
std::stringoperatorType="";
std::stringtargetFormula="";
if(generalSettings.isPropertySet()){
if(ioSettings.isPropertySet()){
STORM_LOG_THROW(!dftSettings.usePropExpectedTime()&&!dftSettings.usePropProbability()&&!dftSettings.usePropTimebound(),storm::exceptions::InvalidSettingsException,"More than one property given.");
pctlFormula=generalSettings.getProperty();
pctlFormula=ioSettings.getProperty();
}elseif(dftSettings.usePropExpectedTime()){
STORM_LOG_THROW(!dftSettings.usePropProbability()&&!dftSettings.usePropTimebound(),storm::exceptions::InvalidSettingsException,"More than one property given.");
operatorType="T";
@ -249,10 +251,10 @@ int main(const int argc, const char** argv) {
STORM_LOG_THROW(!model.usesAssignmentLevels(),storm::exceptions::InvalidSettingsException,"The symbolic JANI model builder currently does not support assignment levels.");
STORM_LOG_THROW(!model.reusesActionsInComposition(),storm::exceptions::InvalidSettingsException,"The symbolic JANI model builder currently does not support reusing actions in parallel composition");
storm::jani::ModelpreparedModel=model;
// Lift the transient edge destinations. We can do so, as we know that there are no assignment levels (because that's not supported anyway).
STORM_LOG_THROW(false,storm::exceptions::InvalidArgumentException,"The input model contains undefined constants that influence the graph structure of the underlying model, which is not allowed.");
}
#endif
STORM_LOG_THROW(!model.reusesActionsInComposition(),storm::exceptions::InvalidArgumentException,"The jit JANI model builder currently does not support reusing actions in parallel composition");
// Comment this in to print the JANI model for debugging purposes.
std::stringproblem="Unable to compile program using Storm headers. Is Storm's include directory '"+stormIncludeDirectory+"' set correctly? Does the directory contain all the headers (in particular 'storm-config.h'?";
std::stringproblem="Unable to compile program using storm headers. Is storm's include directory '"+stormIncludeDirectory+"' set correctly? Does the directory contain all the headers (in particular 'storm-config.h')?";
std::cout<<"Linked with Intel Threading Building Blocks v"<<TBB_VERSION_MAJOR<<"."<<TBB_VERSION_MINOR<<" (Interface version "<<TBB_INTERFACE_VERSION<<")."<<std::endl;
STORM_PRINT("Linked with Intel Threading Building Blocks v"<<TBB_VERSION_MAJOR<<"."<<TBB_VERSION_MINOR<<" (Interface version "<<TBB_INTERFACE_VERSION<<")."<<std::endl);
#endif
#ifdef STORM_HAVE_GLPK
std::cout<<"Linked with GNU Linear Programming Kit v"<<GLP_MAJOR_VERSION<<"."<<GLP_MINOR_VERSION<<"."<<std::endl;
STORM_PRINT("Linked with GNU Linear Programming Kit v"<<GLP_MAJOR_VERSION<<"."<<GLP_MINOR_VERSION<<"."<<std::endl);
#endif
#ifdef STORM_HAVE_GUROBI
std::cout<<"Linked with Gurobi Optimizer v"<<GRB_VERSION_MAJOR<<"."<<GRB_VERSION_MINOR<<"."<<GRB_VERSION_TECHNICAL<<"."<<std::endl;
STORM_PRINT("Linked with Gurobi Optimizer v"<<GRB_VERSION_MAJOR<<"."<<GRB_VERSION_MINOR<<"."<<GRB_VERSION_TECHNICAL<<"."<<std::endl);
std::cout<<" CUDA Driver Version / Runtime Version "<<driverVersion/1000<<"."<<(driverVersion%100)/10<<" / "<<runtimeVersion/1000<<"."<<(runtimeVersion%100)/10<<std::endl;
std::cout<<" CUDA Capability Major/Minor version number: "<<deviceProp.major<<"."<<deviceProp.minor<<std::endl;
STORM_PRINT(" CUDA Driver Version / Runtime Version "<<driverVersion/1000<<"."<<(driverVersion%100)/10<<" / "<<runtimeVersion/1000<<"."<<(runtimeVersion%100)/10<<std::endl);
STORM_PRINT(" CUDA Capability Major/Minor version number: "<<deviceProp.major<<"."<<deviceProp.minor<<std::endl);
}
std::cout<<std::endl;
STORM_PRINT(std::endl);
}
else{
std::cout<<"Compiled with CUDA support, but an error occured trying to find CUDA devices."<<std::endl;
STORM_PRINT("Compiled with CUDA support, but an error occured trying to find CUDA devices."<<std::endl);
}
#endif
// "Compute" the command line argument string with which STORM was invoked.
std::stringstreamcommandStream;
for(inti=1;i<argc;++i){
commandStream<<argv[i]<<"";
}
std::cout<<"Command line arguments: "<<commandStream.str()<<std::endl;
std::cout<<"Current working directory: "<<getCurrentWorkingDirectory()<<std::endl<<std::endl;
STORM_LOG_THROW(coreSettings.getEngine()==storm::settings::modules::CoreSettings::Engine::Sparse,storm::exceptions::InvalidSettingsException,"Only the sparse engine supports explicit model input.");
// If the model is given in an explicit format, we parse the properties without allowing expressions
STORM_LOG_THROW(!model.hasNonGlobalTransientVariable(),storm::exceptions::InvalidSettingsException,"The explicit next-state generator currently does not support automata-local transient variables.");
STORM_LOG_THROW(!model.usesAssignmentLevels(),storm::exceptions::InvalidSettingsException,"The explicit next-state generator currently does not support assignment levels.");
STORM_LOG_THROW(!model.reusesActionsInComposition(),storm::exceptions::InvalidArgumentException,"The jit JANI model builder currently does not support reusing actions in parallel composition");
// Lift the transient edge destinations. We can do so, as we know that there are no assignment levels (because that's not supported anyway).
STORM_LOG_THROW(element!=storm::utility::infinity<ValueType>(),storm::exceptions::InvalidOperationException,"Cannot compute the sum of values containing infinity.");
sum+=element;
}
}else{
for(auto&element:boost::get<map_type>(values)){
STORM_LOG_THROW(element.second!=storm::utility::infinity<ValueType>(),storm::exceptions::InvalidOperationException,"Cannot compute the sum of values containing infinity.");
STORM_LOG_THROW(element!=storm::utility::infinity<ValueType>(),storm::exceptions::InvalidOperationException,"Cannot compute the average of values containing infinity.");
sum+=element;
}
returnsum/boost::get<vector_type>(values).size();
}else{
for(auto&element:boost::get<map_type>(values)){
STORM_LOG_THROW(element.second!=storm::utility::infinity<ValueType>(),storm::exceptions::InvalidOperationException,"Cannot compute the average of values containing infinity.");
STORM_LOG_THROW(timeInstant>=0,storm::exceptions::InvalidJaniException,"Only non-negative time-instants are allowed");
if(!accTime&&!accSteps){
@ -292,7 +292,7 @@ namespace storm {
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"Instant/Cumul. Reward for reward constraints not supported currently.");
}
//STORM_LOG_THROW(!accTime && !accSteps, storm::exceptions::NotSupportedException, "Storm only allows accumulation if a step- or time-bound is given.");
//STORM_LOG_THROW(!accTime && !accSteps, storm::exceptions::NotSupportedException, "storm only allows accumulation if a step- or time-bound is given.");
STORM_LOG_THROW(pi.hasUpperBound(),storm::exceptions::NotSupportedException,"Storm only supports step-bounded until with an upper bound");
STORM_LOG_THROW(pi.hasUpperBound(),storm::exceptions::NotSupportedException,"storm only supports step-bounded until with an upper bound");
if(pi.hasLowerBound()){
STORM_LOG_THROW(pi.lowerBound.evaluateAsInt()==0,storm::exceptions::NotSupportedException,"Storm only supports step-bounded until without a (non-trivial) lower-bound");
STORM_LOG_THROW(pi.lowerBound.evaluateAsInt()==0,storm::exceptions::NotSupportedException,"storm only supports step-bounded until without a (non-trivial) lower-bound");
arguments.push_back(parseExpression(expressionStructure.at("if"),"if-formula in "+scopeDescription));
arguments.push_back(parseExpression(expressionStructure.at("then"),"then-formula in "+scopeDescription));
arguments.push_back(parseExpression(expressionStructure.at("else"),"else-formula in "+scopeDescription));
arguments.push_back(parseExpression(expressionStructure.at("if"),"if-formula in "+scopeDescription,localVars,returnNoneInitializedOnUnknownOperator));
arguments.push_back(parseExpression(expressionStructure.at("then"),"then-formula in "+scopeDescription,localVars,returnNoneInitializedOnUnknownOperator));
arguments.push_back(parseExpression(expressionStructure.at("else"),"else-formula in "+scopeDescription,localVars,returnNoneInitializedOnUnknownOperator));
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"No supported operator declaration found for complex expressions as "<<expressionStructure.dump()<<" in "<<scopeDescription<<".");
}
assert(false);
// Silly warning suppression.
returnstorm::expressions::Expression();
}
@ -1072,7 +1074,12 @@ namespace storm {
STORM_LOG_THROW(assignmentEntry.count("value")==1,storm::exceptions::InvalidJaniException,"Assignment in edge from '"<<sourceLoc<<"' to '"<<targetLoc<<"' in automaton '"<<name<<"' must have one value field");
storm::expressions::ExpressionassignmentExpr=parseExpression(assignmentEntry.at("value"),"assignment in edge from '"+sourceLoc+"' to '"+targetLoc+"' in automaton '"+name+"'",localVars);
// TODO check types
assignments.emplace_back(lhs,assignmentExpr);
// index
uint64_tassignmentIndex=0;// default.
if(assignmentEntry.count("index")>0){
assignmentIndex=getUnsignedInt(assignmentEntry.at("index"),"assignment index in edge from '"+sourceLoc+"' to '"+targetLoc+"' in automaton '"+name+"'");
.addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to use.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,configOptionName,false,"If given, this file will be read and parsed for additional configuration settings.").setShortName(configOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file from which to read the configuration.").addValidatorString(ArgumentValidatorFactory::createExistingFileValidator()).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,propertyOptionName,false,"Specifies the properties to be checked on the model.").setShortName(propertyOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("property or filename","The formula or the file containing the formulas.").build())
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filter","The names of the properties to check.").setDefaultValueString("all").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,parametricRegionOptionName,false,"Sets whether to use the parametric Region engine.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,bisimulationOptionName,false,"Sets whether to perform bisimulation minimization.").setShortName(bisimulationOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,parametricOptionName,false,"Sets whether to enable parametric model checking.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,jitOptionName,false,"If set, the model is built using the JIT model builder.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,fullModelBuildOptionName,false,"If set, include all rewards and labels.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,noBuildOptionName,false,"If set, do not build the model.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,propertyOptionName,false,"Specifies the properties to be checked on the model.").setShortName(propertyOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("property or filename","The formula or the file containing the formulas.").build())
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filter","The names of the properties to check.").setDefaultValueString("all").build())
this->addOption(storm::settings::OptionBuilder(moduleName,explorationOrderOptionName,false,"Sets which exploration order to use.").setShortName(explorationOrderOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the exploration order to choose.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(explorationOrders)).setDefaultValueString("bfs").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,doctorOptionName,false,"Show debugging information on why the jit-based model builder is not working on your system.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,compilerOptionName,false,"The compiler in the jit-based model builder.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the executable. Defaults to c++.").setDefaultValueString("c++").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,stormIncludeDirectoryOptionName,false,"The include directory of Storm.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("dir","The directory that contains the headers of Storm.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,stormIncludeDirectoryOptionName,false,"The include directory of storm.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("dir","The directory that contains the headers of storm.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,boostIncludeDirectoryOptionName,false,"The include directory of boost.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("dir","The directory containing the boost headers version >= 1.61.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,carlIncludeDirectoryOptionName,false,"The include directory of carl.")
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
}
GlpkLpSolver():LpSolver(MINIMIZE){
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
}
virtual~GlpkLpSolver(){
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
}
virtualvoidupdate()constoverride{
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
}
virtualvoidoptimize()constoverride{
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
}
virtualboolisInfeasible()constoverride{
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
}
virtualboolisUnbounded()constoverride{
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
}
virtualboolisOptimal()constoverride{
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
}
virtualdoublegetObjectiveValue()constoverride{
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of StoRM was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for glpk. Yet, a method was called that requires this support. Please choose a version of support with glpk support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
}
GurobiLpSolver::GurobiLpSolver(){
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";}
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";}
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
}
voidGurobiLpSolver::update()const{
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
}
voidGurobiLpSolver::optimize()const{
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
}
boolGurobiLpSolver::isInfeasible()const{
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
}
boolGurobiLpSolver::isUnbounded()const{
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
}
boolGurobiLpSolver::isOptimal()const{
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
}
doubleGurobiLpSolver::getObjectiveValue()const{
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
}
voidGurobiLpSolver::toggleOutput(bool)const{
throwstorm::exceptions::NotImplementedException()<<"This version of Storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
throwstorm::exceptions::NotImplementedException()<<"This version of storm was compiled without support for Gurobi. Yet, a method was called that requires this support. Please choose a version of support with Gurobi support.";
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"StoRM is compiled without MathSAT support.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"storm is compiled without MathSAT support.");
#endif
}
@ -162,7 +162,7 @@ namespace storm {
}
returnthis->lastResult;
#else
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"StoRM is compiled without MathSAT support.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"storm is compiled without MathSAT support.");
#endif
}
@ -190,7 +190,7 @@ namespace storm {
}
returnthis->lastResult;
#else
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"StoRM is compiled without MathSAT support.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"storm is compiled without MathSAT support.");
#endif
}
@ -219,7 +219,7 @@ namespace storm {
}
returnthis->lastResult;
#else
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"StoRM is compiled without MathSAT support.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"storm is compiled without MathSAT support.");
#endif
}
#endif
@ -230,7 +230,7 @@ namespace storm {
STORM_LOG_THROW(this->lastResult==SmtSolver::CheckResult::Sat,storm::exceptions::InvalidStateException,"Unable to create model for formula that was not determined to be satisfiable.");
returnthis->convertMathsatModelToValuation();
#else
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"StoRM is compiled without MathSAT support.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"storm is compiled without MathSAT support.");
#endif
}
@ -239,7 +239,7 @@ namespace storm {
STORM_LOG_THROW(this->lastResult==SmtSolver::CheckResult::Sat,storm::exceptions::InvalidStateException,"Unable to create model for formula that was not determined to be satisfiable.");
STORM_LOG_WARN("Iterative solver did not converged after "<<globalIterations<<" iterations.");
}
#else
STORM_LOG_ERROR("The useGpu Flag of a SCC was set, but this version of StoRM does not support CUDA acceleration. Internal Error!");
throwstorm::exceptions::InvalidStateException()<<"The useGpu Flag of a SCC was set, but this version of StoRM does not support CUDA acceleration. Internal Error!";
STORM_LOG_ERROR("The useGpu Flag of a SCC was set, but this version of storm does not support CUDA acceleration. Internal Error!");
throwstorm::exceptions::InvalidStateException()<<"The useGpu Flag of a SCC was set, but this version of storm does not support CUDA acceleration. Internal Error!";
STORM_LOG_ERROR("The useGpu Flag of a SCC was set, but this version of StoRM does not support CUDA acceleration. Internal Error!");
throwstorm::exceptions::InvalidStateException()<<"The useGpu Flag of a SCC was set, but this version of StoRM does not support CUDA acceleration. Internal Error!";
STORM_LOG_ERROR("The useGpu Flag of a SCC was set, but this version of storm does not support CUDA acceleration. Internal Error!");
throwstorm::exceptions::InvalidStateException()<<"The useGpu Flag of a SCC was set, but this version of storm does not support CUDA acceleration. Internal Error!";
#endif
}else{
//std::cout << "WARNING: Using CPU based TopoSolver! (double)" << std::endl;
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"StoRM is compiled without Z3 support.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"storm is compiled without Z3 support.");
#endif
}
@ -125,7 +125,7 @@ namespace storm {
}
returnthis->lastResult;
#else
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"StoRM is compiled without Z3 support.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"storm is compiled without Z3 support.");
#endif
}
@ -152,7 +152,7 @@ namespace storm {
}
returnthis->lastResult;
#else
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"StoRM is compiled without Z3 support.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"storm is compiled without Z3 support.");
#endif
}
@ -180,7 +180,7 @@ namespace storm {
}
returnthis->lastResult;
#else
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"StoRM is compiled without Z3 support.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"storm is compiled without Z3 support.");
#endif
}
#endif
@ -190,7 +190,7 @@ namespace storm {
STORM_LOG_THROW(this->lastResult==SmtSolver::CheckResult::Sat,storm::exceptions::InvalidStateException,"Unable to create model for formula that was not determined to be satisfiable.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"StoRM is compiled without Z3 support.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"storm is compiled without Z3 support.");
#endif
}
@ -199,7 +199,7 @@ namespace storm {
STORM_LOG_THROW(this->lastResult==SmtSolver::CheckResult::Sat,storm::exceptions::InvalidStateException,"Unable to create model for formula that was not determined to be satisfiable.");
STORM_LOG_THROW(assignment.getExpressionVariable()!=(*it)->getExpressionVariable(),storm::exceptions::InvalidArgumentException,"Cannot add assignment as an assignment to this variable already exists.");
STORM_LOG_THROW(assignment.getExpressionVariable()!=(*it)->getExpressionVariable(),storm::exceptions::InvalidArgumentException,"Cannot add assignment ('"<<assignment.getAssignedExpression()<<"') as an assignment ('"<<(*it)->getAssignedExpression()<<"') to variable '"<<(*it)->getVariable().getName()<<"' already exists.");
}
// Finally, insert the new element in the correct vectors.
STORM_LOG_THROW(vector.size()==this->subcompositions.size(),storm::exceptions::WrongFormatException,"Synchronization vectors must match parallel composition size.");
STORM_LOG_THROW(actions.find(action)==actions.end(),storm::exceptions::WrongFormatException,"Cannot use the same action ('"<<action<<"') multiple times as input for index "<<inputIndex<<" in synchronization vectors.");
returntrue;
actions.insert(action);
}
}
// And check recursively, in case we have nested parallel composition
STORM_LOG_THROW(vector.size()==this->subcompositions.size(),storm::exceptions::WrongFormatException,"Synchronization vectors must match parallel composition size.");
xxxxxxxxxx