source: vis_dev/vis-2.3/src/mvfaig/mvfaig.h @ 80

Last change on this file since 80 was 14, checked in by cecile, 13 years ago

vis2.3

File size: 4.0 KB
Line 
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/*---------------------------------------------------------------------------*/
39typedef 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
73EXTERN void MvfAig_Init(void);
74EXTERN void MvfAig_End(void);
75EXTERN MvfAig_Function_t * MvfAig_FunctionAlloc(int n);
76EXTERN void MvfAig_FunctionFree(MvfAig_Function_t *function);
77EXTERN MvfAig_Function_t * MvfAig_FunctionDuplicate(MvfAig_Function_t *function);
78EXTERN void MvfAig_FunctionArrayFree(array_t *functionArray);
79EXTERN int MvfAig_FunctionReadNumComponents(MvfAig_Function_t *function);
80EXTERN mAigEdge_t MvfAig_FunctionReadComponent(MvfAig_Function_t *function, int i);
81EXTERN MvfAig_Function_t * MvfAig_FunctionCreateFromVariable(mAig_Manager_t *manager, mAigEdge_t mVarId);
82EXTERN void MvfAig_FunctionAddMintermsToComponent(mAig_Manager_t *manager, MvfAig_Function_t *function, int i, mAigEdge_t g);
83EXTERN mAigEdge_t MvfAig_FunctionsComputeEquivalentSet(mAig_Manager_t *manager, MvfAig_Function_t *function1, MvfAig_Function_t *function2);
84EXTERN mAigEdge_t MvfAig_FunctionComputeDomain(mAig_Manager_t *manager, MvfAig_Function_t *function);
85
86
87/**AutomaticEnd***************************************************************/
88
89
90#endif /* _MVFAIG */
91
Note: See TracBrowser for help on using the repository browser.