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 );