1 | /**CHeaderFile***************************************************************** |
---|
2 | |
---|
3 | FileName [mvfaig.h] |
---|
4 | |
---|
5 | PackageName [mvfaig] |
---|
6 | |
---|
7 | Synopsis [Creation and manipulation of AndInv-based multi-valued functions.] |
---|
8 | |
---|
9 | Description [.] |
---|
10 | |
---|
11 | Author [Mohammad Awedh] |
---|
12 | |
---|
13 | Copyright [ This file was created at the University of Colorado at |
---|
14 | Boulder. The University of Colorado at Boulder makes no warranty |
---|
15 | about the suitability of this software for any purpose. It is |
---|
16 | presented on an AS IS basis.] |
---|
17 | |
---|
18 | Revision [$Id: mvfaig.h,v 1.7 2009/01/21 02:08:09 fabio Exp $] |
---|
19 | |
---|
20 | ******************************************************************************/ |
---|
21 | |
---|
22 | #ifndef _MVFAIG |
---|
23 | #define _MVFAIG |
---|
24 | |
---|
25 | /*---------------------------------------------------------------------------*/ |
---|
26 | /* Nested includes */ |
---|
27 | /*---------------------------------------------------------------------------*/ |
---|
28 | #include "maig.h" |
---|
29 | #include "vm.h" |
---|
30 | |
---|
31 | /*---------------------------------------------------------------------------*/ |
---|
32 | /* Constatn declarations */ |
---|
33 | /*---------------------------------------------------------------------------*/ |
---|
34 | #define MVFAIG_NETWORK_APPL_KEY "MvfAig_NetworkApplKey" |
---|
35 | |
---|
36 | /*---------------------------------------------------------------------------*/ |
---|
37 | /* Type declarations */ |
---|
38 | /*---------------------------------------------------------------------------*/ |
---|
39 | typedef array_t MvfAig_Function_t; |
---|
40 | |
---|
41 | |
---|
42 | /*---------------------------------------------------------------------------*/ |
---|
43 | /* Macro declarations */ |
---|
44 | /*---------------------------------------------------------------------------*/ |
---|
45 | |
---|
46 | /**Macro*********************************************************************** |
---|
47 | |
---|
48 | Synopsis [Iterates over the components of a multi-valued function.] |
---|
49 | |
---|
50 | Description [This macro iterates over the components of a multi-valued |
---|
51 | function.] |
---|
52 | |
---|
53 | SideEffects [This macro instantiates macros from the array package. Hence |
---|
54 | it is advisable not to nest this macro within array macros.] |
---|
55 | |
---|
56 | SeeAlso [MvfAig_FunctionAlloc] |
---|
57 | |
---|
58 | ******************************************************************************/ |
---|
59 | #define MvfAig_FunctionForEachComponent( \ |
---|
60 | /* MvfAig_Function_t * */ function /* function to iterate components */, \ |
---|
61 | /* int */ i /* local variable for iterator */, \ |
---|
62 | /* bAndInvEdge_t */ component /* component of function */ \ |
---|
63 | ) \ |
---|
64 | arrayForEachItem(bAigEdge_t, (array_t *) function, i, component) |
---|
65 | |
---|
66 | |
---|
67 | /**AutomaticStart*************************************************************/ |
---|
68 | |
---|
69 | /*---------------------------------------------------------------------------*/ |
---|
70 | /* Function prototypes */ |
---|
71 | /*---------------------------------------------------------------------------*/ |
---|
72 | |
---|
73 | EXTERN void MvfAig_Init(void); |
---|
74 | EXTERN void MvfAig_End(void); |
---|
75 | EXTERN MvfAig_Function_t * MvfAig_FunctionAlloc(int n); |
---|
76 | EXTERN void MvfAig_FunctionFree(MvfAig_Function_t *function); |
---|
77 | EXTERN MvfAig_Function_t * MvfAig_FunctionDuplicate(MvfAig_Function_t *function); |
---|
78 | EXTERN void MvfAig_FunctionArrayFree(array_t *functionArray); |
---|
79 | EXTERN int MvfAig_FunctionReadNumComponents(MvfAig_Function_t *function); |
---|
80 | EXTERN mAigEdge_t MvfAig_FunctionReadComponent(MvfAig_Function_t *function, int i); |
---|
81 | EXTERN MvfAig_Function_t * MvfAig_FunctionCreateFromVariable(mAig_Manager_t *manager, mAigEdge_t mVarId); |
---|
82 | EXTERN void MvfAig_FunctionAddMintermsToComponent(mAig_Manager_t *manager, MvfAig_Function_t *function, int i, mAigEdge_t g); |
---|
83 | EXTERN mAigEdge_t MvfAig_FunctionsComputeEquivalentSet(mAig_Manager_t *manager, MvfAig_Function_t *function1, MvfAig_Function_t *function2); |
---|
84 | EXTERN mAigEdge_t MvfAig_FunctionComputeDomain(mAig_Manager_t *manager, MvfAig_Function_t *function); |
---|
85 | |
---|
86 | |
---|
87 | /**AutomaticEnd***************************************************************/ |
---|
88 | |
---|
89 | |
---|
90 | #endif /* _MVFAIG */ |
---|
91 | |
---|