applybddnode(3) applies an operator on two bdd nodes.

SYNOPSYS

#include "bdd101.h"
bddnode *applybddnode( BddSystem, Oper, BddNode1, BddNode2 )
  bddsystem *BddSystem;
  long       Oper;
  bddnode   *BddNode1;
  bddnode   *BddNode2;

PARAMETERS

BddSystem
The bdd system.
Oper
The binary operator.
BddNode1
The first bdd node.
BddNode2
The second bdd node.

DESCRIPTION

applybddnode computes the boolean function BddNode1 Oper BddNode2 in the bdd system BddSystem. If a null pointer is given, the default bdd system is used.

RETURN VALUE

applybddnode 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.

EXAMPLE

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