relprodbddnodeassoc(3) - Linux man page

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)