delbddnode(3)
deletes an unused bdd node.
SYNOPSYS
#include "bdd101.h"
void delbddnode( BddSystem, BddNode )
bddsystem *BddSystem;
bddnode *BddNode;
PARAMETERS
- BddSystem
-
The bdd system.
- BddNode
-
The bdd node.
DESCRIPTION
delbddnode tries to delete the bdd node BddNode and its
children, if they have not external reference, in the bdd system BddSystem.
If a null pointer is given, the default bdd system is used. The use of this
function is not recommended because, it takes time.
It is better to call the decbddrefext function, and do a garbage collection
with the garbagebddsystem function.
RETURN VALUE
delbddnode returns nothing.
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 );
delbddnode( (bddsystem *)0, decbddrefext( BddNode ) );
/* displays (not i0) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem *)0 );
destroybddcircuit( (bddcircuit *)0 );