|
Adiar 2.1.0
An External Memory Decision Diagram Library
|
Information on variables in BDDs. More...
Functions | |
| void | adiar::bdd_support (const bdd &f, const consumer< bdd::label_type > &cb) |
| Get (in ascending order) all of the variable labels that occur in the BDD. | |
| template<typename OutputIt , typename = enable_if<!is_convertible<OutputIt, consumer<bdd::label_type>>>> | |
| OutputIt | adiar::bdd_support (const bdd &f, OutputIt iter) |
| Copy all of the variable labels (in ascending order) that occur in the BDD into the given container. | |
| bdd::label_type | adiar::bdd_topvar (const bdd &f) |
| Get the root's variable label. | |
| bdd::label_type | adiar::bdd_minvar (const bdd &f) |
| Get the minimal occurring variable in the function's support. | |
| bdd::label_type | adiar::bdd_maxvar (const bdd &f) |
| Get the maximal occurring variable in the function's support. | |
| bdd | adiar::bdd_satmin (const bdd &f) |
| The lexicographically smallest cube x such that f(x) is true. | |
| bdd | adiar::bdd_satmin (const bdd &f, const generator< bdd::label_type > &d, const size_t d_size=bdd::max_label+1) |
| The lexicographically smallest x such that f(x) is true within the given domain. | |
| template<typename ForwardIt , typename = enable_if<is_const<typename ForwardIt::reference>>> | |
| bdd | adiar::bdd_satmin (const bdd &f, ForwardIt cbegin, ForwardIt cend) |
| The lexicographically smallest x such that f(x) is true. | |
| bdd | adiar::bdd_satmin (const bdd &f, const bdd &d) |
| The lexicographically smallest x such that f(x) is true. | |
| void | adiar::bdd_satmin (const bdd &f, const consumer< pair< bdd::label_type, bool > > &c) |
| The lexicographically smallest x such that f(x) is true. | |
| template<typename OutputIt , typename = enable_if<!is_convertible<OutputIt, consumer<pair<bdd::label_type, bool>>> && !is_convertible<OutputIt, bdd>>> | |
| OutputIt | adiar::bdd_satmin (const bdd &f, OutputIt iter) |
| The lexicographically smallest x such that f(x) is true. | |
| bdd | adiar::bdd_satmax (const bdd &f) |
| The lexicographically largest cube x such that f(x) is true. | |
| bdd | adiar::bdd_satmax (const bdd &f, const generator< bdd::label_type > &d, const size_t d_size=bdd::max_label+1) |
| The lexicographically largest x such that f(x) is true within the given domain. | |
| template<typename ForwardIt , typename = enable_if<is_const<typename ForwardIt::reference>>> | |
| bdd | adiar::bdd_satmax (const bdd &f, ForwardIt cbegin, ForwardIt cend) |
| The lexicographically largest x such that f(x) is true. | |
| bdd | adiar::bdd_satmax (const bdd &f, const bdd &d) |
| The lexicographically largest x such that f(x) is true. | |
| void | adiar::bdd_satmax (const bdd &f, const consumer< pair< bdd::label_type, bool > > &c) |
| The lexicographically largest x such that f(x) is true. | |
| template<typename OutputIt , typename = enable_if<!is_convertible<OutputIt, consumer<pair<bdd::label_type, bool>>> && !is_convertible<OutputIt, bdd>>> | |
| OutputIt | adiar::bdd_satmax (const bdd &f, OutputIt iter) |
| The lexicographically largest x such that f(x) is true. | |
| pair< bdd, double > | adiar::bdd_optmin (const bdd &f, const cost< bdd::label_type > &c) |
| Obtain the satisfying assignment that is minimal for the given linear cost function over the global domain. | |
| double | adiar::bdd_optmin (const bdd &f, const cost< bdd::label_type > &c, const consumer< pair< bdd::label_type, bool > > &cb) |
| Obtain the satisfying assignment that is minimal for the given linear cost function over the global domain. | |
| bool | adiar::bdd_eval (const bdd &f, const predicate< bdd::label_type > &xs) |
| Evaluate a BDD according to an assignment to its variables. | |
| bool | adiar::bdd_eval (const bdd &f, const generator< pair< bdd::label_type, bool > > &xs) |
| Evaluate a BDD according to an assignment to its variables. | |
| template<typename ForwardIt > | |
| bool | adiar::bdd_eval (const bdd &f, ForwardIt begin, ForwardIt end) |
| Evaluate a BDD according to an assignment to its variables. | |
Information on variables in BDDs.
Evaluate a BDD according to an assignment to its variables.
| f | The BDD to evaluate. |
| xs | Assignments (i,v) to variables in (in ascending order). |
| out_of_range | If traversal of the BDD leads to going beyond the end of the content of xs. |
| invalid_argument | If a level in the BDD does not exist in xs. |
Evaluate a BDD according to an assignment to its variables.
The given assignment function may assume/abuse that it is only called with the labels in a strictly increasing order.
| f | The BDD to evaluate |
| xs | An assignment function of the type \( \texttt{label\_t} \rightarrow \texttt{bool} \). |
Evaluate a BDD according to an assignment to its variables.
| f | The BDD to evaluate. |
| begin | Single-pass forward iterator that provides the assignment in ascending order. |
| end | Marks the end for begin. |
| out_of_range | If traversal of the BDD leads to going beyond the end of the content of xs. |
| invalid_argument | If a level in the BDD does not exist in xs. |
| bdd::label_type adiar::bdd_maxvar | ( | const bdd & | f | ) |
Get the maximal occurring variable in the function's support.
| invalid_argument | If f is a terminal. |
| bdd::label_type adiar::bdd_minvar | ( | const bdd & | f | ) |
Get the minimal occurring variable in the function's support.
| invalid_argument | If f is a terminal. |
Obtain the satisfying assignment that is minimal for the given linear cost function over the global domain.
| f | The BDD of feasible solutions |
| c | A (pure) function that provides the cost function's coefficient. |
| double adiar::bdd_optmin | ( | const bdd & | f, |
| const cost< bdd::label_type > & | c, | ||
| const consumer< pair< bdd::label_type, bool > > & | cb | ||
| ) |
Obtain the satisfying assignment that is minimal for the given linear cost function over the global domain.
| f | The BDD of feasible solutions |
| c | A (pure) function that provides the cost function's coefficient. |
| cb | A callback function that is called in descending order. |
f is a terminal, cb will never be called The lexicographically largest cube x such that f(x) is true.
| f | BDD of interest. |
Outputs the trace of the high-most path to the true terminal. The resulting assignment is lexicographically largest, where every variable is treated as a digit and \( x_0 > x_1 > \dots \).
true terminal reflects the maximal assignment. The lexicographically largest x such that f(x) is true.
| f | BDD of interest. |
| d | BDD cube of variables that ought to be included. |
true terminal reflects the maximal assignment.| domain_error | If bdd_iscube(d) is not satisfied. |
The lexicographically largest x such that f(x) is true.
| f | BDD of interest. |
| c | Consumer that is called in ascending order of the bdd's levels with the (var, value) pairs of the assignment. |
| bdd adiar::bdd_satmax | ( | const bdd & | f, |
| const generator< bdd::label_type > & | d, | ||
| const size_t | d_size = bdd::max_label+1 |
||
| ) |
The lexicographically largest x such that f(x) is true within the given domain.
| f | BDD of interest. |
| d | Generator of domain in ascending order. |
| d_size | Upper bound on the number of elements generated by d. |
true terminal reflects the maximal assignment. The lexicographically largest x such that f(x) is true.
| f | BDD of interest. |
| cbegin | Single-pass forward iterator of immutable variables in ascending ordering. |
| cend | Marks the end for cbegin. |
true terminal reflects the maximal assignment and (at least) includes the variables in [begin, end). | OutputIt adiar::bdd_satmax | ( | const bdd & | f, |
| OutputIt | iter | ||
| ) |
The lexicographically largest x such that f(x) is true.
| f | BDD of interest. |
| iter | Single-pass output iterator for where to place the output. |
The lexicographically smallest cube x such that f(x) is true.
Outputs the trace of the low-most path to the true terminal. The resulting assignment is lexicographically smallest, where every variable is treated as a digit and \( x_0 > x_1 > \dots \).
true terminal reflects the minimal assignment. The lexicographically smallest x such that f(x) is true.
| f | BDD of interest. |
| d | BDD cube of variables that ought to be included. |
true terminal reflects the minimal assignment.| domain_error | If bdd_iscube(d) is not satisfied. |
The lexicographically smallest x such that f(x) is true.
| f | BDD of interest. |
| c | Consumer that is called in ascending order of the bdd's levels with the (var, value) pairs of the assignment. |
| bdd adiar::bdd_satmin | ( | const bdd & | f, |
| const generator< bdd::label_type > & | d, | ||
| const size_t | d_size = bdd::max_label+1 |
||
| ) |
The lexicographically smallest x such that f(x) is true within the given domain.
| f | BDD of interest. |
| d | Generator of domain in ascending order. |
| d_size | Upper bound on the number of elements generated by d. This value is merely an allocation hint for the sake of optimisation. |
true terminal reflects the minimal assignment. The lexicographically smallest x such that f(x) is true.
| f | BDD of interest. |
| cbegin | Single-pass forward iterator of immutable variables in ascending ordering. |
| cend | Marks the end for begin. |
true terminal reflects the minimal assignment and (at least) includes the variables in [begin, end). | OutputIt adiar::bdd_satmin | ( | const bdd & | f, |
| OutputIt | iter | ||
| ) |
The lexicographically smallest x such that f(x) is true.
| f | BDD of interest. |
| iter | Single-pass output iterator for where to place the output. |
Get (in ascending order) all of the variable labels that occur in the BDD.
| f | BDD of interest. |
| cb | Callback function that consumes the variable labels. |
| OutputIt adiar::bdd_support | ( | const bdd & | f, |
| OutputIt | iter | ||
| ) |
Copy all of the variable labels (in ascending order) that occur in the BDD into the given container.
| f | BDD of interest. |
| iter | Single-pass output iterator for where to place the output. |
| bdd::label_type adiar::bdd_topvar | ( | const bdd & | f | ) |
Get the root's variable label.
| invalid_argument | If f is a terminal. |