Adiar 2.1.0
An External Memory Decision Diagram Library
Loading...
Searching...
No Matches

Information on the elements in ZDDs. More...

Functions

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.
 

Detailed Description

Information on the elements in ZDDs.

Function Documentation

◆ zdd_contains() [1/2]

bool adiar::zdd_contains ( const zdd A,
const generator< zdd::label_type > &  a 
)

Whether the family includes the given set of labels.

Parameters
ASet of interest
aGenerator of a bit-vector in ascending order. All variables geneated should be smaller than or equal to zdd::max_label.
Returns
Whether \( a \in A \)

◆ zdd_contains() [2/2]

template<typename ForwardIt >
bool adiar::zdd_contains ( const zdd A,
ForwardIt  begin,
ForwardIt  end 
)

Whether the family includes the given set of labels.

Parameters
ASet of interest
beginSingle-pass forward iterator of the set of labels in ascending order. All its values should be smaller than or equals to zdd::max_label.
endMarks the end for begin.
Returns
Whether \( \{\mathit{begin}, \dots, \mathit{end}\} \in A \)

◆ zdd_maxelem() [1/3]

zdd adiar::zdd_maxelem ( const zdd A)

Retrieves the lexicographically largest set a in A.

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 \).

Parameters
ASet of sets of interest.

◆ zdd_maxelem() [2/3]

void adiar::zdd_maxelem ( const zdd A,
const consumer< zdd::label_type > &  cb 
)

Retrieves the lexicographically largest set a in A.

Parameters
ASet of sets of interest.
cbCallback function that is called with the variables of the largest set in ascending order of the levels of A.
Precondition
A != zdd_empty()

◆ zdd_maxelem() [3/3]

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.

Parameters
ASet of sets of interest.
iterSingle-pass output iterator for where to place the output.
Returns
The output iterator at its final state.

◆ zdd_maxvar()

zdd::label_type adiar::zdd_maxvar ( const zdd A)

Get the maximal occurring variable in the family.

Exceptions
invalid_argumentIf A is a terminal.

◆ zdd_minelem() [1/3]

zdd adiar::zdd_minelem ( const zdd A)

Retrieves the lexicographically smallest set a in A.

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 \).

Parameters
ASet of sets of interest.

◆ zdd_minelem() [2/3]

void adiar::zdd_minelem ( const zdd A,
const consumer< zdd::label_type > &  cb 
)

Retrieves the lexicographically smallest set a in A.

Parameters
ASet of sets of interest.
cbCallback function that is called with the variables of the smallest set in ascending order of the levels of A.
Precondition
A != zdd_empty()

◆ zdd_minelem() [3/3]

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.

Parameters
ASet of sets of interest.
iterSingle-pass forward iterator for where to place the output.
Returns
The output iterator at its final state.

◆ zdd_minvar()

zdd::label_type adiar::zdd_minvar ( const zdd A)

Get the minimal occurring variable in the family.

Exceptions
invalid_argumentIf A is a terminal.

◆ zdd_support() [1/2]

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.

Parameters
AZDD of interest.
cbCallback function that consumes the variable labels.

◆ zdd_support() [2/2]

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.

Parameters
AZDD of interest.
iterSingle-pass output iterator for where to place the output.
Returns
The output iterator at its final state.

◆ zdd_topvar()

zdd::label_type adiar::zdd_topvar ( const zdd f)

Get the root's variable label.

Exceptions
invalid_argumentIf A is a terminal.