1INTERSECTBDDNODE(3) BDD FUNCTIONS INTERSECTBDDNODE(3)
2
3
4
6 intersectbddnode - tests for an intersection between two bdd nodes.
7
9 #include "bdd101.h"
10 bddnode ∗intersectbddnode( BddSystem, BddNode1, BddNode2 )
11 bddsystem ∗BddSystem;
12 bddnode ∗BddNode1;
13 bddnode ∗BddNode2;
14
16 BddSystem The bdd system.
17
18 BddNode1 The first bdd node.
19
20 BddNode2 The second bdd node.
21
23 intersectbddnode tests if the intersection of BddNode1 and BddNode2
24 exists, in the bdd system BddSystem. If a null pointer is given, the
25 default bdd system is used.
26
28 intersectbddnode returns the bdd node zero if there is no intersection,
29 and a computed bdd node otherwise.
30
32 #include "bdd101.h"
33 bddsystem ∗BddSystem;
34 bddcircuit ∗BddCircuit;
35 bddnode ∗BddNode1;
36 bddnode ∗BddNode2;
37 bddnode ∗BddImply;
38 chain_list ∗Expr;
39 BddSystem = createbddsystem( 100, 1000, 100, 50000 );
40 BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
41 Expr = createablbinexpr( ABL_AND,
42 createablatom( "i0" ),
43 createablatom( "i1" ) );
44 BddNode1 = addbddcircuitabl( BddCircuit, Expr );
45 freeablexpr( Expr );
46 Expr = createablbinexpr( ABL_OR,
47 createablatom( "i0" ),
48 createablatom( "i1" ) );
49 BddNode1 = addbddcircuitabl( BddCircuit, Expr );
50 freeablexpr( Expr );
51 BddImply = intersectbddnode( (bddsystem ∗)0, BddNode1, BddNode2 );
52 Expr = convertbddcircuitabl( BddCircuit, BddNode );
53 /* displays (i0 and i1)) */
54 viewablexpr( Expr, ABL_VIEW_VHDL );
55 freeablexpr( Expr );
56 destroybddsystem( (bddsystem ∗)0 );
57 destroybddcircuit( (bddcircuit ∗)0 );
58
60 bdd(1)
61
62
63
64
65
66
67ASIM/LIP6 October 1, 1997 INTERSECTBDDNODE(3)