cudd  3.0.0
The University of Colorado Decision Diagram Package
Functions
cuddAddAbs.c File Reference

Quantification functions for ADDs. More...

#include "util.h"
#include "cuddInt.h"
Include dependency graph for cuddAddAbs.c:

Functions

DdNodeCudd_addExistAbstract (DdManager *manager, DdNode *f, DdNode *cube)
 Existentially Abstracts all the variables in cube from f. More...
 
DdNodeCudd_addUnivAbstract (DdManager *manager, DdNode *f, DdNode *cube)
 Universally Abstracts all the variables in cube from f. More...
 
DdNodeCudd_addOrAbstract (DdManager *manager, DdNode *f, DdNode *cube)
 Disjunctively abstracts all the variables in cube from the 0-1 ADD f. More...
 
DdNodecuddAddExistAbstractRecur (DdManager *manager, DdNode *f, DdNode *cube)
 Performs the recursive step of Cudd_addExistAbstract. More...
 
DdNodecuddAddUnivAbstractRecur (DdManager *manager, DdNode *f, DdNode *cube)
 Performs the recursive step of Cudd_addUnivAbstract. More...
 
DdNodecuddAddOrAbstractRecur (DdManager *manager, DdNode *f, DdNode *cube)
 Performs the recursive step of Cudd_addOrAbstract. More...
 
static int addCheckPositiveCube (DdManager *manager, DdNode *cube)
 Checks whether cube is an ADD representing the product of positive literals. More...
 

Detailed Description

Quantification functions for ADDs.

Author
Fabio Somenzi

Function Documentation

◆ addCheckPositiveCube()

static int addCheckPositiveCube ( DdManager manager,
DdNode cube 
)
static

Checks whether cube is an ADD representing the product of positive literals.

Returns
1 in case of success; 0 otherwise.
Side effects None

◆ Cudd_addExistAbstract()

DdNode* Cudd_addExistAbstract ( DdManager manager,
DdNode f,
DdNode cube 
)

Existentially Abstracts all the variables in cube from f.

Abstracts all the variables in cube from f by summing over all possible values taken by the variables.

Returns
the abstracted ADD.
Side effects None
See also
Cudd_addUnivAbstract Cudd_bddExistAbstract Cudd_addOrAbstract

◆ Cudd_addOrAbstract()

DdNode* Cudd_addOrAbstract ( DdManager manager,
DdNode f,
DdNode cube 
)

Disjunctively abstracts all the variables in cube from the 0-1 ADD f.

Abstracts all the variables in cube from the 0-1 ADD f by taking the disjunction over all possible values taken by the variables.

Returns
the abstracted ADD if successful; NULL otherwise.
Side effects None
See also
Cudd_addUnivAbstract Cudd_addExistAbstract

◆ Cudd_addUnivAbstract()

DdNode* Cudd_addUnivAbstract ( DdManager manager,
DdNode f,
DdNode cube 
)

Universally Abstracts all the variables in cube from f.

Abstracts all the variables in cube from f by taking the product over all possible values taken by the variable.

Returns
the abstracted ADD if successful; NULL otherwise.
Side effects None
See also
Cudd_addExistAbstract Cudd_bddUnivAbstract Cudd_addOrAbstract

◆ cuddAddExistAbstractRecur()

DdNode* cuddAddExistAbstractRecur ( DdManager manager,
DdNode f,
DdNode cube 
)

Performs the recursive step of Cudd_addExistAbstract.

Returns the ADD obtained by abstracting the variables of cube from f, if successful; NULL otherwise.

Side effects None

◆ cuddAddOrAbstractRecur()

DdNode* cuddAddOrAbstractRecur ( DdManager manager,
DdNode f,
DdNode cube 
)

Performs the recursive step of Cudd_addOrAbstract.

Returns
the ADD obtained by abstracting the variables of cube from f, if successful; NULL otherwise.
Side effects None

◆ cuddAddUnivAbstractRecur()

DdNode* cuddAddUnivAbstractRecur ( DdManager manager,
DdNode f,
DdNode cube 
)

Performs the recursive step of Cudd_addUnivAbstract.

Returns
the ADD obtained by abstracting the variables of cube from f, if successful; NULL otherwise.
Side effects None