intersectbddnode.3alc man page

intersectbddnode — tests for an intersection between two bdd nodes.

Synopsis

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

Parameters

BddSystem

The bdd system.

BddNode1

The first bdd node.

BddNode2

The second bdd node.

Description

intersectbddnode tests if the intersection of BddNode1 and BddNode2 exists, in the bdd system BddSystem. If a null pointer is given, the default bdd system is used.

Return Value

intersectbddnode returns the bdd node zero if there is no  intersection, and a computed bdd node otherwise.

Example

#include "bdd101.h"
   bddsystem  ∗BddSystem;
   bddcircuit ∗BddCircuit;
   bddnode    ∗BddNode1;
   bddnode    ∗BddNode2;
   bddnode    ∗BddImply;
   chain_list ∗Expr;
   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" ) );
   BddNode1 = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   BddImply = intersectbddnode( (bddsystem ∗)0, BddNode1, BddNode2 );
   Expr = convertbddcircuitabl( BddCircuit, BddNode );
   /* displays (i0 and i1)) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem ∗)0 );
   destroybddcircuit( (bddcircuit ∗)0 );

See Also

bdd(1)

Info

October 1, 1997 ASIM/LIP6 BDD FUNCTIONS