Storm
1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
DdEnvironment.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <cstdint>
4
5
#include "
storm/environment/Environment.h
"
6
#include "
storm/environment/SubEnvironment.h
"
7
#include "
storm/storage/dd/DdType.h
"
8
9
namespace
storm
{
10
11
class
CuddDdManagerEnvironment
;
12
class
SylvanDdManagerEnvironment
;
13
14
// Explicitly instantiated once in CoreEnvironments.cpp
15
// Avoids redundant re-instantiation elsewhere
16
extern
template
class
SubEnvironment<CuddDdManagerEnvironment>
;
17
extern
template
class
SubEnvironment<SylvanDdManagerEnvironment>
;
18
19
// Select the sub-environment that belongs to the given DD type.
20
template
<storm::dd::DdType Type>
21
struct
DdEnvironmentSelector
{
22
static_assert
(Type ==
storm::dd::DdType::CUDD
|| Type ==
storm::dd::DdType::Sylvan
,
"Unhandled DD type."
);
23
};
24
template
<>
25
struct
DdEnvironmentSelector<storm::dd::DdType::CUDD>
{
26
using
type
=
CuddDdManagerEnvironment
;
27
};
28
template
<>
29
struct
DdEnvironmentSelector<storm::dd::DdType::Sylvan>
{
30
using
type
=
SylvanDdManagerEnvironment
;
31
};
32
33
class
DdEnvironment
{
34
public
:
35
DdEnvironment
();
36
~DdEnvironment
();
37
38
CuddDdManagerEnvironment
&
cudd
();
39
CuddDdManagerEnvironment
const
&
cudd
()
const
;
40
41
SylvanDdManagerEnvironment
&
sylvan
();
42
SylvanDdManagerEnvironment
const
&
sylvan
()
const
;
43
47
template
<storm::dd::DdType Type>
48
typename
DdEnvironmentSelector<Type>::type
&
get
();
49
50
template
<storm::dd::DdType Type>
51
typename
DdEnvironmentSelector<Type>::type
const
&
get
()
const
;
52
53
private
:
54
SubEnvironment<CuddDdManagerEnvironment>
cuddEnvironment;
55
SubEnvironment<SylvanDdManagerEnvironment>
sylvanEnvironment;
56
};
57
58
}
// namespace storm
DdType.h
Environment.h
SubEnvironment.h
storm::CuddDdManagerEnvironment
Definition
CuddDdManagerEnvironment.h:9
storm::DdEnvironment::get
DdEnvironmentSelector< Type >::type & get()
Retrieves the sub-environment belonging to the given DD type.
Definition
DdEnvironment.cpp:33
storm::DdEnvironment::cudd
CuddDdManagerEnvironment & cudd()
Definition
DdEnvironment.cpp:24
storm::DdEnvironment::get
DdEnvironmentSelector< Type >::type const & get() const
storm::DdEnvironment::DdEnvironment
DdEnvironment()
Definition
DdEnvironment.cpp:8
storm::DdEnvironment::sylvan
SylvanDdManagerEnvironment & sylvan()
Definition
DdEnvironment.cpp:16
storm::SubEnvironment
Definition
SubEnvironment.h:11
storm::SylvanDdManagerEnvironment
Definition
SylvanDdManagerEnvironment.h:7
storm::dd::DdType::Sylvan
@ Sylvan
Definition
DdType.h:5
storm::dd::DdType::CUDD
@ CUDD
Definition
DdType.h:5
storm
Definition
AutomaticSettings.cpp:13
storm::DdEnvironmentSelector< storm::dd::DdType::CUDD >::type
CuddDdManagerEnvironment type
Definition
DdEnvironment.h:26
storm::DdEnvironmentSelector< storm::dd::DdType::Sylvan >::type
SylvanDdManagerEnvironment type
Definition
DdEnvironment.h:30
storm::DdEnvironmentSelector
Definition
DdEnvironment.h:21
src
storm
environment
dd
DdEnvironment.h
Generated by
1.15.0