9namespace modelchecker {
11template<
typename ValueType>
13 return !hasResultHint() && !hasSchedulerHint() && !hasMaybeStates();
16template<
typename ValueType>
21template<
typename ValueType>
23 return resultHint.is_initialized();
26template<
typename ValueType>
31template<
typename ValueType>
36template<
typename ValueType>
38 this->resultHint = resultHint;
41template<
typename ValueType>
43 this->resultHint = resultHint;
46template<
typename ValueType>
48 STORM_LOG_THROW(!computeOnlyMaybeStates || (hasMaybeStates() && hasResultHint()), storm::exceptions::InvalidOperationException,
49 "Computing only maybestates is activated but no maybestates or no result hint is specified.");
50 return computeOnlyMaybeStates;
53template<
typename ValueType>
55 STORM_LOG_THROW(!value || (hasMaybeStates() && hasResultHint()), storm::exceptions::InvalidOperationException,
56 "Tried to activate that only maybestates need to be computed, but no maybestates or no result hint was given before.");
57 this->computeOnlyMaybeStates = value;
60template<
typename ValueType>
62 return maybeStates.is_initialized();
65template<
typename ValueType>
67 return maybeStates.
get();
70template<
typename ValueType>
72 return maybeStates.
get();
75template<
typename ValueType>
77 this->maybeStates = newMaybeStates;
80template<
typename ValueType>
82 this->maybeStates = std::move(newMaybeStates);
85template<
typename ValueType>
87 return schedulerHint.is_initialized();
90template<
typename ValueType>
92 return *schedulerHint;
95template<
typename ValueType>
97 return *schedulerHint;
100template<
typename ValueType>
102 this->schedulerHint = schedulerHint;
105template<
typename ValueType>
107 this->schedulerHint = schedulerHint;
110template<
typename ValueType>
112 return noEndComponentsInMaybeStates;
115template<
typename ValueType>
117 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(uint_fast64_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)