addListBdd(3)
adds a BDD to a chained list of BDDs
SYNOPSYS
#include "logmmm.h"
chain_list *addListBdd(pt,pBdd)
chain_list *pt;
pNode pBdd;
PARAMETERS
- pt
-
old chain_list pointer
- pBdd
-
BDD to add
DESCRIPTION
addListBdd() adds pBdd to pt. This function computes an optimal reordering on pt that minimizes the number of nodes when the applyBdd() function is called.
EXAMPLE
#include "mutnnn.h" /* mbk utilities */
#include "logmmm.h"
pNode nodeA,nodeB,nodeC;
pNode res;
chain_list *pt;
initializeBdd(SMALL_BDD);
nodeA = createNodeTermBdd(3);
nodeB = createNodeTermBdd(3);
nodeC = createNodeTermBdd(4);
pt = NULL;
pt = addListBdd(pt,nodeA);
pt = addListBdd(pt,nodeB);
pt = addListBdd(pt,nodeC);
res = applyBdd(OR,pt);
displayBdd(res,1);
/* it will display
@res INDEX = 4 LOW = @inter HIGH = ONE
@inter INDEX = 3 LOW = @nodeA HIGH = ONE
@nodeA INDEX = 2 LOW = ZERO HIGH = ONE
*/
/* total number of nodes = 5 */
destroyBdd(1);