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

Predicative information on BDDs. More...

Functions

bool adiar::bdd_iscanonical (const bdd &f)
 Check whether a BDD is canonical.
 
bool adiar::bdd_isconst (const bdd &f)
 Whether a BDD is a constant.
 
bool adiar::bdd_isterminal (const bdd &f)
 Whether a BDD is a constant (terminal).
 
bool adiar::bdd_isfalse (const bdd &f)
 Whether a BDD is the constant false.
 
bool adiar::bdd_istrue (const bdd &f)
 Whether a BDD is the constant true.
 
bool adiar::bdd_isvar (const bdd &f)
 Whether a BDD is a function dependent on a single variable, i.e. is a literal.
 
bool adiar::bdd_isithvar (const bdd &f)
 Whether a BDD is the function of a single positive variable.
 
bool adiar::bdd_isnithvar (const bdd &f)
 Whether a BDD is the function of a single negative variable.
 
bool adiar::bdd_iscube (const bdd &f)
 Whether a BDD represents a cube.
 
bool adiar::bdd_equal (const bdd &f, const bdd &g)
 Whether the two BDDs represent the same function.
 
bool adiar::operator== (const bdd &f, const bdd &g)
 
bool adiar::bdd_unequal (const bdd &f, const bdd &g)
 Whether the two BDDs represent different functions.
 
bool adiar::operator!= (const bdd &f, const bdd &g)
 

Detailed Description

Predicative information on BDDs.

Function Documentation

◆ bdd_equal()

bool adiar::bdd_equal ( const bdd f,
const bdd g 
)

Whether the two BDDs represent the same function.

Remarks
If either f or g is an unreduced result of an immediate computation as part of evaluating bdd_equal's' parameters, one will have to pay the cost of reducing it. If you need the result later, please store it in an intermediate variable.

◆ bdd_iscanonical()

bool adiar::bdd_iscanonical ( const bdd f)

Check whether a BDD is canonical.

◆ bdd_isconst()

bool adiar::bdd_isconst ( const bdd f)

Whether a BDD is a constant.

See also
bdd_isfalse bdd_istrue

◆ bdd_iscube()

bool adiar::bdd_iscube ( const bdd f)

Whether a BDD represents a cube.

See also
bdd_cube

◆ bdd_isfalse()

bool adiar::bdd_isfalse ( const bdd f)

Whether a BDD is the constant false.

If this is used as a branch conditional, then one can also resort to merely test on f itself. That is, one can write: if (f) then { /* !bdd_isfalse(f) *‍/ } else { /* bdd_isfalse(f) *‍/ }

◆ bdd_isithvar()

bool adiar::bdd_isithvar ( const bdd f)

Whether a BDD is the function of a single positive variable.

Whether f is equivalent to \( x \).

See also
bdd_isvar bdd_ithvar

◆ bdd_isnithvar()

bool adiar::bdd_isnithvar ( const bdd f)

Whether a BDD is the function of a single negative variable.

Whether f is equivalent to \( \neg x \).

See also
bdd_isvar bdd_nithvar

◆ bdd_isterminal()

bool adiar::bdd_isterminal ( const bdd f)

Whether a BDD is a constant (terminal).

See also
bdd_isfalse bdd_istrue

◆ bdd_isvar()

bool adiar::bdd_isvar ( const bdd f)

Whether a BDD is a function dependent on a single variable, i.e. is a literal.

Whether f is equivalent to \( x \) or \( \neg x \).

See also
bdd_isithvar bdd_isnithvar

◆ bdd_unequal()

bool adiar::bdd_unequal ( const bdd f,
const bdd g 
)

Whether the two BDDs represent different functions.

Remarks
If either f or g is an unreduced result of an immediate computation as part of evaluating bdd_unequal's' parameters, one will have to pay the cost of reducing it. If you need the result later, please store it in an intermediate variable.
See also
bdd_equal

◆ operator!=()

◆ operator==()

bool adiar::operator== ( const bdd f,
const bdd g 
)
See also
bdd_equal