Browse Source

Nullpointer check for dirOverride

main
Lukas Posch 4 years ago
committed by Stefan Pranger
parent
commit
78a3b2a6a7
  1. 24
      src/storm/solver/Multiplier.cpp

24
src/storm/solver/Multiplier.cpp

@ -97,13 +97,23 @@ namespace storm {
auto choice_it = choiceValues.begin(); auto choice_it = choiceValues.begin();
for(uint state = 0; state < rowGroupIndices.size() - 1; state++) { for(uint state = 0; state < rowGroupIndices.size() - 1; state++) {
uint rowGroupSize = rowGroupIndices[state + 1] - rowGroupIndices[state]; uint rowGroupSize = rowGroupIndices[state + 1] - rowGroupIndices[state];
if((dir == storm::OptimizationDirection::Minimize && !dirOverride->get(state)) || (dir == storm::OptimizationDirection::Maximize && dirOverride->get(state))) { if(dirOverride != nullptr) {
result.at(state) = *std::min_element(choice_it, choice_it + rowGroupSize); if((dir == storm::OptimizationDirection::Minimize && !dirOverride->get(state)) || (dir == storm::OptimizationDirection::Maximize && dirOverride->get(state))) {
choice_it += rowGroupSize; result.at(state) = *std::min_element(choice_it, choice_it + rowGroupSize);
} choice_it += rowGroupSize;
else { }
result.at(state) = *std::max_element(choice_it, choice_it + rowGroupSize); else {
choice_it += rowGroupSize; result.at(state) = *std::max_element(choice_it, choice_it + rowGroupSize);
choice_it += rowGroupSize;
}
} else {
if(dir == storm::OptimizationDirection::Minimize) {
result.at(state) = *std::min_element(choice_it, choice_it + rowGroupSize);
choice_it += rowGroupSize;
} else {
result.at(state) = *std::max_element(choice_it, choice_it + rowGroupSize);
choice_it += rowGroupSize;
}
} }
} }
} }

|||||||
100:0
Loading…
Cancel
Save