delbddassoc(3)
deletes a variable association.
SYNOPSYS
#include "bdd101.h"
int delbddassoc( BddSystem, BddAssoc )
bddsystem *BddSystem;
bddassoc *BddAssoc;
PARAMETERS
- BddSystem
-
The bdd system.
- BddAssoc
-
The variable association to delete.
DESCRIPTION
delbddassoc deletes the variable association BddAssoc in the bdd system
BddSystem. If a null pointer is given, the default bdd system is used.
For all the bdd nodes of the variable association
BddAssoc, the number of external reference is decremented.
RETURN VALUE
delbddassoc returns 1 if the variable association is found, 0 otherwise.
EXAMPLE
#include "bdd101.h"
bddsystem *BddSystem;
bddcircuit *BddCircuit;
bddnode *BddNode;
bddnode *BddSubst;
bddnode *BddVariable;
bddassoc *Assoc;
chain_list *Expr;
bddvar Variable;
BddSystem = createbddsystem( 100, 1000, 100, 50000 );
BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
Expr = createablbinexpr( ABL_AND,
createablatom( "i0" ),
createablatom( "i1" ) );
BddNode = addbddcircuitabl( BddCircuit, Expr );
freeablexpr( Expr );
Expr = createablbinexpr( ABL_OR,
createablatom( "i2" ),
createablatom( "i3" ) );
BddSubst = addbddcircuitabl( BddCircuit, Expr );
freeablexpr( Expr );
BddVariable = searchbddcircuitin( (bddcircuit *)0, "i0" );
Variable = getbddvarbyindex( (bddsystem *)0, BddVariable->INDEX );
Assoc = delbddassoc( (bddsystem *)0 );
addbddnodeassoc( (bddsystem *)0, Assoc, Variable, BddSubst );
BddNode = substbddnodeassoc( (bddsystem *)0, BddSubst, Assoc );
delbddassoc( (bddsystem *)0, Assoc );
Expr = convertbddcircuitabl( BddCircuit, BddNode );
/* displays ((i3 or i2) and i1) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddassoc( (bddsystem *)0 );
destroybddsystem( (bddsystem *)0 );
destroybddcircuit( (bddcircuit *)0 );