applybddnodelist(3) applies an opertor to a bdd nodes list.

SYNOPSYS

#include "bdd101.h"
bddnode *applybddnodelist( BddSystem, Oper, BddList )
  bddsystem  *BddSystem;
  long        Oper;
  chain_list *BddList;

PARAMETERS

BddSystem
The bdd system.
Oper
The operator.
BddList
The bdd nodes list.

DESCRIPTION

applybddnodelist applies the boolean operator Oper to the bdd nodes list BddList in the bdd system BddSystem. If a null pointer is given, the default bdd system is used.

RETURN VALUE

applybddnodelist returns a pointer to the resulting bdd node with its number of external reference incremented.

ERRORS

"bad operator xxx error !"
The Oper parameter must be a valid binary operator.
"bad list !"
The BddList parameter must be a valid list.

EXAMPLE

#include "bdd101.h"
   bddsystem  *BddSystem;
   bddcircuit *BddCircuit;
   bddnode    *BddNode;
   chain_list *BddList;
   chain_list *Expr;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   BddList    = (chain_list *)0;
   BddList = addbddnodelist( (bddsystem *)0, BddList, 
                             addbddcircuitin( (bddcircuit *)0,
                                              "i0", 0, BDD_IN_MODE_FIRST ) );
   BddList = addbddnodelist( (bddsystem *)0, BddList, 
                              addbddcircuitin( (bddcircuit *)0,
                                               "i1", 0, BDD_IN_MODE_FIRST );
   BddList = addbddnodelist( (bddsystem *)0, BddList,
                             addbddcircuitin( (bddcircuit *)0,
                                              "i2", 0, BDD_IN_MODE_FIRST );
   BddNode = applybddnodelist( (bddsystem *)0, ABL_AND, BddList );
   Expr = convertbddcircuitabl( (bddcircuit *)0, BddNode );
   /* displays (i0 and i1 and i2) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem *)0 );
   destroybddcircuit( (bddcircuit *)0 );