32 std::vector<ValueType> result(transitionMatrix.
getRowCount(), storm::utility::zero<ValueType>());
39 maybeStates = hint.template asExplicitModelCheckerHint<ValueType>().getMaybeStates();
42 if (lowerBound == 0) {
43 maybeStates &= ~psiStates;
45 makeZeroColumns = psiStates;
50 if (lowerBound == 0) {
51 storm::utility::vector::setVectorValues<ValueType>(result, psiStates, storm::utility::one<ValueType>());
54 if (!maybeStates.
empty()) {
66 if (lowerBound == 0) {
67 multiplier->repeatedMultiply(env, subresult, &b, upperBound);
69 multiplier->repeatedMultiply(env, subresult, &b, upperBound - lowerBound + 1);
70 submatrix = transitionMatrix.
getSubmatrix(
true, maybeStates, maybeStates,
true);
72 b = std::vector<ValueType>(b.size(), storm::utility::zero<ValueType>());
73 multiplier->repeatedMultiply(env, subresult, &b, lowerBound - 1);
std::vector< ValueType > compute(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, uint64_t lowerBound, uint64_t upperBound, ModelCheckerHint const &hint=ModelCheckerHint())
SparseMatrix getSubmatrix(bool useGroups, storm::storage::BitVector const &rowConstraint, storm::storage::BitVector const &columnConstraint, bool insertDiagonalEntries=false, storm::storage::BitVector const &makeZeroColumns=storm::storage::BitVector()) const
Creates a submatrix of the current matrix by dropping all rows and columns whose bits are not set to ...
storm::storage::BitVector performProbGreater0(storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, bool useStepBound, uint_fast64_t maximalSteps)
Performs a backward depth-first search trough the underlying graph structure of the given model to de...
void setVectorValues(std::vector< T > &vector, storm::storage::BitVector const &positions, std::vector< T > const &values)
Sets the provided values at the provided positions in the given vector.