addbddassoc(3) creates a new association variables.

SYNOPSYS

#include "bdd101.h"
bddassoc *addbddassoc( BddSystem )
  bddsystem  *BddSystem;

PARAMETERS

BddSystem
The bdd system.

DESCRIPTION

addbddassoc creates a new association variables in the bdd system BddSystem. If a null pointer is given, the default bdd system is used.

RETURN VALUE

addbddassoc returns a pointer to the new variable association.

ERRORS

"no more variable association, error !"
There is no variable association number left.

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 = addbddassoc( (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 );