Provided by: alliance_5.0-20120515-6_amd64 bug

NAME

       addbddnodeassoc - adds a bdd node in  a variable association.

SYNOPSYS

       #include "bdd101.h"
       bddassoc ∗addbddnodeassoc( BddSystem, BddAssoc, Variable, BddNode )
         bddsystem  ∗BddSystem;
         bddassoc   ∗BddAssoc;
         bddvar      Variable;
         bddnode    ∗BddNode;

PARAMETERS

       BddSystem           The bdd system.

       BddAssoc            The variable association.

       Variable            The variable number.

       BddNode             The bdd node to add.

DESCRIPTION

       addbddnodeassoc  adds the bdd node BddNode, associated to the variable number Variable, in
       the variable association BddAssoc, in the bdd system BddSystem.   If  a  null  pointer  is
       given,  the  default  bdd  system is used.  The number of external reference of BddNode is
       incremented.

RETURN VALUE

       addbddnodeassoc returns a pointer to the variable association.

ERRORS

       "variable xxx out of range, error !"
              The Variable parameter must be less or equal to the BddSystem->NUMBER_VAR field.

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

SEE ALSO

       bdd(1)