bionic (3) relprodbddnodeassoc.3.gz

Provided by: alliance_5.1.1-1.1build1_amd64 bug

NAME

       relprodbddnodeassoc - computes a relational product.

SYNOPSYS

       #include "bdd101.h"
       bddnode ∗relprodbddnodeassoc( BddSystem, BddNode1, BddNode2, BddAssoc )
         bddsystem ∗BddSystem;
         bddnode   ∗BddNode1;
         bddnode   ∗BddNode2;
         bddassoc  ∗BddAssoc;

PARAMETERS

       BddSystem           The bdd system.

       BddNode1            The first bdd node.

       BddNode2            The second bdd node.

       BddAssoc            The variable association.

DESCRIPTION

       relprodbddnodeassoc  computes BddNode1 AND BddNode2, and suppress the variables associated with something
       in the variable association BddAssoc, in the bdd system BddSystem.  If  a  null  pointer  is  given,  the
       default bdd system is used.

RETURN VALUE

       relprodbddnodeassoc returns the computed bdd node.

ERRORS

       "bad variable association xxx, error !"
              The BddAssoc parameter must a valid variable association.

EXAMPLE

       #include "bdd101.h"
          bddsystem  ∗BddSystem;
          bddcircuit ∗BddCircuit;
          bddnode    ∗BddNode;
          bddnode    ∗BddNode1;
          bddnode    ∗BddNode2;
          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" ) );
          BddNode1 = addbddcircuitabl( BddCircuit, Expr );
          freeablexpr( Expr );
          Expr = createablbinexpr( ABL_OR,
                                   createablatom( "i0" ),
                                   createablatom( "i1" ) );
          BddNode2 = 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, BddSystem->ONE );
          BddNode = relprodbddnodeassoc( (bddsystem ∗)0, BddNode1, BddNode2, Assoc );
          Expr = convertbddcircuitabl( BddCircuit, BddNode );
          /* displays i1 */
          viewablexpr( Expr, ABL_VIEW_VHDL );
          freeablexpr( Expr );
          destroybddassoc( (bddsystem ∗)0 );
          destroybddsystem( (bddsystem ∗)0 );
          destroybddcircuit( (bddcircuit ∗)0 );

SEE ALSO

       bdd(1)