diff --git a/src/modelchecker/csl/SparseMarkovAutomatonCslModelChecker.h b/src/modelchecker/csl/SparseMarkovAutomatonCslModelChecker.h index b927b6203..80ba611aa 100644 --- a/src/modelchecker/csl/SparseMarkovAutomatonCslModelChecker.h +++ b/src/modelchecker/csl/SparseMarkovAutomatonCslModelChecker.h @@ -494,7 +494,7 @@ namespace storm { storm::expressions::Expression constraint = storm::expressions::Expression::createDoubleVariable(stateToVariableNameMap.at(state)); for (auto element : transitionMatrix.getRow(nondeterministicChoiceIndices[state])) { - constraint = constraint - storm::expressions::Expression::createDoubleVariable(stateToVariableNameMap.at(element.getColumn())); + constraint = constraint - storm::expressions::Expression::createDoubleVariable(stateToVariableNameMap.at(element.getColumn())) * storm::expressions::Expression::createDoubleLiteral(element.getValue()); } constraint = constraint + storm::expressions::Expression::createDoubleLiteral(storm::utility::constantOne() / exitRates[state]) * storm::expressions::Expression::createDoubleVariable("k"); @@ -512,7 +512,7 @@ namespace storm { storm::expressions::Expression constraint = storm::expressions::Expression::createDoubleVariable(stateToVariableNameMap.at(state)); for (auto element : transitionMatrix.getRow(choice)) { - constraint = constraint - storm::expressions::Expression::createDoubleVariable(stateToVariableNameMap.at(element.getColumn())); + constraint = constraint - storm::expressions::Expression::createDoubleVariable(stateToVariableNameMap.at(element.getColumn())) * storm::expressions::Expression::createDoubleLiteral(element.getValue()); } storm::expressions::Expression rightHandSide = storm::expressions::Expression::createDoubleLiteral(storm::utility::constantZero()); diff --git a/src/settings/SettingsManager.cpp b/src/settings/SettingsManager.cpp index d8b9284d9..53d31f6f0 100644 --- a/src/settings/SettingsManager.cpp +++ b/src/settings/SettingsManager.cpp @@ -110,6 +110,9 @@ namespace storm { if (optionActive) { setOptionsArguments(activeOptionName, activeOptionIsShortName ? this->shortNameToOptions : this->longNameToOptions, argumentCache); } + + // Finally check whether all modules are okay with the current settings. + this->checkAllModules(); } void SettingsManager::setFromConfigurationFile(std::string const& configFilename) { @@ -325,6 +328,12 @@ namespace storm { } } + void SettingsManager::checkAllModules() const { + for (auto const& nameModulePair : this->modules) { + nameModulePair.second->check(); + } + } + SettingsManager const& manager() { return SettingsManager::manager(); } diff --git a/src/settings/SettingsManager.h b/src/settings/SettingsManager.h index 94d309813..1c77e1d56 100644 --- a/src/settings/SettingsManager.h +++ b/src/settings/SettingsManager.h @@ -179,6 +179,11 @@ namespace storm { */ static void addOptionToMap(std::string const& name, std::shared_ptr