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