unmarkbddnode(3) unmarks bdd node with a specified mask.

SYNOPSYS

#include "bdd101.h"
long unmarkbddnode( BddSystem, BddNode, Mark )
  bddsystem *BddSystem;
  bddnode   *BddNode;
  bddunmark    Mark;

PARAMETERS

BddSystem
The bdd system.
BddNode
The bdd node to unmark.
Mark
The bit mask.

DESCRIPTION

unmarkbddnode unmarks the bdd node BddNode with the bit mask Mark, in the bdd system BddSystem. If a null pointer is given, the default bdd system is used. This function does a AND with the field MARK of the bdd node BddNode, and the complemented bit mask Mark.

RETURN VALUE

unmarkbddnode returns the number of the differents unmarked nodes.

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 );
   Expr = createablbinexpr( ABL_AND,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddNode = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   printf( "Number nodes: %ld, 
           markbddnode( (bddsystem *)0, BddNode, 0x0001 ) );
   unmarkbddnode( (bddsystem *)0, BddNode, 0x0001 );
   destroybddsystem( (bddsystem *)0 );
   destroybddcircuit( (bddcircuit *)0 );