Provided by: alliance_5.0-20120515-6_amd64 bug

NAME

       applyBdd - applies an operator to a list of BDD.

SYNOPSYS

       #include "logmmm.h"
       pNode applyBdd(oper,pt)
       short oper;
       chain_list *pt;

PARAMETERS

       oper                operator number to apply (OR,AND,XOR,NAND,NOR,NXOR,NOT)

       pt                  chain_list of BDD.

DESCRIPTION

       applyBdd()  applies  oper  to  a  list  of  Bdd.  This list can be created by addListBdd()
       function. This function provides the basic method for creating  the  representation  of  a
       function according to the operators in a boolean expression.

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
       */

       destroyBdd(1);

ERRORS

       "applyBdd : error - unknown operator"
       the operator number must be in (OR,AND,XOR,NAND,NOR,NXOR,NOT)
       "applyBdd : error - chained list is empty"
       chained list pointer pt = NULL.
       "applyBdd : error - bad operator"
       The  number of arguments is 1 and the operator is distinct from NOT.
       chained list pointer pt = NULL.

SEE ALSO

       log(1), bdd(1), addListBdd(3), applyBinBdd(3), notBdd(3), constraintBdd(3), composeBdd(3),
       displayBdd(3), createNodeTermBdd(3).