|
@ -183,7 +183,7 @@ namespace storm { |
|
|
// Set lowerX to the upper bound candidate |
|
|
// Set lowerX to the upper bound candidate |
|
|
std::swap(lowerX, upperX); |
|
|
std::swap(lowerX, upperX); |
|
|
break; |
|
|
break; |
|
|
} else if (newUpperBoundAlwaysLowerEqual) { |
|
|
|
|
|
|
|
|
} else if (newUpperBoundAlwaysLowerEqual &! newUpperBoundAlwaysHigherEqual) { |
|
|
// All values moved down or stayed the same and we have a maximum difference of twice the requested precision |
|
|
// All values moved down or stayed the same and we have a maximum difference of twice the requested precision |
|
|
// We can safely use twice the requested precision, as we calculate the center of both vectors |
|
|
// We can safely use twice the requested precision, as we calculate the center of both vectors |
|
|
bool reachedPrecision; |
|
|
bool reachedPrecision; |
|
@ -199,6 +199,9 @@ namespace storm { |
|
|
// From now on, we keep updating both bounds |
|
|
// From now on, we keep updating both bounds |
|
|
intervalIterationNeeded = true; |
|
|
intervalIterationNeeded = true; |
|
|
} |
|
|
} |
|
|
|
|
|
} else if (newUpperBoundAlwaysHigherEqual && newUpperBoundAlwaysLowerEqual) { |
|
|
|
|
|
// All values stayed the same. For safety we guess above this value again and check, if all values move down |
|
|
|
|
|
break; |
|
|
} |
|
|
} |
|
|
// At this point, the old upper bounds (auxVector) are not needed anymore. |
|
|
// At this point, the old upper bounds (auxVector) are not needed anymore. |
|
|
|
|
|
|
|
|