A Zero-suppressed Decision Diagram (ZDD) represents a family of a set of \( n \) numbers, i.e. an \( S \subseteq 2^{\{ 0, 1, \dots, n-1 \}} \).
More...
|
| zdd | adiar::zdd_terminal (bool value) |
| | The ZDD of only a single terminal.
|
| |
|
zdd | adiar::zdd_empty () |
| | The empty family, i.e. Ø .
|
| |
|
zdd | adiar::zdd_null () |
| | The family only with the empty set, i.e. { Ø } .
|
| |
| zdd | adiar::zdd_ithvar (zdd::label_type var, const generator< zdd::label_type > &dom) |
| | The set of bitvectors over a given domain where var is set to true.
|
| |
| template<typename ForwardIt > |
| zdd | adiar::zdd_ithvar (zdd::label_type var, ForwardIt begin, ForwardIt end) |
| | The set of bitvectors over a given domain where var is set to true.
|
| |
| zdd | adiar::zdd_ithvar (zdd::label_type var) |
| | The set of bitvectors over the globally set domain where var is set to true.
|
| |
| zdd | adiar::zdd_nithvar (zdd::label_type var, const generator< zdd::label_type > &dom) |
| | The set of bitvectors over a given domain where var is set to false.
|
| |
| template<typename ForwardIt > |
| zdd | adiar::zdd_nithvar (zdd::label_type var, ForwardIt begin, ForwardIt end) |
| | The set of bitvectors over a given domain where var is set to false.
|
| |
| zdd | adiar::zdd_nithvar (zdd::label_type var) |
| | The set of bitvectors over the globally set domain where var is set to false.
|
| |
| zdd | adiar::zdd_vars (const generator< zdd::label_type > &vars) |
| | The family { { 1, 2, ..., k } }.
|
| |
| template<typename ForwardIt > |
| zdd | adiar::zdd_vars (ForwardIt begin, ForwardIt end) |
| | The family { { 1, 2, ..., k } }.
|
| |
| zdd | adiar::zdd_point (const generator< zdd::label_type > &vars) |
| | The family { { 1, 2, ..., k } } with a single bit-vector.
|
| |
| template<typename ForwardIt > |
| zdd | adiar::zdd_point (ForwardIt begin, ForwardIt end) |
| | The family { { 1, 2, ..., k } } with a single bit-vector.
|
| |
| zdd | adiar::zdd_singleton (zdd::label_type var) |
| | The family { {i} } .
|
| |
| zdd | adiar::zdd_singletons (const generator< zdd::label_type > &vars) |
| | The family { {1}, {2}, ..., {k} }.
|
| |
| template<typename ForwardIt > |
| zdd | adiar::zdd_singletons (ForwardIt begin, ForwardIt end) |
| | The family { {1}, {2}, ..., {k} }.
|
| |
| zdd | adiar::zdd_powerset (const generator< zdd::label_type > &vars) |
| | The powerset of all given variables.
|
| |
| template<typename ForwardIt > |
| zdd | adiar::zdd_powerset (ForwardIt begin, ForwardIt end) |
| | The powerset of all given variables.
|
| |
| zdd | adiar::zdd_bot (const generator< zdd::label_type > &dom) |
| | Bottom of the powerset lattice.
|
| |
| template<typename ForwardIt > |
| zdd | adiar::zdd_bot (ForwardIt begin, ForwardIt end) |
| | Bottom of the powerset lattice.
|
| |
| zdd | adiar::zdd_bot () |
| | Bottom of the powerset lattice.
|
| |
| zdd | adiar::zdd_top (const generator< zdd::label_type > &dom) |
| | Top of the powerset lattice.
|
| |
| template<typename ForwardIt > |
| zdd | adiar::zdd_top (ForwardIt begin, ForwardIt end) |
| | Top of the powerset lattice.
|
| |
| zdd | adiar::zdd_top () |
| | Top of the powerset lattice.
|
| |
| __zdd | adiar::zdd_binop (const zdd &A, const zdd &B, const predicate< bool, bool > &op) |
| | Apply a binary operator between the sets of two families.
|
| |
|
__zdd | adiar::zdd_binop (const exec_policy &ep, const zdd &A, const zdd &B, const predicate< bool, bool > &op) |
| | Apply a binary operator between the sets of two families.
|
| |
| __zdd | adiar::zdd_union (const zdd &A, const zdd &B) |
| | The union of two families of sets.
|
| |
|
__zdd | adiar::zdd_union (const exec_policy &ep, const zdd &A, const zdd &B) |
| | The union of two families of sets.
|
| |
| __zdd | adiar::operator| (const zdd &lhs, const zdd &rhs) |
| |
| zdd | adiar::operator+ (const zdd &A) |
| |
|
__zdd | adiar::operator+ (const zdd &lhs, const zdd &rhs) |
| |
| __zdd | adiar::zdd_intsec (const zdd &A, const zdd &B) |
| | The intersection of two families of sets.
|
| |
|
__zdd | adiar::zdd_intsec (const exec_policy &ep, const zdd &A, const zdd &B) |
| | The intersection of two families of sets.
|
| |
| __zdd | adiar::operator& (const zdd &lhs, const zdd &rhs) |
| |
| __zdd | adiar::operator* (const zdd &lhs, const zdd &rhs) |
| |
| __zdd | adiar::zdd_diff (const zdd &A, const zdd &B) |
| | The set difference of two families of sets.
|
| |
|
__zdd | adiar::zdd_diff (const exec_policy &ep, const zdd &A, const zdd &B) |
| | The set difference of two families of sets.
|
| |
| __zdd | adiar::operator- (const zdd &A) |
| |
| __zdd | adiar::operator- (const zdd &lhs, const zdd &rhs) |
| |
| __zdd | adiar::zdd_change (const zdd &A, const generator< zdd::label_type > &vars) |
| | The symmetric difference between each set in the family and the given set of variables.
|
| |
|
__zdd | adiar::zdd_change (const exec_policy &ep, const zdd &A, const generator< zdd::label_type > &vars) |
| | The symmetric difference between each set in the family and the given set of variables.
|
| |
| template<typename ForwardIt > |
| __zdd | adiar::zdd_change (const zdd &A, ForwardIt begin, ForwardIt end) |
| | The symmetric difference between each set in the family and the given set of variables.
|
| |
|
template<typename ForwardIt > |
| __zdd | adiar::zdd_change (const exec_policy &ep, const zdd &A, ForwardIt begin, ForwardIt end) |
| | The symmetric difference between each set in the family and the given set of variables.
|
| |
| __zdd | adiar::zdd_complement (const zdd &A, const generator< zdd::label_type > &dom) |
| | Complement of A within the given domain.
|
| |
|
__zdd | adiar::zdd_complement (const exec_policy &ep, const zdd &A, const generator< zdd::label_type > &dom) |
| | Complement of A within the given domain.
|
| |
| template<typename ForwardIt > |
| __zdd | adiar::zdd_complement (const zdd &A, ForwardIt begin, ForwardIt end) |
| | Complement of A within the given domain.
|
| |
|
template<typename ForwardIt > |
| __zdd | adiar::zdd_complement (const exec_policy &ep, const zdd &A, ForwardIt begin, ForwardIt end) |
| | Complement of A within the given domain.
|
| |
| __zdd | adiar::zdd_complement (const zdd &A) |
| | Complement of A within the global Variable Domain.
|
| |
|
__zdd | adiar::zdd_complement (const exec_policy &ep, const zdd &A) |
| | Complement of A within the global Variable Domain.
|
| |
| __zdd | adiar::operator~ (const zdd &A) |
| |
| __zdd | adiar::zdd_expand (const zdd &A, const generator< zdd::label_type > &vars) |
| | Expands the domain of the given ZDD to also include the given set of labels.
|
| |
|
__zdd | adiar::zdd_expand (const exec_policy &ep, const zdd &A, const generator< zdd::label_type > &vars) |
| | Expands the domain of the given ZDD to also include the given set of labels.
|
| |
| template<typename ForwardIt > |
| __zdd | adiar::zdd_expand (const zdd &A, ForwardIt begin, ForwardIt end) |
| | Expands the domain of the given ZDD to also include the given set of labels.
|
| |
|
template<typename ForwardIt > |
| __zdd | adiar::zdd_expand (const exec_policy &ep, const zdd &A, ForwardIt begin, ForwardIt end) |
| | Expands the domain of the given ZDD to also include the given set of labels.
|
| |
| __zdd | adiar::zdd_offset (const zdd &A, zdd::label_type var) |
| | Subset that do not include the given element.
|
| |
|
__zdd | adiar::zdd_offset (const exec_policy &ep, const zdd &A, zdd::label_type var) |
| | Subset that do not include the given element.
|
| |
| __zdd | adiar::zdd_offset (const zdd &A) |
| | Subset that do not include the top variable.
|
| |
|
__zdd | adiar::zdd_offset (const exec_policy &ep, const zdd &A) |
| | Subset that do not include the top variable.
|
| |
| __zdd | adiar::zdd_offset (const zdd &A, const generator< zdd::label_type > &vars) |
| | Subset that do not include the given set of variables.
|
| |
|
__zdd | adiar::zdd_offset (const exec_policy &ep, const zdd &A, const generator< zdd::label_type > &vars) |
| | Subset that do not include the given set of variables.
|
| |
| template<typename ForwardIt > |
| __zdd | adiar::zdd_offset (const zdd &A, ForwardIt begin, ForwardIt end) |
| | Subset that do not include the given set of variables.
|
| |
|
template<typename ForwardIt > |
| __zdd | adiar::zdd_offset (const exec_policy &ep, const zdd &A, ForwardIt begin, ForwardIt end) |
| | Subset that do not include the given set of variables.
|
| |
| __zdd | adiar::zdd_onset (const zdd &A, zdd::label_type var) |
| | Subset that do include the given element.
|
| |
|
__zdd | adiar::zdd_onset (const exec_policy &ep, const zdd &A, zdd::label_type var) |
| | Subset that do include the given element.
|
| |
| __zdd | adiar::zdd_onset (const zdd &A) |
| | Subset that do include the top variable.
|
| |
|
__zdd | adiar::zdd_onset (const exec_policy &ep, const zdd &A) |
| | Subset that do include the top variable.
|
| |
| __zdd | adiar::zdd_onset (const zdd &A, const generator< zdd::label_type > &vars) |
| | Subset that do include the given set of variables.
|
| |
|
__zdd | adiar::zdd_onset (const exec_policy &ep, const zdd &A, const generator< zdd::label_type > &vars) |
| | Subset that do include the given set of variables.
|
| |
| template<typename ForwardIt > |
| __zdd | adiar::zdd_onset (const zdd &A, ForwardIt begin, ForwardIt end) |
| | Subset that do include the given set of variables.
|
| |
|
template<typename ForwardIt > |
| __zdd | adiar::zdd_onset (const exec_policy &ep, const zdd &A, ForwardIt begin, ForwardIt end) |
| | Subset that do include the given set of variables.
|
| |
| __zdd | adiar::zdd_project (const zdd &A, const predicate< zdd::label_type > &dom) |
| | Project family of sets onto a domain, i.e. remove from every set all variables not within the domain.
|
| |
|
__zdd | adiar::zdd_project (const exec_policy &ep, const zdd &A, const predicate< zdd::label_type > &dom) |
| | Project family of sets onto a domain, i.e. remove from every set all variables not within the domain.
|
| |
| __zdd | adiar::zdd_project (const zdd &A, const generator< zdd::label_type > &dom) |
| | Project family of sets onto a domain, i.e. remove from every set all variables not within the domain.
|
| |
|
__zdd | adiar::zdd_project (const exec_policy &ep, const zdd &A, const generator< zdd::label_type > &dom) |
| | Project family of sets onto a domain, i.e. remove from every set all variables not within the domain.
|
| |
| template<typename ForwardIt > |
| __zdd | adiar::zdd_project (const zdd &A, ForwardIt begin, ForwardIt end) |
| | Project family of sets onto a domain, i.e. remove from every set all variables not within the domain.
|
| |
|
template<typename ForwardIt > |
| __zdd | adiar::zdd_project (const exec_policy &ep, const zdd &A, ForwardIt begin, ForwardIt end) |
| | Project family of sets onto a domain, i.e. remove from every set all variables not within the domain.
|
| |
| bool | adiar::zdd_iscanonical (const zdd &A) |
| | Check whether a given ZDD is canonical.
|
| |
|
bool | adiar::zdd_isterminal (const zdd &A) |
| | Whether this ZDD represents a terminal.
|
| |
|
bool | adiar::zdd_isfalse (const zdd &A) |
| | Whether this ZDD represents false terminal.
|
| |
|
bool | adiar::zdd_isempty (const zdd &A) |
| | Whether it is the empty family, i.e. Ø .
|
| |
|
bool | adiar::zdd_istrue (const zdd &A) |
| | Whether this BDD represents true terminal.
|
| |
|
bool | adiar::zdd_isnull (const zdd &A) |
| | Whether it is the null family, i.e. { Ø } .
|
| |
|
bool | adiar::zdd_ispoint (const zdd &A) |
| | Whether it contains a single bit-vector a, i.e. A = { a }.
|
| |
|
bool | adiar::zdd_equal (const zdd &A, const zdd &B) |
| | Whether they represent the same family.
|
| |
|
bool | adiar::zdd_equal (const exec_policy &ep, const zdd &A, const zdd &B) |
| | Whether they represent the same family.
|
| |
| bool | adiar::operator== (const zdd &lhs, const zdd &rhs) |
| |
|
bool | adiar::zdd_unequal (const zdd &A, const zdd &B) |
| | Whether they represent two different families.
|
| |
|
bool | adiar::zdd_unequal (const exec_policy &ep, const zdd &A, const zdd &B) |
| | Whether they represent two different families.
|
| |
| bool | adiar::operator!= (const zdd &lhs, const zdd &rhs) |
| |
|
bool | adiar::zdd_subseteq (const zdd &A, const zdd &B) |
| | Whether one family is a subset or equal to the other.
|
| |
|
bool | adiar::zdd_subseteq (const exec_policy &ep, const zdd &A, const zdd &B) |
| | Whether one family is a subset or equal to the other.
|
| |
| bool | adiar::operator<= (const zdd &lhs, const zdd &rhs) |
| |
| bool | adiar::operator>= (const zdd &lhs, const zdd &rhs) |
| |
|
bool | adiar::zdd_subset (const zdd &A, const zdd &B) |
| | Whether one family is a strict subset of the other.
|
| |
|
bool | adiar::zdd_subset (const exec_policy &ep, const zdd &A, const zdd &B) |
| | Whether one family is a strict subset of the other.
|
| |
| bool | adiar::operator< (const zdd &lhs, const zdd &rhs) |
| |
| bool | adiar::operator> (const zdd &lhs, const zdd &rhs) |
| |
|
bool | adiar::zdd_disjoint (const zdd &A, const zdd &B) |
| | Whether the two families are disjoint.
|
| |
|
bool | adiar::zdd_disjoint (const exec_policy &ep, const zdd &A, const zdd &B) |
| | Whether the two families are disjoint.
|
| |
|
size_t | adiar::zdd_nodecount (const zdd &A) |
| | The number of (internal) nodes used to represent the family of sets.
|
| |
|
zdd::label_type | adiar::zdd_varcount (const zdd &A) |
| | The number of variables that exist in the family of sets, i.e. the number of levels present in the ZDD.
|
| |
|
uint64_t | adiar::zdd_size (const zdd &A) |
| | The number of sets in the family of sets.
|
| |
|
uint64_t | adiar::zdd_size (const exec_policy &ep, const zdd &A) |
| | The number of sets in the family of sets.
|
| |
| void | adiar::zdd_support (const zdd &A, const consumer< zdd::label_type > &cb) |
| | Get (in ascending order) all of the variable labels that occur in the family.
|
| |
| template<typename OutputIt , typename = enable_if<!is_convertible<OutputIt, consumer<zdd::label_type>>>> |
| OutputIt | adiar::zdd_support (const zdd &A, OutputIt iter) |
| | Copy all of the variable labels (in ascending order) that occur in the family into the given container.
|
| |
| zdd::label_type | adiar::zdd_topvar (const zdd &f) |
| | Get the root's variable label.
|
| |
| zdd::label_type | adiar::zdd_minvar (const zdd &A) |
| | Get the minimal occurring variable in the family.
|
| |
| zdd::label_type | adiar::zdd_maxvar (const zdd &A) |
| | Get the maximal occurring variable in the family.
|
| |
| bool | adiar::zdd_contains (const zdd &A, const generator< zdd::label_type > &a) |
| | Whether the family includes the given set of labels.
|
| |
| template<typename ForwardIt > |
| bool | adiar::zdd_contains (const zdd &A, ForwardIt begin, ForwardIt end) |
| | Whether the family includes the given set of labels.
|
| |
| zdd | adiar::zdd_minelem (const zdd &A) |
| | Retrieves the lexicographically smallest set a in A.
|
| |
| void | adiar::zdd_minelem (const zdd &A, const consumer< zdd::label_type > &cb) |
| | Retrieves the lexicographically smallest set a in A.
|
| |
| template<typename OutputIt , typename = enable_if<!is_convertible<OutputIt, consumer<zdd::label_type>>>> |
| OutputIt | adiar::zdd_minelem (const zdd &A, OutputIt iter) |
| | Retrieves the lexicographically smallest set a in A.
|
| |
| zdd | adiar::zdd_maxelem (const zdd &A) |
| | Retrieves the lexicographically largest set a in A.
|
| |
| void | adiar::zdd_maxelem (const zdd &A, const consumer< zdd::label_type > &cb) |
| | Retrieves the lexicographically largest set a in A.
|
| |
| template<typename OutputIt , typename = enable_if<!is_convertible<OutputIt, consumer<zdd::label_type>>>> |
| OutputIt | adiar::zdd_maxelem (const zdd &A, OutputIt iter) |
| | Retrieves the lexicographically largest set a in A.
|
| |
| __zdd | adiar::zdd_from (const bdd &f, const generator< zdd::label_type > &dom) |
| | Obtains the ZDD that represents the same function/set as the given BDD within the given domain.
|
| |
|
__zdd | adiar::zdd_from (const exec_policy &ep, const bdd &f, const generator< zdd::label_type > &dom) |
| | Obtains the ZDD that represents the same function/set as the given BDD within the given domain.
|
| |
| template<typename ForwardIt > |
| __zdd | adiar::zdd_from (const bdd &f, ForwardIt begin, ForwardIt end) |
| | Obtains the ZDD that represents the same function/set as the given BDD within the given domain.
|
| |
|
template<typename ForwardIt > |
| __zdd | adiar::zdd_from (const exec_policy &ep, const bdd &f, ForwardIt begin, ForwardIt end) |
| | Obtains the ZDD that represents the same function/set as the given BDD within the given domain.
|
| |
| __zdd | adiar::zdd_from (const bdd &f) |
| | Obtains the ZDD that represents the same function/set as the given BDD within the global Variable Domain.
|
| |
|
__zdd | adiar::zdd_from (const exec_policy &ep, const bdd &f) |
| | Obtains the BDD that represents the same function/set as the given ZDD within the global domain.
|
| |
|
void | adiar::zdd_printdot (const zdd &A, std::ostream &out=std::cout, bool include_id=false) |
| | Output a DOT drawing of a ZDD to the given output stream.
|
| |
|
void | adiar::zdd_printdot (const zdd &A, const std::string &file_name, bool include_id=false) |
| | Output a DOT drawing of a ZDD to the file with the given name.
|
| |
A Zero-suppressed Decision Diagram (ZDD) represents a family of a set of \( n \) numbers, i.e. an \( S \subseteq 2^{\{ 0, 1, \dots, n-1 \}} \).