1COFACTORBDDNODE(3) BDD FUNCTIONS COFACTORBDDNODE(3)
2
3
4
6 cofactorbddnode - computes the generalized cofactor.
7
8
10 #include "bdd101.h"
11 bddnode ∗cofactorbddnode( BddSystem, BddNode1, BddNode2 )
12 bddsystem ∗BddSystem;
13 bddnode ∗BddNode1;
14 bddnode ∗BddNode2;
15
17 BddSystem The bdd system.
18
19 BddNode1 The first bdd node.
20
21 BddNode2 The second bdd node.
22
24 cofactorbddnode computes the generalized cofactor of BddNode1 by
25 BddNode2, in the bdd system BddSystem. If a null pointer is given, the
26 default bdd system is used.
27
29 cofactorbddnode returns the resulting bdd node.
30
32 "index xxx out of range"
33 The BddNode2 parameter must be different to the zero bdd node.
34
36 #include "bdd101.h"
37 bddsystem ∗BddSystem;
38 bddcircuit ∗BddCircuit;
39 bddnode ∗BddNode1;
40 bddnode ∗BddNode2;
41 bddnode ∗BddNode;
42 chain_list ∗Expr;
43 BddSystem = createbddsystem( 100, 1000, 100, 50000 );
44 BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
45 Expr = createablbinexpr( ABL_OR,
46 createablatom( "i0" ),
47 createablatom( "i1" ) );
48 BddNode1 = addbddcircuitabl( BddCircuit, Expr );
49 freeablexpr( Expr );
50 Expr = createablbinexpr( ABL_AND,
51 createablatom( "i0" ),
52 createablatom( "i1" ) );
53 BddNode2 = addbddcircuitabl( BddCircuit, Expr );
54 freeablexpr( Expr );
55 BddNode = cofactorbddnode( (bddsystem ∗)0, BddNode1, BddNode2 );
56 Expr = convertbddcircuitabl( BddCircuit, BddNode );
57 /* displays '1' */
58 viewablexpr( Expr, ABL_VIEW_VHDL );
59 freeablexpr( Expr );
60 destroybddsystem( (bddsystem ∗)0 );
61 destroybddcircuit( (bddcircuit ∗)0 );
62
64 bdd(1)
65
66
67
68
69
70
71ASIM/LIP6 October 1, 1997 COFACTORBDDNODE(3)