unsetbddrefext(3) increments the internal reference,

SYNOPSYS

#include "bdd101.h"
bddnode *unsetbddrefext( BddNode )
  bddnode *BddNode;

PARAMETERS

BddNode
The bdd node.

DESCRIPTION

unsetbddrefext increments the number of internal reference of the bdd node BddNode and decrements its number of external reference.

RETURN VALUE

unsetbddrefext returns the BddNode pointer.

ERRORS

"negative reference, index xxx error !"
The BddNode must have a postive number of external reference.

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 );
   BddNode = addbddcircuitin( (bddcircuit *)0, "i0", 0, BDD_IN_MODE_FIRST );
   BddNode = addbddnode( (bddsystem *)0, BddNode->INDEX, BddNode->LOW, BddNode->HIGH );
   Expr = convertbddcircuitabl( (bddcircuit *)0, BddNode );
   incbddrefext( BddNode );
   unsetbddrefext( BddNode );
   /* displays Node VAR: 0  INDEX: 2  MARK: 0  REF_EXT: 0  REF_INT: 1 */
   viewbddnode( (bddsystem *)0, BddNode );
   /* displays (not i0) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem *)0 );
   destroybddcircuit( (bddcircuit *)0 );