Provided by: alliance_5.0-20120515-6_amd64
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)