Storm 1.13.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ConditionalSettings.cpp
Go to the documentation of this file.
2
7
9
10const std::string ConditionalSettings::moduleName = "conditional";
11const std::string ConditionalSettings::conditionalAlgorithmOptionName = "algorithm";
12const std::string ConditionalSettings::conditionalPrecisionOptionName = "precision";
13const std::string ConditionalSettings::conditionalPrecisionAbsoluteOptionName = "absolute";
14
16 std::vector<std::string> const conditionalAlgs = {"default", "restart", "bisection", "bisection-advanced", "bisection-pt", "bisection-advanced-pt", "pi"};
17 this->addOption(storm::settings::OptionBuilder(moduleName, conditionalAlgorithmOptionName, false, "The used algorithm for conditional probabilities.")
18 .setIsAdvanced()
19 .addArgument(storm::settings::ArgumentBuilder::createStringArgument("name", "The name of the method to use.")
20 .addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(conditionalAlgs))
21 .setDefaultValueString("default")
22 .build())
23 .build());
24
25 this->addOption(storm::settings::OptionBuilder(moduleName, conditionalPrecisionOptionName, false,
26 "The internally used precision for computing conditional probabilities..")
27 .setIsAdvanced()
28 .addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value", "The precision to use.")
29 .setDefaultValueDouble(1e-06)
31 .build())
32 .build());
33
34 this->addOption(storm::settings::OptionBuilder(moduleName, conditionalPrecisionAbsoluteOptionName, false,
35 "Whether the precision for computing conditional probabilities is considered absolute.")
36 .setIsAdvanced()
37 .build());
38}
39
41 return this->getOption(conditionalAlgorithmOptionName).getHasOptionBeenSet();
42}
43
45 return conditionalAlgorithmSettingFromString(this->getOption(conditionalAlgorithmOptionName).getArgumentByName("name").getValueAsString());
46}
47
49 return this->getOption(conditionalPrecisionOptionName).getArgumentByName("value").getValueAsDouble();
50}
51
53 return !this->getOption(conditionalPrecisionOptionName).getArgumentByName("value").getHasBeenSet() ||
54 this->getOption(conditionalPrecisionOptionName).getArgumentByName("value").wasSetFromDefaultValue();
55}
56
58 return this->getOption(conditionalPrecisionAbsoluteOptionName).getHasOptionBeenSet();
59}
60
61} // namespace storm::settings::modules
virtual bool getHasBeenSet() const
Retrieves whether the argument has been set.
virtual double getValueAsDouble() const =0
Retrieves the value of this argument as a double.
virtual bool wasSetFromDefaultValue() const =0
static ArgumentBuilder createDoubleArgument(std::string const &name, std::string const &description)
Creates a double argument with the given parameters.
static ArgumentBuilder createStringArgument(std::string const &name, std::string const &description)
Creates a string argument with the given parameters.
static std::shared_ptr< ArgumentValidator< std::string > > createMultipleChoiceValidator(std::vector< std::string > const &choices)
static std::shared_ptr< ArgumentValidator< double > > createDoubleRangeValidatorIncluding(double lowerBound, double upperBound)
This class provides the interface to create an option...
ArgumentBase const & getArgumentByName(std::string const &argumentName) const
Returns a reference to the argument with the specified long name.
Definition Option.cpp:79
bool getHasOptionBeenSet() const
Retrieves whether the option has been set.
Definition Option.cpp:125
double getConditionalPrecision() const
Retrieves the specified precision for computing conditional probabilities.
bool isConditionalAlgorithmSet() const
Retrieves whether an algorithm for conditional properties has been set.
ConditionalAlgorithmSetting getConditionalAlgorithmSetting() const
Retrieves the specified algorithm for conditional probabilities.
bool isConditionalPrecisionSetFromDefaultValue() const
Retrieves whether the precision for computing conditional probabilities was set from a default value.
bool isConditionalPrecisionAbsolute() const
Retrieves whether the precision for computing conditional probabilities is considered absolute.
ModuleSettings(std::string const &moduleName)
Constructs a new settings object.
void addOption(std::shared_ptr< Option > const &option)
Adds and registers the given option.
Option & getOption(std::string const &longName)
Retrieves the option with the given long name.
ConditionalAlgorithmSetting conditionalAlgorithmSettingFromString(std::string const &algorithm)