Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ExplicitModelCheckerHint.cpp
Go to the documentation of this file.
2
8
9namespace storm {
10namespace modelchecker {
11
12template<typename ValueType>
14 return !hasResultHint() && !hasSchedulerHint() && !hasMaybeStates();
15}
16
17template<typename ValueType>
21
22template<typename ValueType>
24 return resultHint.is_initialized();
25}
26
27template<typename ValueType>
28std::vector<ValueType> const& ExplicitModelCheckerHint<ValueType>::getResultHint() const {
29 return *resultHint;
30}
31
32template<typename ValueType>
34 return *resultHint;
35}
36
37template<typename ValueType>
38void ExplicitModelCheckerHint<ValueType>::setResultHint(boost::optional<std::vector<ValueType>> const& resultHint) {
39 this->resultHint = resultHint;
40}
41
42template<typename ValueType>
43void ExplicitModelCheckerHint<ValueType>::setResultHint(boost::optional<std::vector<ValueType>>&& resultHint) {
44 this->resultHint = resultHint;
45}
46
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;
52}
53
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;
59}
60
61template<typename ValueType>
63 return maybeStates.is_initialized();
64}
65
66template<typename ValueType>
70
71template<typename ValueType>
75
76template<typename ValueType>
78 this->maybeStates = newMaybeStates;
79}
80
81template<typename ValueType>
83 this->maybeStates = std::move(newMaybeStates);
84}
85
86template<typename ValueType>
88 return schedulerHint.is_initialized();
89}
90
91template<typename ValueType>
95
96template<typename ValueType>
100
101template<typename ValueType>
103 this->schedulerHint = schedulerHint;
104}
105
106template<typename ValueType>
108 this->schedulerHint = schedulerHint;
109}
110
111template<typename ValueType>
113 return noEndComponentsInMaybeStates;
114}
115
116template<typename ValueType>
118 noEndComponentsInMaybeStates = value;
119}
120
125
126} // namespace modelchecker
127} // namespace storm
This class contains information that might accelerate the model checking process.
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
void setMaybeStates(storm::storage::BitVector const &maybeStates)
std::vector< ValueType > const & getResultHint() const
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:16
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.
Definition Scheduler.h:18
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30