1#ifndef STORM_STORAGE_DD_DD_H_
2#define STORM_STORAGE_DD_DD_H_
14template<DdType LibraryType>
17template<DdType LibraryType>
20template<DdType LibraryType>
33 virtual ~Dd() =
default;
105 virtual void exportToDot(std::string
const& filename,
bool showVariablesIfPossible =
true)
const = 0;
133 void addMetaVariables(std::set<storm::expressions::Variable>
const& metaVariables);
171 std::set<storm::expressions::Variable>
const& containedMetaVariables = std::set<storm::expressions::Variable>());
196 std::set<storm::expressions::Variable> containedMetaVariables;
void addMetaVariable(storm::expressions::Variable const &metaVariable)
Adds the given meta variable to the set of meta variables that are contained in this DD.
virtual uint_fast64_t getNonZeroCount() const =0
Retrieves the number of encodings that are mapped to a non-zero value.
virtual void exportToText(std::string const &filename) const =0
Exports the DD to the given file in the dot format.
static std::set< storm::expressions::Variable > joinMetaVariables(storm::dd::Dd< LibraryType > const &first, storm::dd::Dd< LibraryType > const &second)
Retrieves the set of meta variables contained in both DDs.
virtual uint_fast64_t getNodeCount() const =0
Retrieves the number of nodes necessary to represent the DD.
Dd & operator=(Dd< LibraryType > &&other)=default
virtual Bdd< LibraryType > getSupport() const =0
Retrieves the support of the current DD.
void addMetaVariables(std::set< storm::expressions::Variable > const &metaVariables)
Adds the given set of meta variables to the DD.
virtual uint_fast64_t getLeafCount() const =0
Retrieves the number of leaves of the DD.
void removeMetaVariables(std::set< storm::expressions::Variable > const &metaVariables)
Removes the given set of meta variables from the DD.
bool containsMetaVariable(storm::expressions::Variable const &metaVariable) const
Retrieves whether the given meta variable is contained in the DD.
Dd & operator=(Dd< LibraryType > const &other)=default
void removeMetaVariable(storm::expressions::Variable const &metaVariable)
Removes the given meta variable to the set of meta variables that are contained in this DD.
std::vector< uint_fast64_t > getSortedVariableIndices() const
Retrieves the (sorted) list of the variable indices of DD variables contained in this DD.
Dd(Dd< LibraryType > &&other)=default
virtual uint_fast64_t getIndex() const =0
Retrieves the index of the topmost variable in the DD.
static std::set< storm::expressions::Variable > subtractMetaVariables(storm::dd::Dd< LibraryType > const &first, storm::dd::Dd< LibraryType > const &second)
Retrieves the set of meta variables that are contained in the first but not the second DD.
virtual uint_fast64_t getLevel() const =0
Retrieves the level of the topmost variable in the DD.
std::set< storm::expressions::Variable > const & getContainedMetaVariables() const
Retrieves the set of all meta variables contained in the DD.
virtual void exportToDot(std::string const &filename, bool showVariablesIfPossible=true) const =0
Exports the DD to the given file in the dot format.
DdManager< LibraryType > & getDdManager() const
Retrieves the manager that is responsible for this DD.
Dd(Dd< LibraryType > const &other)=default
bool containsMetaVariables(std::set< storm::expressions::Variable > const &metaVariables) const
Retrieves whether the given meta variables are all contained in the DD.