Storm 1.10.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ExplicitParetoCurveCheckResult.cpp
Go to the documentation of this file.
1
3
8
10
11namespace storm {
12namespace modelchecker {
13template<typename ValueType>
17
18template<typename ValueType>
20 std::vector<point_type> const& points, polytope_type const& underApproximation,
21 polytope_type const& overApproximation)
22 : ParetoCurveCheckResult<ValueType>(points, underApproximation, overApproximation), state(state) {
23 // Intentionally left empty.
24}
25
26template<typename ValueType>
28 polytope_type&& underApproximation, polytope_type&& overApproximation)
29 : ParetoCurveCheckResult<ValueType>(points, underApproximation, overApproximation), state(state) {
30 // Intentionally left empty.
31}
32
33template<typename ValueType>
35 std::vector<scheduler_type>&& schedulers, polytope_type&& underApproximation,
36 polytope_type&& overApproximation)
37 : ParetoCurveCheckResult<ValueType>(points, underApproximation, overApproximation), state(state), schedulers(schedulers) {}
38
39template<typename ValueType>
40std::unique_ptr<CheckResult> ExplicitParetoCurveCheckResult<ValueType>::clone() const {
41 return std::make_unique<ExplicitParetoCurveCheckResult<ValueType>>(this->state, this->points, this->underApproximation, this->overApproximation);
42}
43
44template<typename ValueType>
48
49template<typename ValueType>
53
54template<typename ValueType>
56 STORM_LOG_THROW(filter.isExplicitQualitativeCheckResult(), storm::exceptions::InvalidOperationException,
57 "Cannot filter explicit check result with non-explicit filter.");
58 STORM_LOG_THROW(filter.isResultForAllStates(), storm::exceptions::InvalidOperationException, "Cannot filter check result with non-complete filter.");
59 ExplicitQualitativeCheckResult const& explicitFilter = filter.asExplicitQualitativeCheckResult();
60 ExplicitQualitativeCheckResult::vector_type const& filterTruthValues = explicitFilter.getTruthValuesVector();
61
62 STORM_LOG_THROW(filterTruthValues.getNumberOfSetBits() == 1 && filterTruthValues.get(state), storm::exceptions::InvalidOperationException,
63 "The check result fails to contain some results referred to by the filter.");
64}
65
66template<typename ValueType>
70
71template<typename ValueType>
73 return schedulers.size() > 0;
74}
75
76template<typename ValueType>
77std::vector<typename ExplicitParetoCurveCheckResult<ValueType>::scheduler_type> const& ExplicitParetoCurveCheckResult<ValueType>::getSchedulers() const {
78 STORM_LOG_THROW(this->hasScheduler(), storm::exceptions::InvalidOperationException, "Unable to retrieve non-existing scheduler.");
79 return schedulers;
80}
81
82template<typename ValueType>
83std::vector<typename ExplicitParetoCurveCheckResult<ValueType>::scheduler_type>& ExplicitParetoCurveCheckResult<ValueType>::getSchedulers() {
84 STORM_LOG_THROW(this->hasScheduler(), storm::exceptions::InvalidOperationException, "Unable to retrieve non-existing scheduler.");
85 return schedulers;
86}
87
89#ifdef STORM_HAVE_CARL
91#endif
92} // namespace modelchecker
93} // namespace storm
storm::storage::sparse::state_type const & getState() const
typename ParetoCurveCheckResult< ValueType >::polytope_type polytope_type
virtual void filter(QualitativeCheckResult const &filter) override
Filters the current result wrt.
virtual std::unique_ptr< CheckResult > clone() const override
std::vector< scheduler_type > const & getSchedulers() const
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:16
uint64_t getNumberOfSetBits() const
Returns the number of bits that are set to true in this bit vector.
bool get(uint64_t index) const
Retrieves the truth value of the bit at the given index and performs a bound check.
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30
LabParser.cpp.