9namespace stateelimination {
11template<
typename ValueType>
17 oneStepProbabilities(oneStepProbabilities),
22template<
typename ValueType>
27template<
typename ValueType>
31 (ValueType)(oneStepProbabilities[predecessor] *
storm::utility::simplify((ValueType)(probability * oneStepProbabilities[state]))));
34template<
typename ValueType>
37 switch (filterLabel) {
39 return phiStates.get(state);
41 return psiStates.get(state);
48template<
typename ValueType>
53template<
typename ValueType>
55 filterLabel = StateLabel::PHI;
58template<
typename ValueType>
60 filterLabel = StateLabel::PSI;
63template<
typename ValueType>
65 filterLabel = stateLabel;
68template<
typename ValueType>
70 filterLabel = StateLabel::NONE;
void setFilter(StateLabel const &stateLabel)
bool isFilterPredecessor() const override
bool filterPredecessor(storm::storage::sparse::state_type const &state) override
void updateValue(storm::storage::sparse::state_type const &state, ValueType const &loopProbability) override
ConditionalStateEliminator(storm::storage::FlexibleSparseMatrix< ValueType > &transitionMatrix, storm::storage::FlexibleSparseMatrix< ValueType > &backwardTransitions, std::vector< ValueType > &oneStepProbabilities, storm::storage::BitVector &phiStates, storm::storage::BitVector &psiStates)
void updatePredecessor(storm::storage::sparse::state_type const &predecessor, ValueType const &probability, storm::storage::sparse::state_type const &state) override
A bit vector that is internally represented as a vector of 64-bit values.
The flexible sparse matrix is used during state elimination.
#define STORM_LOG_ASSERT(cond, message)
ValueType simplify(ValueType value)