BDD(1)

NAME
bdd - Ordered binary decision diagrams representation

DESCRIPTION
libbdd.a is a library that allows the representation of a boolean function by a binary decision diagram (BDD). A BDD is a canonical graphic representation for a boolean function. This canonical form enables to test for equivalence or satisfiability. All the functions produce a reduced graph. The number of nodes is limited to 500.000 nodes corresponding to 10 Mb in memory.
Functions are divided into two groups, the zero level functions (suffixed by Bdd) are used to manage BDDs at a low level. A unique Index must be associated to a identifier signal and the BDDs have to be create by calling the applyBdd() function. The first level functions (suffixed by Cct) manage a multi-BDD associated to a combinatory part of a logical circuit. This description can be considered like a set of boolean equations :
Output0 = F0(Input0, ... ,Inputn), ... ,Outputm = Fm(Input0, ... ,Inputn).
Each function F0, .. , Fn is represented by a BDD in wich each input is associated to an index.

Low level functions and procedures

addListBdd
    - adds a BDD to a chained list of BDDs.

applyBdd
    - applies an operator to a list of BDDs.

applyBinBdd
    - applies an operator to two BDDs.

composeBdd
    - substitutes an index by a BDD in another BDD.

constraintBdd
    - restricts a BDD to another BDD.

createNodeTermBdd
    - creates a terminal node of primary input.

destroyBdd
    - removes the BDDs system.

displayBdd
    - displays a BDD.

gcNodeBdd
    - does a garbage collection.

initializeBdd
    - initializes the BDDs system.

markAllBdd
    - marks all the nodes of the BDDs system.

markBdd
    - marks all the nodes of a BDD.

notBdd
    - complements a BDD.

numberNodeAllBdd
    - counts the number of nodes used in the BDDs system.

numberNodeBdd
    - counts the number of nodes used in a BDD.

resetBdd
    - resets the BDDs system.

simplifDcOneBdd
    - simplifies a BDD with don't cares on its on-set part.

simplifDcZeroBdd
    - simplifies a BDD with don't cares on its off-set part.

supportChain_listBdd
    - returns a chained list of nodes that are used in a given BDD.

upVarBdd
    - brings up an index in a BDD.

High level functions and procedures

ablToBddCct
    - converts an ABL into a BDD within a circuit.

addInputCct
    - adds an input to a circuit.

addOutputCct
    - adds an output to a circuit.

bddToAblcct
    - converts a BDD into an ABL.

composeCct
    - composes all outputs within a circuit with a BDD.

countNodeCct
    - counts the number of nodes used within a circuit.

constraintCct
    - restricts all outputs with a BDD constraint within a circuit.

cpOrderCct
    - copies the association order of the inputs with the indexes in another circuit.

destroyCctfP
    - removes a circuit.

displayCct
    - displays a circuit.

gcNodeCct
    - does a garbarge collection.

initializeCct
    - creates a circuit.

proofCct
    - checks the equivalence of two circuits.

searchInputCct
    - searches for the index number associated to an input.

searchOutputCct
    - searches for the BDD associated to an output.

resetCct
    - resets a circuit.

upVarCct
    - brings up the index of a primary input within a circuit.

SEE ALSO
log(1), abl(1), addListBdd(3), applyBdd(3), applyBinBdd(3), composeBdd(3), constraintBdd(3), createNodeTermBdd(3), destroyBdd(3), displayBdd(3), gcNodeBdd(3), initializeBdd(3), markBdd(3), markAllBdd(3), notBdd(3), numberNodeAllBdd(3), numberNodeBdd(3), resetBdd(3), simplifDcOneBdd(3), simplifDcZeroBdd(3), supportChain_listBdd(3), upVarBdd(3), ablToBddCct(3), addInputCct(3), addOutputCct(3). bddToAblCct(3). composeCct(3), constraintCct(3), cpOrderCct(3), destroyCct(3), displayCct(3), gcNodeCct(3), initializeCct(3), numberNodeCct(3), proofCct(3), resetCct(3), searchInputCct(3), searchOutputCct(3), upVarCct(3).