decbddrefext(3) decrements the external reference of a bdd node.

SYNOPSYS

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

PARAMETERS

BddNode
The bdd node.

DESCRIPTION

decbddrefext decrements the number of external reference of the bdd node BddNode.

RETURN VALUE

decbddrefext 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 );
   decbddrefext( BddNode );
   /* displays Node VAR: 0  INDEX: 2  MARK: 0  REF_EXT: 0  REF_INT: 0 */
   viewbddnode( (bddsystem *)0, BddNode );
   /* displays (not i0) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem *)0 );
   destroybddcircuit( (bddcircuit *)0 );