8namespace stateelimination {
10template<
typename ValueType>
16 oneStepProbabilities(oneStepProbabilities),
21template<
typename ValueType>
26template<
typename ValueType>
30 (ValueType)(oneStepProbabilities[predecessor] *
storm::utility::simplify((ValueType)(probability * oneStepProbabilities[state]))));
33template<
typename ValueType>
36 switch (filterLabel) {
38 return phiStates.get(state);
40 return psiStates.get(state);
47template<
typename ValueType>
52template<
typename ValueType>
54 filterLabel = StateLabel::PHI;
57template<
typename ValueType>
59 filterLabel = StateLabel::PSI;
62template<
typename ValueType>
64 filterLabel = stateLabel;
67template<
typename ValueType>
69 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)