bionic (3) substbddnodeassoc.3.gz

Provided by: alliance_5.1.1-1.1build1_amd64 bug

NAME

       substbddnodeassoc - substitutes a set of variables with a set of bdd node.

SYNOPSYS

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

PARAMETERS

       BddSystem           The bdd system.

       BddNode             The bdd node to treat.

       BddAssoc            The variable association.

DESCRIPTION

       substbddnodeassoc  substitutes  in  the bdd node BddNode all the variables associated to something in the
       variable association BddAssoc, with the corresponding bdd node, in the bdd system BddSystem.  If  a  null
       pointer is given, the default bdd system is used.

RETURN VALUE

       substbddnodeassoc returns the computed bdd node.

ERRORS

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

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)