this->addOption(storm::settings::OptionBuilder(moduleName,helpOptionName,false,"Shows all available options, arguments and descriptions.").setShortName(helpOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("hint","A regular expression to show help for all matching entities or 'all' for the complete help.").setDefaultValueString("all").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,helpOptionName,false,"Shows available options, arguments and descriptions.").setShortName(helpOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filter","'frequent' for frequently used options, 'all' for the complete help, or a regular expression to show help for all matching entities.").setDefaultValueString("frequent").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,versionOptionName,false,"Prints the version information.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,verboseOptionName,false,"Enables more verbose output.").setShortName(verboseOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,debugOptionName,false,"Enables verbose and debug output.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,minimalCommandSetOptionName,true,"Computes a counterexample for the given model in terms of a minimal command/edge set. Note that this requires the model to be given in a symbolic format.")
this->addOption(storm::settings::OptionBuilder(moduleName,minimalCommandSetOptionName,true,"Computes a counterexample for the given model in terms of a minimal command/edge set. Note that this requires the model to be given in a symbolic format.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("method","Sets which technique is used to derive the counterexample.").setDefaultValueString("maxsat").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(techniques)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,encodeReachabilityOptionName,true,"Sets whether to encode reachability for MAXSAT-based counterexample generation.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,schedulerCutsOptionName,true,"Sets whether to add the scheduler cuts for MILP-based counterexample generation.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,noDynamicConstraintsOptionName,true,"Disables the generation of dynamic constraints in the MAXSAT-based counterexample generation.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,encodeReachabilityOptionName,true,"Sets whether to encode reachability for MAXSAT-based counterexample generation.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,schedulerCutsOptionName,true,"Sets whether to add the scheduler cuts for MILP-based counterexample generation.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,noDynamicConstraintsOptionName,true,"Disables the generation of dynamic constraints in the MAXSAT-based counterexample generation.").setIsAdvanced().build());
STORM_PRINT(std::endl<<"Type 'storm --help modulename' to display all options of a specific module or 'storm --help all' for a complete list of options."<<std::endl);
}
}else{
// Create a regular expression from the input hint.
std::stringoptionList=getHelpForSelection(matchingModuleNames,matchingOptionNames,"Matching modules for filter '"+filter+"':","Matching options for filter '"+filter+"':");
if(optionList.empty()){
STORM_PRINT("Filter '"<<filter<<"' did not match any modules or options."<<std::endl);
}else{
STORM_PRINT(optionList);
}
// Print the matching options.
if(matchingOptions.size()>0){
STORM_PRINT("Matching options for hint '"<<hint<<"':"<<std::endl);
STORM_LOG_THROW(moduleIterator!=modules.end(),storm::exceptions::IllegalFunctionCallException,"Unable to retrieve option length of unknown module '"<<moduleName<<"'.");
STORM_LOG_THROW(conversionOk,storm::exceptions::OptionParserException,"Value '"<<argumentCache[i]<<"' is invalid for argument <"<<argument.getName()<<"> of option:\n"<<*option);
}
// In case there are optional arguments that were not set, we set them to their default value.
STORM_LOG_THROW(argument.getHasDefaultValue()||argument.getIsOptional(),storm::exceptions::OptionParserException,"Non-optional argument <"<<argument.getName()<<"> of option:\n"<<*option);
this->addOption(storm::settings::OptionBuilder(moduleName,methodOptionName,true,"Sets which abstraction-refinement method to use.")
this->addOption(storm::settings::OptionBuilder(moduleName,methodOptionName,true,"Sets which abstraction-refinement method to use.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods))
.setDefaultValueString("bisim").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalAbstractionOptionName,false,"The maximal number of abstraction to perform before solving is aborted.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The maximal abstraction count.").setDefaultValueUnsignedInteger(20000).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalAbstractionOptionName,false,"The maximal number of abstraction to perform before solving is aborted.").setIsAdvanced()
this->addOption(storm::settings::OptionBuilder(moduleName,useDecompositionOptionName,true,"Sets whether to apply decomposition during the abstraction.")
this->addOption(storm::settings::OptionBuilder(moduleName,useDecompositionOptionName,true,"Sets whether to apply decomposition during the abstraction.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
this->addOption(storm::settings::OptionBuilder(moduleName,splitModeOptionName,true,"Sets which predicates are split into atoms for the refinement.")
this->addOption(storm::settings::OptionBuilder(moduleName,splitModeOptionName,true,"Sets which predicates are split into atoms for the refinement.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("mode","The mode to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(splitModes))
this->addOption(storm::settings::OptionBuilder(moduleName,solveModeOptionName,true,"Sets how the abstractions are solved.")
this->addOption(storm::settings::OptionBuilder(moduleName,solveModeOptionName,true,"Sets how the abstractions are solved.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("mode","The mode to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(solveModes))
.setDefaultValueString("sparse").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,addAllGuardsOptionName,true,"Sets whether all guards are added as initial predicates.")
this->addOption(storm::settings::OptionBuilder(moduleName,addAllGuardsOptionName,true,"Sets whether all guards are added as initial predicates.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
.setDefaultValueString("on").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,addInitialExpressionsOptionName,true,"Sets whether all initial expressions are added as initial predicates.")
this->addOption(storm::settings::OptionBuilder(moduleName,addInitialExpressionsOptionName,true,"Sets whether all initial expressions are added as initial predicates.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
.setDefaultValueString("on").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,useInterpolationOptionName,true,"Sets whether interpolation is to be used to eliminate spurious pivot blocks.")
this->addOption(storm::settings::OptionBuilder(moduleName,useInterpolationOptionName,true,"Sets whether interpolation is to be used to eliminate spurious pivot blocks.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
.setDefaultValueString("on").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,true,"The precision used for detecting convergence.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-03).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,true,"The precision used for detecting convergence.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-03).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,relativeOptionName,true,"Sets whether to use a relative termination criterion.")
this->addOption(storm::settings::OptionBuilder(moduleName,relativeOptionName,true,"Sets whether to use a relative termination criterion.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
this->addOption(storm::settings::OptionBuilder(moduleName,pivotHeuristicOptionName,true,"Sets the pivot selection heuristic.")
this->addOption(storm::settings::OptionBuilder(moduleName,pivotHeuristicOptionName,true,"Sets the pivot selection heuristic.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of an available heuristic.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(pivotHeuristic))
this->addOption(storm::settings::OptionBuilder(moduleName,reuseResultsOptionName,true,"Sets whether to reuse all results.")
this->addOption(storm::settings::OptionBuilder(moduleName,reuseResultsOptionName,true,"Sets whether to reuse all results.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("mode","The mode to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(reuseModes))
.setDefaultValueString("all").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,restrictToRelevantStatesOptionName,true,"Sets whether to restrict to relevant states during the abstraction.")
this->addOption(storm::settings::OptionBuilder(moduleName,restrictToRelevantStatesOptionName,true,"Sets whether to restrict to relevant states during the abstraction.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
.setDefaultValueString("on").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,rankRefinementPredicatesOptionName,true,"Sets whether to rank the refinement predicates if there are multiple.")
this->addOption(storm::settings::OptionBuilder(moduleName,rankRefinementPredicatesOptionName,true,"Sets whether to rank the refinement predicates if there are multiple.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
.setDefaultValueString("off").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,useEagerRefinementOptionName,true,"Sets whether to refine eagerly.")
this->addOption(storm::settings::OptionBuilder(moduleName,useEagerRefinementOptionName,true,"Sets whether to refine eagerly.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
.setDefaultValueString("off").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,constraintsOptionName,true,"Specifies additional constraints used by the abstraction.")
this->addOption(storm::settings::OptionBuilder(moduleName,constraintsOptionName,true,"Specifies additional constraints used by the abstraction.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("constraints","The constraints to use.").setDefaultValueString("").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,injectRefinementPredicatesOptionName,true,"Specifies predicates used by the refinement instead of the derived predicates.")
this->addOption(storm::settings::OptionBuilder(moduleName,injectRefinementPredicatesOptionName,true,"Specifies predicates used by the refinement instead of the derived predicates.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("predicates","The (semicolon-separated) refinement predicates to use.").setDefaultValueString("").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,fixPlayer1StrategyOptionName,true,"Sets whether to fix player 1 strategies.")
this->addOption(storm::settings::OptionBuilder(moduleName,fixPlayer1StrategyOptionName,true,"Sets whether to fix player 1 strategies.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
.setDefaultValueString("on").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,fixPlayer2StrategyOptionName,true,"Sets whether to fix player 2 strategies.")
this->addOption(storm::settings::OptionBuilder(moduleName,fixPlayer2StrategyOptionName,true,"Sets whether to fix player 2 strategies.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
.setDefaultValueString("on").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,debugOptionName,true,"Sets whether to enable debug mode.")
this->addOption(storm::settings::OptionBuilder(moduleName,debugOptionName,true,"Sets whether to enable debug mode.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
this->addOption(storm::settings::OptionBuilder(moduleName,validBlockModeOptionName,true,"Sets the mode to guarantee valid blocks only.")
this->addOption(storm::settings::OptionBuilder(moduleName,validBlockModeOptionName,true,"Sets the mode to guarantee valid blocks only.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("mode","The mode to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(validModes))
this->addOption(storm::settings::OptionBuilder(moduleName,typeOptionName,true,"Sets the kind of bisimulation quotienting used.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the type to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(types)).setDefaultValueString("strong").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,typeOptionName,true,"Sets the kind of bisimulation quotienting used.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the type to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(types)).setDefaultValueString("strong").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,quotientFormatOptionName,true,"Sets the format in which the quotient is extracted (only applies to DD-based bisimulation).").addArgument(storm::settings::ArgumentBuilder::createStringArgument("format","The format of the quotient.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(quotTypes)).setDefaultValueString("dd").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,quotientFormatOptionName,true,"Sets the format in which the quotient is extracted (only applies to DD-based bisimulation).").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("format","The format of the quotient.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(quotTypes)).setDefaultValueString("dd").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,representativeOptionName,false,"Sets whether to use representatives in the quotient rather than block numbers.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,originalVariablesOptionName,false,"Sets whether to use the original variables in the quotient rather than the block variables.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,exactArithmeticDdOptionName,false,"Sets whether to use exact arithmetic in dd-based bisimulation.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,representativeOptionName,false,"Sets whether to use representatives in the quotient rather than block numbers.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,originalVariablesOptionName,false,"Sets whether to use the original variables in the quotient rather than the block variables.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,exactArithmeticDdOptionName,false,"Sets whether to use exact arithmetic in dd-based bisimulation.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,signatureModeOptionName,false,"Sets the signature computation mode.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("mode","The mode to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(signatureModes)).setDefaultValueString("eager").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,signatureModeOptionName,false,"Sets the signature computation mode.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("mode","The mode to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(signatureModes)).setDefaultValueString("eager").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,reuseOptionName,true,"Sets whether to reuse all results.")
this->addOption(storm::settings::OptionBuilder(moduleName,reuseOptionName,true,"Sets whether to reuse all results.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("mode","The mode to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(reuseModes))
this->addOption(storm::settings::OptionBuilder(moduleName,initialPartitionOptionName,true,"Sets which initial partition mode to use.")
this->addOption(storm::settings::OptionBuilder(moduleName,initialPartitionOptionName,true,"Sets which initial partition mode to use.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("mode","The mode to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(initialPartitionModes))
this->addOption(storm::settings::OptionBuilder(moduleName,refinementModeOptionName,true,"Sets which refinement mode to use.")
this->addOption(storm::settings::OptionBuilder(moduleName,refinementModeOptionName,true,"Sets which refinement mode to use.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("mode","The mode to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(refinementModes))
this->addOption(storm::settings::OptionBuilder(moduleName,prismCompatibilityOptionName,false,"Enables PRISM compatibility. This may be necessary to process some PRISM models.").setShortName(prismCompatibilityOptionShortName).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,buildChoiceLabelOptionName,false,"If set, also build the choice labels").build());
this->addOption(storm::settings::OptionBuilder(moduleName,buildStateValuationsOptionName,false,"If set, also build the state valuations").build());
this->addOption(storm::settings::OptionBuilder(moduleName,noBuildOptionName,false,"If set, do not build the model.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,buildChoiceLabelOptionName,false,"If set, also build the choice labels").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,buildStateValuationsOptionName,false,"If set, also build the state valuations").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,noBuildOptionName,false,"If set, do not build the model.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,explorationOrderOptionName,false,"Sets which exploration order to use.").setShortName(explorationOrderOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,explorationOrderOptionName,false,"Sets which exploration order to use.").setShortName(explorationOrderOptionShortName).setIsAdvanced()
.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,explorationChecksOptionName,false,"If set, additional checks (if available) are performed during model exploration to debug the model.").setShortName(explorationChecksOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,buildOutOfBoundsStateOptionName,false,"If set, a state for out-of-bounds valuations is added").build());
this->addOption(storm::settings::OptionBuilder(moduleName,bitsForUnboundedVariablesOptionName,false,"Sets the number of bits that is used for unbounded integer variables.")
this->addOption(storm::settings::OptionBuilder(moduleName,buildOutOfBoundsStateOptionName,false,"If set, a state for out-of-bounds valuations is added").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,bitsForUnboundedVariablesOptionName,false,"Sets the number of bits that is used for unbounded integer variables.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("number","The number of bits.").addValidatorUnsignedInteger(ArgumentValidatorFactory::createUnsignedRangeValidatorExcluding(0,63)).setDefaultValueUnsignedInteger(32).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,counterexampleOptionName,false,"Generates a counterexample for the given PRCTL formulas if not satisfied by the model.").setShortName(counterexampleOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,dontFixDeadlockOptionName,false,"If the model contains deadlock states, they need to be fixed by setting this option.").setShortName(dontFixDeadlockOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,dontFixDeadlockOptionName,false,"If the model contains deadlock states, they need to be fixed by setting this option.").setShortName(dontFixDeadlockOptionShortName).setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,engineOptionName,false,"Sets which engine is used for model building and model checking.").setShortName(engineOptionShortName)
@ -61,7 +61,7 @@ namespace storm {
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of an SMT solver.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(smtSolvers)).setDefaultValueString("z3").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,statisticsOptionName,false,"Sets whether to display statistics if available.").setShortName(statisticsOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,cudaOptionName,false,"Sets whether to use CUDA.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,cudaOptionName,false,"Sets whether to use CUDA.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,intelTbbOptionName,false,"Sets whether to use Intel TBB (if Storm was built with support for TBB).").setShortName(intelTbbOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,true,"Sets the precision used by Cudd.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision up to which to constants are considered to be different.").setDefaultValueDouble(1e-15).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorIncluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,true,"Sets the precision used by Cudd.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision up to which to constants are considered to be different.").setDefaultValueDouble(1e-15).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorIncluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalMemoryOptionName,true,"Sets the upper bound of memory available to Cudd in MB.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The memory available to Cudd (0 means unlimited).").setDefaultValueUnsignedInteger(4096).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalMemoryOptionName,true,"Sets the upper bound of memory available to Cudd in MB.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The memory available to Cudd (0 means unlimited).").setDefaultValueUnsignedInteger(4096).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,reorderOptionName,false,"Sets whether dynamic reordering is allowed.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,reorderOptionName,false,"Sets whether dynamic reordering is allowed.").setIsAdvanced().build());
std::vector<std::string>reorderingTechniques;
reorderingTechniques.push_back("none");
@ -46,7 +46,7 @@ namespace storm {
reorderingTechniques.push_back("annealing");
reorderingTechniques.push_back("genetic");
reorderingTechniques.push_back("exact");
this->addOption(storm::settings::OptionBuilder(moduleName,reorderTechniqueOptionName,true,"Sets the reordering technique used by Cudd.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("method","Sets which technique is used by Cudd's reordering routines.").setDefaultValueString("gsift").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(reorderingTechniques)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,reorderTechniqueOptionName,true,"Sets the reordering technique used by Cudd.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("method","Sets which technique is used by Cudd's reordering routines.").setDefaultValueString("gsift").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(reorderingTechniques)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,traceOptionName,false,"Print even more debug output.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,logfileOptionName,false,"If specified, the log output will also be written to this file.").setShortName(logfileOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to write the log.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,testOptionName,false,"Activate a test setting.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,testOptionName,false,"Activate a test setting.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,techniqueOptionName,true,"The method to be used for solving linear equation systems with the eigen solver.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods)).setDefaultValueString("gmres").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,techniqueOptionName,true,"The method to be used for solving linear equation systems with the eigen solver.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods)).setDefaultValueString("gmres").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,preconditionOptionName,true,"The preconditioning technique used for solving linear equation systems.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the preconditioning method.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(preconditioner)).setDefaultValueString("ilu").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,preconditionOptionName,true,"The preconditioning technique used for solving linear equation systems.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the preconditioning method.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(preconditioner)).setDefaultValueString("ilu").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,restartOptionName,true,"The number of iteration until restarted methods are actually restarted.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of iterations.").setDefaultValueUnsignedInteger(50).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,restartOptionName,true,"The number of iteration until restarted methods are actually restarted.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of iterations.").setDefaultValueUnsignedInteger(50).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalIterationsOptionName,false,"The maximal number of iterations to perform before iterative solving is aborted.").setShortName(maximalIterationsOptionShortName).addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The maximal iteration count.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalIterationsOptionName,false,"The maximal number of iterations to perform before iterative solving is aborted.").setShortName(maximalIterationsOptionShortName).setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The maximal iteration count.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,false,"The precision used for detecting convergence of iterative methods.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,false,"The precision used for detecting convergence of iterative methods.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,eliminationOrderOptionName,true,"The order that is to be used for the elimination techniques.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the order in which states are chosen for elimination.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(orders)).setDefaultValueString("fwrev").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,eliminationOrderOptionName,true,"The order that is to be used for the elimination techniques.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the order in which states are chosen for elimination.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(orders)).setDefaultValueString("fwrev").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,eliminationMethodOptionName,true,"The elimination technique to use.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the elimination technique to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods)).setDefaultValueString("state").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,eliminationMethodOptionName,true,"The elimination technique to use.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the elimination technique to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods)).setDefaultValueString("state").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,entryStatesLastOptionName,true,"Sets whether the entry states are eliminated last.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalSccSizeOptionName,true,"Sets the maximal size of the SCCs for which state elimination is applied.")
this->addOption(storm::settings::OptionBuilder(moduleName,entryStatesLastOptionName,true,"Sets whether the entry states are eliminated last.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalSccSizeOptionName,true,"Sets the maximal size of the SCCs for which state elimination is applied.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("maxsize","The maximal size of an SCC on which state elimination is applied.").setDefaultValueUnsignedInteger(20).setIsOptional(true).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,useDedicatedModelCheckerOptionName,true,"Sets whether to use the dedicated model elimination checker (only DTMCs).").build());
this->addOption(storm::settings::OptionBuilder(moduleName,useDedicatedModelCheckerOptionName,true,"Sets whether to use the dedicated model elimination checker (only DTMCs).").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,precomputationTypeOptionName,true,"Sets the kind of precomputation used.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the type to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(types)).setDefaultValueString("global").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,numberOfExplorationStepsUntilPrecomputationOptionName,true,"Sets the number of exploration steps to perform until a precomputation is triggered.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of exploration steps to perform.").setDefaultValueUnsignedInteger(100000).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,numberOfSampledPathsUntilPrecomputationOptionName,true,"If set, a precomputation is perfomed periodically after the given number of paths has been sampled.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of paths to sample until a precomputation is triggered.").setDefaultValueUnsignedInteger(100000).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precomputationTypeOptionName,true,"Sets the kind of precomputation used.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the type to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(types)).setDefaultValueString("global").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,numberOfExplorationStepsUntilPrecomputationOptionName,true,"Sets the number of exploration steps to perform until a precomputation is triggered.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of exploration steps to perform.").setDefaultValueUnsignedInteger(100000).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,numberOfSampledPathsUntilPrecomputationOptionName,true,"If set, a precomputation is perfomed periodically after the given number of paths has been sampled.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of paths to sample until a precomputation is triggered.").setDefaultValueUnsignedInteger(100000).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,nextStateHeuristicOptionName,true,"Sets the next-state heuristic to use.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the heuristic to use. 'prob' samples according to the probabilities in the system, 'probdiffs' takes into account probabilities and the differences between the current bounds and 'unif' samples uniformly.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(nextStateHeuristics)).setDefaultValueString("probdiffs").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,nextStateHeuristicOptionName,true,"Sets the next-state heuristic to use.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the heuristic to use. 'prob' samples according to the probabilities in the system, 'probdiffs' takes into account probabilities and the differences between the current bounds and 'unif' samples uniformly.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(nextStateHeuristics)).setDefaultValueString("probdiffs").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,false,"The precision to achieve.").setShortName(precisionOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,false,"The precision to achieve.").setShortName(precisionOptionShortName).setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The value to use to determine convergence.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,solvingMethodOptionName,false,"Sets which game solving technique is preferred.")
this->addOption(storm::settings::OptionBuilder(moduleName,solvingMethodOptionName,false,"Sets which game solving technique is preferred.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of a game solving technique.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(gameSolvingTechniques)).setDefaultValueString("vi").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalIterationsOptionName,false,"The maximal number of iterations to perform before iterative solving is aborted.").setShortName(maximalIterationsOptionShortName).addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The maximal iteration count.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalIterationsOptionName,false,"The maximal number of iterations to perform before iterative solving is aborted.").setShortName(maximalIterationsOptionShortName).setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The maximal iteration count.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,false,"The precision used for detecting convergence of iterative methods.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,false,"The precision used for detecting convergence of iterative methods.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,absoluteOptionName,false,"Sets whether the relative or the absolute error is considered for detecting convergence.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,absoluteOptionName,false,"Sets whether the relative or the absolute error is considered for detecting convergence.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,helpOptionName,false,"Shows all available options, arguments and descriptions.").setShortName(helpOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("hint","A regular expression to show help for all matching entities or 'all' for the complete help.").setDefaultValueString("all").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,helpOptionName,false,"Shows available options, arguments and descriptions.").setShortName(helpOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filter","'frequent' for frequently used options, 'all' for the complete help, or a regular expression to show help for all matching entities.").setDefaultValueString("frequent").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,versionOptionName,false,"Prints the version information.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,verboseOptionName,false,"Enables more verbose output.").setShortName(verboseOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,showProgressOptionName,false,"Sets when additional information (if available) about the progress is printed.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("delay","The delay to wait (in seconds) between emitting information (0 means never print progress).").setDefaultValueUnsignedInteger(5).build()).build());
@ -44,7 +44,7 @@ namespace storm {
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,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,parametricOptionName,false,"Sets whether to enable parametric model checking.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,exactOptionName,false,"Sets whether to enable exact model checking.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,soundOptionName,false,"Sets whether to force sound model checking.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,outputOptionName,true,"If set, the glpk output will be printed to the command line.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,integerToleranceOption,true,"Sets glpk's precision for integer variables.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,outputOptionName,true,"If set, the glpk output will be printed to the command line.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,integerToleranceOption,true,"Sets glpk's precision for integer variables.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,techniqueOptionName,true,"The method to be used for solving linear equation systems with the gmm++ engine.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods)).setDefaultValueString("gmres").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,techniqueOptionName,true,"The method to be used for solving linear equation systems with the gmm++ engine.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods)).setDefaultValueString("gmres").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,preconditionOptionName,true,"The preconditioning technique used for solving linear equation systems.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the preconditioning method.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(preconditioner)).setDefaultValueString("ilu").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,preconditionOptionName,true,"The preconditioning technique used for solving linear equation systems.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the preconditioning method.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(preconditioner)).setDefaultValueString("ilu").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,restartOptionName,true,"The number of iteration until restarted methods are actually restarted.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of iterations.").setDefaultValueUnsignedInteger(50).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,restartOptionName,true,"The number of iteration until restarted methods are actually restarted.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of iterations.").setDefaultValueUnsignedInteger(50).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalIterationsOptionName,false,"The maximal number of iterations to perform before iterative solving is aborted.").setShortName(maximalIterationsOptionShortName).addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The maximal iteration count.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,threadsOption,true,"The number of threads that may be used by Gurobi.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of threads.").setDefaultValueUnsignedInteger(1).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,threadsOption,true,"The number of threads that may be used by Gurobi.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of threads.").setDefaultValueUnsignedInteger(1).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,outputOption,true,"If set, the Gurobi output will be printed to the command line.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,outputOption,true,"If set, the Gurobi output will be printed to the command line.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,integerToleranceOption,true,"Sets Gurobi's precision for integer variables.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,integerToleranceOption,true,"Sets Gurobi's precision for integer variables.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,mipFocusOption,true,"The high level solution strategy used to solve MILPs.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The number of the strategy.").setDefaultValueUnsignedInteger(0).addValidatorUnsignedInteger(ArgumentValidatorFactory::createUnsignedRangeValidatorIncluding(0,3)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,mipFocusOption,true,"The high level solution strategy used to solve MILPs.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The number of the strategy.").setDefaultValueUnsignedInteger(0).addValidatorUnsignedInteger(ArgumentValidatorFactory::createUnsignedRangeValidatorIncluding(0,3)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,concurrentMipThreadsOption,true,"The number of MIP solvers Gurobi spawns in parallel. Shall not be larger then the number of threads.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The number of parallel solvers.").setDefaultValueUnsignedInteger(1).addValidatorUnsignedInteger(ArgumentValidatorFactory::createUnsignedGreaterEqualValidator(1)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,concurrentMipThreadsOption,true,"The number of MIP solvers Gurobi spawns in parallel. Shall not be larger then the number of threads.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The number of parallel solvers.").setDefaultValueUnsignedInteger(1).addValidatorUnsignedInteger(ArgumentValidatorFactory::createUnsignedGreaterEqualValidator(1)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportDotOptionName,"","If given, the loaded model will be written to the specified file in the dot format.")
this->addOption(storm::settings::OptionBuilder(moduleName,exportDotOptionName,"","If given, the loaded model will be written to the specified file in the dot format.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the model is to be written.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportJaniDotOptionName,"","If given, the loaded jani model will be written to the specified file in the dot format.")
this->addOption(storm::settings::OptionBuilder(moduleName,exportJaniDotOptionName,"","If given, the loaded jani model will be written to the specified file in the dot format.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the model is to be written.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportCdfOptionName,false,"Exports the cumulative density function for reward bounded properties into a .csv file.").setShortName(exportCdfOptionShortName).addArgument(storm::settings::ArgumentBuilder::createStringArgument("directory","A path to an existing directory where the cdf files will be stored.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportCdfOptionName,false,"Exports the cumulative density function for reward bounded properties into a .csv file.").setIsAdvanced().setShortName(exportCdfOptionShortName).addArgument(storm::settings::ArgumentBuilder::createStringArgument("directory","A path to an existing directory where the cdf files will be stored.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportExplicitOptionName,"","If given, the loaded model will be written to the specified file in the drn format.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","the name of the file to which the model is to be writen.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,explicitOptionName,false,"Parses the model given in an explicit (sparse) representation.").setShortName(explicitOptionShortName)
@ -69,7 +69,7 @@ namespace storm {
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file from which to read the PRISM input.").addValidatorString(ArgumentValidatorFactory::createExistingFileValidator()).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,janiInputOptionName,false,"Parses the model given in the JANI format.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file from which to read the JANI input.").addValidatorString(ArgumentValidatorFactory::createExistingFileValidator()).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,prismToJaniOptionName,false,"If set, the input PRISM model is transformed to JANI.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,prismToJaniOptionName,false,"If set, the input PRISM model is transformed to JANI.").setIsAdvanced().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())
@ -79,13 +79,13 @@ namespace storm {
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The file from which to read the transition rewards.").addValidatorString(ArgumentValidatorFactory::createExistingFileValidator()).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,stateRewardsOptionName,false,"If given, the state rewards are read from this file and added to the explicit model. Note that this requires the model to be given as an explicit model (i.e., via --"+explicitOptionName+").")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The file from which to read the state rewards.").addValidatorString(ArgumentValidatorFactory::createExistingFileValidator()).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,choiceLabelingOptionName,false,"If given, the choice labels are read from this file and added to the explicit model. Note that this requires the model to be given as an explicit model (i.e., via --"+explicitOptionName+").")
this->addOption(storm::settings::OptionBuilder(moduleName,choiceLabelingOptionName,false,"If given, the choice labels are read from this file and added to the explicit model. Note that this requires the model to be given as an explicit model (i.e., via --"+explicitOptionName+").").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The file from which to read the choice labels.").addValidatorString(ArgumentValidatorFactory::createExistingFileValidator()).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,constantsOptionName,false,"Specifies the constant replacements to use in symbolic models. Note that this requires the model to be given as an symbolic model (i.e., via --"+prismInputOptionName+" or --"+janiInputOptionName+").").setShortName(constantsOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("values","A comma separated list of constants and their value, e.g. a=1,b=2,c=3.").setDefaultValueString("").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,janiPropertyOptionName,false,"Specifies the properties from the jani model (given by --"+janiInputOptionName+") to be checked.").setShortName(janiPropertyOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("values","A comma separated list of properties to be checked").setDefaultValueString("").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,toNondetOptionName,false,"If set, DTMCs/CTMCs are converted to MDPs/MAs (without actual nondeterminism) before model checking.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,toNondetOptionName,false,"If set, DTMCs/CTMCs are converted to MDPs/MAs (without actual nondeterminism) before model checking.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,qvbsInputOptionName,false,"Selects a model from the Quantitative Verification Benchmark Set.").setShortName(qvbsInputOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("model","The short model name as in the benchmark set.").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.")
this->addOption(storm::settings::OptionBuilder(moduleName,doctorOptionName,false,"Show debugging information on why the jit-based model builder is not working on your system.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,compilerOptionName,false,"The compiler in the jit-based model builder.").setIsAdvanced()
.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.")
this->addOption(storm::settings::OptionBuilder(moduleName,stormIncludeDirectoryOptionName,false,"The include directory of storm.").setIsAdvanced()
.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.")
this->addOption(storm::settings::OptionBuilder(moduleName,boostIncludeDirectoryOptionName,false,"The include directory of boost.").setIsAdvanced()
.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.")
this->addOption(storm::settings::OptionBuilder(moduleName,carlIncludeDirectoryOptionName,false,"The include directory of carl.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("dir","The directory containing the carl headers.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,compilerFlagsOptionName,false,"The flags passed to the compiler.")
this->addOption(storm::settings::OptionBuilder(moduleName,compilerFlagsOptionName,false,"The flags passed to the compiler.").setIsAdvanced()
this->addOption(storm::settings::OptionBuilder(moduleName,optimizationLevelOptionName,false,"Sets the optimization level.")
this->addOption(storm::settings::OptionBuilder(moduleName,optimizationLevelOptionName,false,"Sets the optimization level.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("level","The level to use.").setDefaultValueUnsignedInteger(3).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,solvingMethodOptionName,false,"Sets which min/max linear equation solving technique is preferred.")
this->addOption(storm::settings::OptionBuilder(moduleName,solvingMethodOptionName,false,"Sets which min/max linear equation solving technique is preferred.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of a min/max linear equation solving technique.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(minMaxSolvingTechniques)).setDefaultValueString("topological").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalIterationsOptionName,false,"The maximal number of iterations to perform before iterative solving is aborted.").setShortName(maximalIterationsOptionShortName).addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The maximal iteration count.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalIterationsOptionName,false,"The maximal number of iterations to perform before iterative solving is aborted.").setShortName(maximalIterationsOptionShortName).setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The maximal iteration count.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,false,"The precision used for detecting convergence of iterative methods.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,false,"The precision used for detecting convergence of iterative methods.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,absoluteOptionName,false,"Sets whether the relative or the absolute error is considered for detecting convergence.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,absoluteOptionName,false,"Sets whether the relative or the absolute error is considered for detecting convergence.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,lraMethodOptionName,false,"Sets which method is preferred for computing long run averages.")
this->addOption(storm::settings::OptionBuilder(moduleName,lraMethodOptionName,false,"Sets which method is preferred for computing long run averages.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of a long run average computation method.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(lraMethods)).setDefaultValueString("vi").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,markovAutomatonBoundedReachabilityMethodOptionName,false,"The method to use to solve bounded reachability queries on MAs.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(maMethods)).setDefaultValueString("unifplus").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,markovAutomatonBoundedReachabilityMethodOptionName,false,"The method to use to solve bounded reachability queries on MAs.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(maMethods)).setDefaultValueString("unifplus").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,valueIterationMultiplicationStyleOptionName,false,"Sets which method multiplication style to prefer for value iteration.")
this->addOption(storm::settings::OptionBuilder(moduleName,valueIterationMultiplicationStyleOptionName,false,"Sets which method multiplication style to prefer for value iteration.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of a multiplication style.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(multiplicationStyles)).setDefaultValueString("gaussseidel").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,intervalIterationSymmetricUpdatesOptionName,false,"If set, interval iteration performs an update on both, lower and upper bound in each iteration").build());
this->addOption(storm::settings::OptionBuilder(moduleName,intervalIterationSymmetricUpdatesOptionName,false,"If set, interval iteration performs an update on both, lower and upper bound in each iteration").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,filterRewZeroOptionName,false,"If set, states with reward zero are filtered out, potentially reducing the size of the equation system").build());
this->addOption(storm::settings::OptionBuilder(moduleName,filterRewZeroOptionName,false,"If set, states with reward zero are filtered out, potentially reducing the size of the equation system").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,methodOptionName,true,"The method to be used for multi objective model checking.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods)).setDefaultValueString("pcaa").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportPlotOptionName,true,"Saves data for plotting of pareto curves and achievable values.")
this->addOption(storm::settings::OptionBuilder(moduleName,methodOptionName,true,"The method to be used for multi objective model checking.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods)).setDefaultValueString("pcaa").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportPlotOptionName,true,"Saves data for plotting of pareto curves and achievable values.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("directory","A path to an existing directory in which the results will be saved.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,true,"The precision used for the approximation of numerical- and pareto queries.")
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,true,"The precision used for the approximation of numerical- and pareto queries.").setIsAdvanced()
this->addOption(storm::settings::OptionBuilder(moduleName,maxStepsOptionName,true,"Aborts the computation after the given number of refinement steps (= computed pareto optimal points).")
this->addOption(storm::settings::OptionBuilder(moduleName,maxStepsOptionName,true,"Aborts the computation after the given number of refinement steps (= computed pareto optimal points).").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","the threshold for the number of refinement steps to be performed.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,schedulerRestrictionOptionName,false,"Restricts the class of considered schedulers to non-randomized schedulers with the provided memory pattern.")
this->addOption(storm::settings::OptionBuilder(moduleName,multiplierTypeOptionName,true,"Sets which type of multiplier is preferred.")
this->addOption(storm::settings::OptionBuilder(moduleName,multiplierTypeOptionName,true,"Sets which type of multiplier is preferred.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of a multiplier.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(multiplierTypes)).setDefaultValueString("gmmxx").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,techniqueOptionName,true,"The method to be used for solving linear equation systems with the native engine.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods)).setDefaultValueString("jacobi").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,techniqueOptionName,true,"The method to be used for solving linear equation systems with the native engine.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the method to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(methods)).setDefaultValueString("jacobi").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalIterationsOptionName,false,"The maximal number of iterations to perform before iterative solving is aborted.").setShortName(maximalIterationsOptionShortName).addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The maximal iteration count.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalIterationsOptionName,false,"The maximal number of iterations to perform before iterative solving is aborted.").setIsAdvanced().setShortName(maximalIterationsOptionShortName).addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The maximal iteration count.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,false,"The precision used for detecting convergence of iterative methods.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,false,"The precision used for detecting convergence of iterative methods.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to achieve.").setDefaultValueDouble(1e-06).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,omegaOptionName,false,"The omega used for SOR.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The value of the SOR parameter.").setDefaultValueDouble(0.9).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,omegaOptionName,false,"The omega used for SOR.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The value of the SOR parameter.").setDefaultValueDouble(0.9).addValidatorDouble(ArgumentValidatorFactory::createDoubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,absoluteOptionName,false,"Sets whether the relative or the absolute error is considered for detecting convergence.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,absoluteOptionName,false,"Sets whether the relative or the absolute error is considered for detecting convergence.").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,powerMethodMultiplicationStyleOptionName,false,"Sets which method multiplication style to prefer for the power method.")
this->addOption(storm::settings::OptionBuilder(moduleName,powerMethodMultiplicationStyleOptionName,false,"Sets which method multiplication style to prefer for the power method.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of a multiplication style.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(multiplicationStyles)).setDefaultValueString("gaussseidel").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,intervalIterationSymmetricUpdatesOptionName,false,"If set, interval iteration performs an update on both, lower and upper bound in each iteration").build());
this->addOption(storm::settings::OptionBuilder(moduleName,intervalIterationSymmetricUpdatesOptionName,false,"If set, interval iteration performs an update on both, lower and upper bound in each iteration").setIsAdvanced().build());
this->addOption(storm::settings::OptionBuilder(moduleName,solverCommandOption,true,"If set, this command is used to call the solver and to let the solver know that it should read SMT-LIBv2 commands from standard input. If not set, only a SMT-LIB script file might be exported.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("command","path to the solver + command line arguments.").setDefaultValueString("").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,solverCommandOption,true,"If set, this command is used to call the solver and to let the solver know that it should read SMT-LIBv2 commands from standard input. If not set, only a SMT-LIB script file might be exported.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("command","path to the solver + command line arguments.").setDefaultValueString("").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportScriptOption,true,"If set, the SMT-LIBv2 script will be exportet to this file.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("path","path and filename to the location where the script file should be exported to.").setDefaultValueString("").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportScriptOption,true,"If set, the SMT-LIBv2 script will be exportet to this file.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createStringArgument("path","path and filename to the location where the script file should be exported to.").setDefaultValueString("").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalMemoryOptionName,true,"Sets the upper bound of memory available to Sylvan in MB.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The memory available to Sylvan.").setDefaultValueUnsignedInteger(4096).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,threadCountOptionName,true,"Sets the number of threads used by Sylvan.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The number of threads available to Sylvan (0 means 'auto-detect').").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalMemoryOptionName,true,"Sets the upper bound of memory available to Sylvan in MB.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The memory available to Sylvan.").setDefaultValueUnsignedInteger(4096).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,threadCountOptionName,true,"Sets the number of threads used by Sylvan.").setIsAdvanced().addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The number of threads available to Sylvan (0 means 'auto-detect').").build()).build());