setbddrefext(3)
increments the external reference,
SYNOPSYS
#include "bdd101.h"
bddnode *setbddrefext( BddNode )
bddnode *BddNode;
PARAMETERS
- BddNode
-
The bdd node.
DESCRIPTION
setbddrefext increments the number of external reference
of the bdd node BddNode and decrements its number of
internal reference.
RETURN VALUE
setbddrefext returns the BddNode pointer.
ERRORS
"negative reference, index xxx error !"
-
The BddNode must have a postive number of internal 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 );
incbddrefint( BddNode );
setbddrefext( BddNode );
/* displays Node VAR: 0 INDEX: 2 MARK: 0 REF_EXT: 1 REF_INT: 0 */
viewbddnode( (bddsystem *)0, BddNode );
/* displays (not i0) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem *)0 );
destroybddcircuit( (bddcircuit *)0 );