4 changed files with 1 additions and 150 deletions
			
			
		- 
					3src/storm-pars/settings/ParsSettings.cpp
- 
					2src/storm/settings/SettingsManager.cpp
- 
					61src/storm/settings/modules/TopologicalValueIterationEquationSolverSettings.cpp
- 
					85src/storm/settings/modules/TopologicalValueIterationEquationSolverSettings.h
| @ -1,61 +0,0 @@ | |||||
| #include "storm/settings/modules/TopologicalValueIterationEquationSolverSettings.h"
 |  | ||||
| 
 |  | ||||
| #include "storm/settings/Option.h"
 |  | ||||
| #include "storm/settings/OptionBuilder.h"
 |  | ||||
| #include "storm/settings/ArgumentBuilder.h"
 |  | ||||
| #include "storm/settings/Argument.h"
 |  | ||||
| 
 |  | ||||
| #include "storm/settings/SettingsManager.h"
 |  | ||||
| #include "storm/settings/modules/GeneralSettings.h"
 |  | ||||
| #include "storm/solver/SolverSelectionOptions.h"
 |  | ||||
| 
 |  | ||||
| namespace storm { |  | ||||
|     namespace settings { |  | ||||
|         namespace modules { |  | ||||
|              |  | ||||
| 			const std::string TopologicalValueIterationEquationSolverSettings::moduleName = "topologicalValueIteration"; |  | ||||
| 			const std::string TopologicalValueIterationEquationSolverSettings::maximalIterationsOptionName = "maxiter"; |  | ||||
| 			const std::string TopologicalValueIterationEquationSolverSettings::maximalIterationsOptionShortName = "i"; |  | ||||
| 			const std::string TopologicalValueIterationEquationSolverSettings::precisionOptionName = "precision"; |  | ||||
| 			const std::string TopologicalValueIterationEquationSolverSettings::absoluteOptionName = "absolute"; |  | ||||
| 
 |  | ||||
| 			TopologicalValueIterationEquationSolverSettings::TopologicalValueIterationEquationSolverSettings() : ModuleSettings(moduleName) { |  | ||||
|                  |  | ||||
|                 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.").setDefaultValueUnsignedInteger(20000).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, absoluteOptionName, false, "Sets whether the relative or the absolute error is considered for detecting convergence.").build()); |  | ||||
|             } |  | ||||
|              |  | ||||
| 			bool TopologicalValueIterationEquationSolverSettings::isMaximalIterationCountSet() const { |  | ||||
|                 return this->getOption(maximalIterationsOptionName).getHasOptionBeenSet(); |  | ||||
|             } |  | ||||
|              |  | ||||
| 			uint_fast64_t TopologicalValueIterationEquationSolverSettings::getMaximalIterationCount() const { |  | ||||
|                 return this->getOption(maximalIterationsOptionName).getArgumentByName("count").getValueAsUnsignedInteger(); |  | ||||
|             } |  | ||||
|              |  | ||||
| 			bool TopologicalValueIterationEquationSolverSettings::isPrecisionSet() const { |  | ||||
|                 return this->getOption(precisionOptionName).getHasOptionBeenSet(); |  | ||||
|             } |  | ||||
|              |  | ||||
| 			double TopologicalValueIterationEquationSolverSettings::getPrecision() const { |  | ||||
|                 return this->getOption(precisionOptionName).getArgumentByName("value").getValueAsDouble(); |  | ||||
| 			} |  | ||||
| 
 |  | ||||
| 			bool TopologicalValueIterationEquationSolverSettings::isConvergenceCriterionSet() const { |  | ||||
| 				return this->getOption(absoluteOptionName).getHasOptionBeenSet(); |  | ||||
| 			} |  | ||||
| 
 |  | ||||
| 			TopologicalValueIterationEquationSolverSettings::ConvergenceCriterion TopologicalValueIterationEquationSolverSettings::getConvergenceCriterion() const { |  | ||||
| 				return this->getOption(absoluteOptionName).getHasOptionBeenSet() ? TopologicalValueIterationEquationSolverSettings::ConvergenceCriterion::Absolute : TopologicalValueIterationEquationSolverSettings::ConvergenceCriterion::Relative; |  | ||||
| 			} |  | ||||
|              |  | ||||
| 			bool TopologicalValueIterationEquationSolverSettings::check() const { |  | ||||
|                 return true; |  | ||||
|             } |  | ||||
|              |  | ||||
|         } // namespace modules
 |  | ||||
|     } // namespace settings
 |  | ||||
| } // namespace storm
 |  | ||||
| @ -1,85 +0,0 @@ | |||||
| #ifndef STORM_SETTINGS_MODULES_TOPOLOGICALVALUEITERATIONSETTINGS_H_ |  | ||||
| #define STORM_SETTINGS_MODULES_TOPOLOGICALVALUEITERATIONSETTINGS_H_ |  | ||||
| 
 |  | ||||
| #include "storm/settings/modules/ModuleSettings.h" |  | ||||
| 
 |  | ||||
| namespace storm { |  | ||||
|     namespace settings { |  | ||||
|         namespace modules { |  | ||||
|              |  | ||||
|             /*! |  | ||||
|              * This class represents the settings for topological value iteration. |  | ||||
|              */ |  | ||||
| 			class TopologicalValueIterationEquationSolverSettings : public ModuleSettings { |  | ||||
|             public: |  | ||||
| 
 |  | ||||
| 				// An enumeration of all available convergence criteria. |  | ||||
| 				enum class ConvergenceCriterion { Absolute, Relative }; |  | ||||
| 
 |  | ||||
|                 /*! |  | ||||
|                  * Creates a new set of topological value iteration settings. |  | ||||
|                  */ |  | ||||
| 				TopologicalValueIterationEquationSolverSettings(); |  | ||||
| 
 |  | ||||
|                  |  | ||||
|                 /*! |  | ||||
|                  * Retrieves whether the maximal iteration count has been set. |  | ||||
|                  * |  | ||||
|                  * @return True iff the maximal iteration count has been set. |  | ||||
|                  */ |  | ||||
|                 bool isMaximalIterationCountSet() const; |  | ||||
|                  |  | ||||
|                 /*! |  | ||||
|                  * Retrieves the maximal number of iterations to perform until giving up on converging. |  | ||||
|                  * |  | ||||
|                  * @return The maximal iteration count. |  | ||||
|                  */ |  | ||||
|                 uint_fast64_t getMaximalIterationCount() const; |  | ||||
|                  |  | ||||
|                 /*! |  | ||||
|                  * Retrieves whether the precision has been set. |  | ||||
|                  * |  | ||||
|                  * @return True iff the precision has been set. |  | ||||
|                  */ |  | ||||
|                 bool isPrecisionSet() const; |  | ||||
|                  |  | ||||
|                 /*! |  | ||||
|                  * Retrieves the precision that is used for detecting convergence. |  | ||||
|                  * |  | ||||
|                  * @return The precision to use for detecting convergence. |  | ||||
|                  */ |  | ||||
|                 double getPrecision() const; |  | ||||
| 
 |  | ||||
| 				/*! |  | ||||
| 				* Retrieves whether the convergence criterion has been set. |  | ||||
| 				* |  | ||||
| 				* @return True iff the convergence criterion has been set. |  | ||||
| 				*/ |  | ||||
| 				bool isConvergenceCriterionSet() const; |  | ||||
| 
 |  | ||||
| 				/*! |  | ||||
| 				* Retrieves the selected convergence criterion. |  | ||||
| 				* |  | ||||
| 				* @return The selected convergence criterion. |  | ||||
| 				*/ |  | ||||
| 				ConvergenceCriterion getConvergenceCriterion() const; |  | ||||
|                  |  | ||||
|                 bool check() const override; |  | ||||
|                  |  | ||||
|                 // The name of the module. |  | ||||
|                 static const std::string moduleName; |  | ||||
|                  |  | ||||
|             private: |  | ||||
|                 // Define the string names of the options as constants. |  | ||||
|                 static const std::string techniqueOptionName; |  | ||||
|                 static const std::string maximalIterationsOptionName; |  | ||||
|                 static const std::string maximalIterationsOptionShortName; |  | ||||
|                 static const std::string precisionOptionName; |  | ||||
|                 static const std::string absoluteOptionName; |  | ||||
|             }; |  | ||||
|              |  | ||||
|         } // namespace modules |  | ||||
|     } // namespace settings |  | ||||
| } // namespace storm |  | ||||
| 
 |  | ||||
| #endif /* STORM_SETTINGS_MODULES_TOPOLOGICALVALUEITERATIONSETTINGS_H_ */ |  | ||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue