Storm
1.13.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MonotonicityAnnotation.cpp
Go to the documentation of this file.
1
#include "
storm-pars/modelchecker/region/monotonicity/MonotonicityAnnotation.h
"
2
3
#include "
storm-pars/modelchecker/region/monotonicity/LocalMonotonicityResult.h
"
4
#include "
storm-pars/modelchecker/region/monotonicity/Order.h
"
5
#include "
storm/adapters/RationalFunctionAdapter.h
"
6
7
namespace
storm::modelchecker
{
8
9
template
<
typename
ParametricType>
10
storm::OptionalRef<typename MonotonicityAnnotation<ParametricType>::DefaultMonotonicityAnnotation>
11
MonotonicityAnnotation<ParametricType>::getDefaultMonotonicityAnnotation
() {
12
if
(
auto
* mono = std::get_if<DefaultMonotonicityAnnotation>(&
data
)) {
13
return
*mono;
14
}
15
return
storm::NullRef
;
16
}
17
18
template
<
typename
ParametricType>
19
storm::OptionalRef<typename MonotonicityAnnotation<ParametricType>::OrderBasedMonotonicityAnnotation
>
20
MonotonicityAnnotation<ParametricType>::getOrderBasedMonotonicityAnnotation
() {
21
if
(
auto
* mono = std::get_if<OrderBasedMonotonicityAnnotation>(&
data
)) {
22
return
*mono;
23
}
24
return
storm::NullRef
;
25
}
26
27
template
<
typename
ParametricType>
28
storm::OptionalRef<typename MonotonicityAnnotation<ParametricType>::DefaultMonotonicityAnnotation
const
>
29
MonotonicityAnnotation<ParametricType>::getDefaultMonotonicityAnnotation
()
const
{
30
if
(
auto
const
* mono = std::get_if<DefaultMonotonicityAnnotation>(&
data
)) {
31
return
*mono;
32
}
33
return
storm::NullRef
;
34
}
35
36
template
<
typename
ParametricType>
37
storm::OptionalRef<typename MonotonicityAnnotation<ParametricType>::OrderBasedMonotonicityAnnotation
const
>
38
MonotonicityAnnotation<ParametricType>::getOrderBasedMonotonicityAnnotation
()
const
{
39
if
(
auto
const
* mono = std::get_if<OrderBasedMonotonicityAnnotation>(&
data
)) {
40
return
*mono;
41
}
42
return
storm::NullRef
;
43
}
44
45
template
<
typename
ParametricType>
46
storm::OptionalRef<storm::analysis::MonotonicityResult<typename MonotonicityAnnotation<ParametricType>::VariableType
>
const
>
47
MonotonicityAnnotation<ParametricType>::getGlobalMonotonicityResult
()
const
{
48
storm::OptionalRef<storm::analysis::MonotonicityResult<VariableType>
const
> result;
49
if
(
auto
defaultMono =
getDefaultMonotonicityAnnotation
(); defaultMono.has_value() && defaultMono->globalMonotonicity) {
50
result.
reset
(*defaultMono->globalMonotonicity);
51
}
else
if
(
auto
orderMono =
getOrderBasedMonotonicityAnnotation
(); orderMono.has_value() && orderMono->localMonotonicityResult) {
52
if
(
auto
globalRes = orderMono->localMonotonicityResult->getGlobalMonotonicityResult()) {
53
result.
reset
(*globalRes);
54
}
55
}
56
return
result;
57
}
58
59
template
struct
MonotonicityAnnotation<storm::RationalFunction>
;
60
}
// namespace storm::modelchecker
LocalMonotonicityResult.h
MonotonicityAnnotation.h
Order.h
RationalFunctionAdapter.h
storm::OptionalRef
Helper class that optionally holds a reference to an object of type T.
Definition
OptionalRef.h:48
storm::OptionalRef::reset
void reset()
Unsets the reference.
Definition
OptionalRef.h:175
storm::modelchecker
Definition
AbstractAbstractionRefinementModelChecker.h:37
storm::NullRef
constexpr NullRefType NullRef
Definition
OptionalRef.h:31
storm::modelchecker::MonotonicityAnnotation
Definition
MonotonicityAnnotation.h:23
storm::modelchecker::MonotonicityAnnotation::getGlobalMonotonicityResult
storm::OptionalRef< storm::analysis::MonotonicityResult< VariableType > const > getGlobalMonotonicityResult() const
Definition
MonotonicityAnnotation.cpp:47
storm::modelchecker::MonotonicityAnnotation::getDefaultMonotonicityAnnotation
storm::OptionalRef< DefaultMonotonicityAnnotation > getDefaultMonotonicityAnnotation()
Definition
MonotonicityAnnotation.cpp:11
storm::modelchecker::MonotonicityAnnotation::getOrderBasedMonotonicityAnnotation
storm::OptionalRef< OrderBasedMonotonicityAnnotation > getOrderBasedMonotonicityAnnotation()
Definition
MonotonicityAnnotation.cpp:20
storm::modelchecker::MonotonicityAnnotation::data
std::variant< DefaultMonotonicityAnnotation, OrderBasedMonotonicityAnnotation > data
Definition
MonotonicityAnnotation.h:42
src
storm-pars
modelchecker
region
monotonicity
MonotonicityAnnotation.cpp
Generated by
1.15.0