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