Storm 1.13.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
CheckResult.cpp
Go to the documentation of this file.
2
13
14namespace storm {
15namespace modelchecker {
17 return false;
18}
19
21 return false;
22}
23
25 return false;
26}
27
29 return false;
30}
31
33 return false;
34}
35
37 return false;
38}
39
41 return false;
42}
43
45 return false;
46}
47
48std::ostream& operator<<(std::ostream& out, CheckResult const& checkResult) {
49 checkResult.writeToStream(out);
50 return out;
51}
52
54 return false;
55}
56
58 return false;
59}
60
62 return false;
63}
64
66 return false;
67}
68
70 return false;
71}
72
74 return false;
75}
76
78 return false;
79}
80
81template<typename ValueType>
83 STORM_LOG_THROW(this->hasValueType<ValueType>(), storm::exceptions::InvalidOperationException, "Unexpected value type in check result.");
84 return dynamic_cast<ExplicitQualitativeCheckResult<ValueType>&>(*this);
85}
86
87template<typename ValueType>
89 STORM_LOG_THROW(this->hasValueType<ValueType>(), storm::exceptions::InvalidOperationException, "Unexpected value type in check result.");
90 return dynamic_cast<ExplicitQualitativeCheckResult<ValueType> const&>(*this);
91}
92
93template<typename ValueType>
95 STORM_LOG_THROW(this->hasValueType<ValueType>(), storm::exceptions::InvalidOperationException, "Unexpected value type in check result.");
96 return dynamic_cast<ExplicitQuantitativeCheckResult<ValueType>&>(*this);
97}
98
99template<typename ValueType>
101 STORM_LOG_THROW(this->hasValueType<ValueType>(), storm::exceptions::InvalidOperationException, "Unexpected value type in check result.");
102 return dynamic_cast<ExplicitQuantitativeCheckResult<ValueType> const&>(*this);
103}
104
105template<typename ValueType>
109
110template<typename ValueType>
114
115template<typename ValueType>
119
120template<typename ValueType>
124
128
130 return dynamic_cast<QualitativeCheckResult const&>(*this);
131}
132
133template<typename ValueType>
135 STORM_LOG_THROW(this->hasValueType<ValueType>(), storm::exceptions::InvalidOperationException, "Unexpected value type in check result.");
136 return static_cast<QuantitativeCheckResult<ValueType>&>(*this);
137}
138
139template<typename ValueType>
141 STORM_LOG_THROW(this->hasValueType<ValueType>(), storm::exceptions::InvalidOperationException, "Unexpected value type in check result.");
142 return static_cast<QuantitativeCheckResult<ValueType> const&>(*this);
143}
144
145template<storm::dd::DdType Type>
149
150template<storm::dd::DdType Type>
154
155template<storm::dd::DdType Type, typename ValueType>
159
160template<storm::dd::DdType Type, typename ValueType>
164
165template<storm::dd::DdType Type, typename ValueType>
169
170template<storm::dd::DdType Type, typename ValueType>
174
175template<storm::dd::DdType Type, typename ValueType>
179
180template<storm::dd::DdType Type, typename ValueType>
184
186 return false;
187}
188
189bool CheckResult::hasValueType(std::type_info const& t) const {
190 return false;
191}
192
193// Explicitly instantiate the template functions.
194template QuantitativeCheckResult<double>& CheckResult::asQuantitativeCheckResult();
195template QuantitativeCheckResult<double> const& CheckResult::asQuantitativeCheckResult() const;
196
197template ExplicitQuantitativeCheckResult<double>& CheckResult::asExplicitQuantitativeCheckResult();
198template ExplicitQuantitativeCheckResult<double> const& CheckResult::asExplicitQuantitativeCheckResult() const;
199template ExplicitQualitativeCheckResult<double>& CheckResult::asExplicitQualitativeCheckResult();
200template ExplicitQualitativeCheckResult<double> const& CheckResult::asExplicitQualitativeCheckResult() const;
201template ExplicitParetoCurveCheckResult<double>& CheckResult::asExplicitParetoCurveCheckResult();
202template ExplicitParetoCurveCheckResult<double> const& CheckResult::asExplicitParetoCurveCheckResult() const;
203template LexicographicCheckResult<double>& CheckResult::asLexicographicCheckResult();
204template LexicographicCheckResult<double> const& CheckResult::asLexicographicCheckResult() const;
205
206template SymbolicQualitativeCheckResult<storm::dd::DdType::CUDD>& CheckResult::asSymbolicQualitativeCheckResult();
207template SymbolicQualitativeCheckResult<storm::dd::DdType::CUDD> const& CheckResult::asSymbolicQualitativeCheckResult() const;
208template SymbolicQuantitativeCheckResult<storm::dd::DdType::CUDD, double>& CheckResult::asSymbolicQuantitativeCheckResult();
209template SymbolicQuantitativeCheckResult<storm::dd::DdType::CUDD, double> const& CheckResult::asSymbolicQuantitativeCheckResult() const;
210template SymbolicParetoCurveCheckResult<storm::dd::DdType::CUDD, double>& CheckResult::asSymbolicParetoCurveCheckResult();
211template SymbolicParetoCurveCheckResult<storm::dd::DdType::CUDD, double> const& CheckResult::asSymbolicParetoCurveCheckResult() const;
212template HybridQuantitativeCheckResult<storm::dd::DdType::CUDD, double>& CheckResult::asHybridQuantitativeCheckResult();
213template HybridQuantitativeCheckResult<storm::dd::DdType::CUDD, double> const& CheckResult::asHybridQuantitativeCheckResult() const;
214
215template SymbolicQualitativeCheckResult<storm::dd::DdType::Sylvan>& CheckResult::asSymbolicQualitativeCheckResult();
216template SymbolicQualitativeCheckResult<storm::dd::DdType::Sylvan> const& CheckResult::asSymbolicQualitativeCheckResult() const;
217template SymbolicQuantitativeCheckResult<storm::dd::DdType::Sylvan, double>& CheckResult::asSymbolicQuantitativeCheckResult();
218template SymbolicQuantitativeCheckResult<storm::dd::DdType::Sylvan, double> const& CheckResult::asSymbolicQuantitativeCheckResult() const;
219template SymbolicQuantitativeCheckResult<storm::dd::DdType::Sylvan, storm::RationalNumber>& CheckResult::asSymbolicQuantitativeCheckResult();
220template SymbolicQuantitativeCheckResult<storm::dd::DdType::Sylvan, storm::RationalNumber> const& CheckResult::asSymbolicQuantitativeCheckResult() const;
221template SymbolicQuantitativeCheckResult<storm::dd::DdType::Sylvan, storm::RationalFunction>& CheckResult::asSymbolicQuantitativeCheckResult();
222template SymbolicQuantitativeCheckResult<storm::dd::DdType::Sylvan, storm::RationalFunction> const& CheckResult::asSymbolicQuantitativeCheckResult() const;
223template SymbolicParetoCurveCheckResult<storm::dd::DdType::Sylvan, double>& CheckResult::asSymbolicParetoCurveCheckResult();
224template SymbolicParetoCurveCheckResult<storm::dd::DdType::Sylvan, double> const& CheckResult::asSymbolicParetoCurveCheckResult() const;
225template HybridQuantitativeCheckResult<storm::dd::DdType::Sylvan, double>& CheckResult::asHybridQuantitativeCheckResult();
226template HybridQuantitativeCheckResult<storm::dd::DdType::Sylvan, double> const& CheckResult::asHybridQuantitativeCheckResult() const;
227
228template QuantitativeCheckResult<storm::RationalNumber>& CheckResult::asQuantitativeCheckResult();
229template QuantitativeCheckResult<storm::RationalNumber> const& CheckResult::asQuantitativeCheckResult() const;
230
231template ExplicitQuantitativeCheckResult<storm::RationalNumber>& CheckResult::asExplicitQuantitativeCheckResult();
232template ExplicitQuantitativeCheckResult<storm::RationalNumber> const& CheckResult::asExplicitQuantitativeCheckResult() const;
233template ExplicitQualitativeCheckResult<storm::RationalNumber>& CheckResult::asExplicitQualitativeCheckResult();
234template ExplicitQualitativeCheckResult<storm::RationalNumber> const& CheckResult::asExplicitQualitativeCheckResult() const;
235
236template QuantitativeCheckResult<storm::RationalFunction>& CheckResult::asQuantitativeCheckResult();
237template QuantitativeCheckResult<storm::RationalFunction> const& CheckResult::asQuantitativeCheckResult() const;
238
239template ExplicitQuantitativeCheckResult<storm::RationalFunction>& CheckResult::asExplicitQuantitativeCheckResult();
240template ExplicitQuantitativeCheckResult<storm::RationalFunction> const& CheckResult::asExplicitQuantitativeCheckResult() const;
241
242template ExplicitQualitativeCheckResult<storm::RationalFunction>& CheckResult::asExplicitQualitativeCheckResult();
243template ExplicitQualitativeCheckResult<storm::RationalFunction> const& CheckResult::asExplicitQualitativeCheckResult() const;
244
245template ExplicitParetoCurveCheckResult<storm::RationalNumber>& CheckResult::asExplicitParetoCurveCheckResult();
246template ExplicitParetoCurveCheckResult<storm::RationalNumber> const& CheckResult::asExplicitParetoCurveCheckResult() const;
247
248template LexicographicCheckResult<storm::RationalNumber>& CheckResult::asLexicographicCheckResult();
249template LexicographicCheckResult<storm::RationalNumber> const& CheckResult::asLexicographicCheckResult() const;
250
251// Instantiation for storm::Interval (carl::Interval<double>)
252template ExplicitQualitativeCheckResult<storm::Interval>& CheckResult::asExplicitQualitativeCheckResult();
253template ExplicitQualitativeCheckResult<storm::Interval> const& CheckResult::asExplicitQualitativeCheckResult() const;
254
255} // namespace modelchecker
256} // namespace storm
virtual bool isSymbolicParetoCurveCheckResult() const
virtual bool isSymbolicQuantitativeCheckResult() const
virtual bool isExplicit() const
virtual bool isQuantitative() const
virtual bool isHybridQuantitativeCheckResult() const
virtual bool isSymbolicQualitativeCheckResult() const
virtual bool isExplicitQuantitativeCheckResult() const
ExplicitParetoCurveCheckResult< ValueType > & asExplicitParetoCurveCheckResult()
QuantitativeCheckResult< ValueType > & asQuantitativeCheckResult()
virtual bool isParetoCurveCheckResult() const
SymbolicQuantitativeCheckResult< Type, ValueType > & asSymbolicQuantitativeCheckResult()
ExplicitQualitativeCheckResult< ValueType > & asExplicitQualitativeCheckResult()
virtual bool isResultForAllStates() const
virtual bool isExplicitQualitativeCheckResult() const
LexicographicCheckResult< ValueType > & asLexicographicCheckResult()
virtual std::ostream & writeToStream(std::ostream &out) const =0
QualitativeCheckResult & asQualitativeCheckResult()
SymbolicQualitativeCheckResult< Type > & asSymbolicQualitativeCheckResult()
virtual bool isSymbolic() const
SymbolicParetoCurveCheckResult< Type, ValueType > & asSymbolicParetoCurveCheckResult()
virtual bool isLexicographicCheckResult() const
virtual bool isQualitative() const
virtual bool hasScheduler() const
virtual bool isExplicitParetoCurveCheckResult() const
bool hasValueType() const
Checks whether the ValueType of the result matches the given type.
virtual bool isHybrid() const
ExplicitQuantitativeCheckResult< ValueType > & asExplicitQuantitativeCheckResult()
HybridQuantitativeCheckResult< Type, ValueType > & asHybridQuantitativeCheckResult()
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30
std::ostream & operator<<(std::ostream &os, RegionCheckEngine const &e)