10namespace modelchecker {
12template<
typename ValueType>
14 return !hasResultHint() && !hasSchedulerHint() && !hasMaybeStates();
17template<
typename ValueType>
22template<
typename ValueType>
24 return resultHint.is_initialized();
27template<
typename ValueType>
32template<
typename ValueType>
37template<
typename ValueType>
39 this->resultHint = resultHint;
42template<
typename ValueType>
44 this->resultHint = resultHint;
47template<
typename ValueType>
49 STORM_LOG_THROW(!computeOnlyMaybeStates || (hasMaybeStates() && hasResultHint()), storm::exceptions::InvalidOperationException,
50 "Computing only maybestates is activated but no maybestates or no result hint is specified.");
51 return computeOnlyMaybeStates;
54template<
typename ValueType>
56 STORM_LOG_THROW(!value || (hasMaybeStates() && hasResultHint()), storm::exceptions::InvalidOperationException,
57 "Tried to activate that only maybestates need to be computed, but no maybestates or no result hint was given before.");
58 this->computeOnlyMaybeStates = value;
61template<
typename ValueType>
63 return maybeStates.is_initialized();
66template<
typename ValueType>
68 return maybeStates.
get();
71template<
typename ValueType>
73 return maybeStates.
get();
76template<
typename ValueType>
78 this->maybeStates = newMaybeStates;
81template<
typename ValueType>
83 this->maybeStates = std::move(newMaybeStates);
86template<
typename ValueType>
88 return schedulerHint.is_initialized();
91template<
typename ValueType>
93 return *schedulerHint;
96template<
typename ValueType>
98 return *schedulerHint;
101template<
typename ValueType>
103 this->schedulerHint = schedulerHint;
106template<
typename ValueType>
108 this->schedulerHint = schedulerHint;
111template<
typename ValueType>
113 return noEndComponentsInMaybeStates;
116template<
typename ValueType>
118 noEndComponentsInMaybeStates = value;
This class contains information that might accelerate the model checking process.
bool getNoEndComponentsInMaybeStates() const
void setSchedulerHint(boost::optional< storage::Scheduler< ValueType > > const &schedulerHint)
void setResultHint(boost::optional< std::vector< ValueType > > const &resultHint)
storm::storage::Scheduler< ValueType > const & getSchedulerHint() const
storm::storage::BitVector const & getMaybeStates() const
bool hasResultHint() const
bool getComputeOnlyMaybeStates() const
void setComputeOnlyMaybeStates(bool value)
virtual bool isExplicitModelCheckerHint() const override
void setNoEndComponentsInMaybeStates(bool value)
bool hasSchedulerHint() const
void setMaybeStates(storm::storage::BitVector const &maybeStates)
std::vector< ValueType > const & getResultHint() const
bool hasMaybeStates() const
virtual bool isEmpty() const override
A bit vector that is internally represented as a vector of 64-bit values.
bool get(uint64_t index) const
Retrieves the truth value of the bit at the given index and performs a bound check.
This class defines which action is chosen in a particular state of a non-deterministic model.
#define STORM_LOG_THROW(cond, exception, message)