abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
fraig.h
Go to the documentation of this file.
1 /**CFile****************************************************************
2 
3  FileName [fraig.h]
4 
5  PackageName [FRAIG: Functionally reduced AND-INV graphs.]
6 
7  Synopsis [External declarations of the FRAIG package.]
8 
9  Author [Alan Mishchenko <alanmi@eecs.berkeley.edu>]
10 
11  Affiliation [UC Berkeley]
12 
13  Date [Ver. 2.0. Started - October 1, 2004]
14 
15  Revision [$Id: fraig.h,v 1.18 2005/07/08 01:01:30 alanmi Exp $]
16 
17 ***********************************************************************/
18 
19 #ifndef ABC__sat__fraig__fraig_h
20 #define ABC__sat__fraig__fraig_h
21 
22 
23 ////////////////////////////////////////////////////////////////////////
24 /// INCLUDES ///
25 ////////////////////////////////////////////////////////////////////////
26 
27 ////////////////////////////////////////////////////////////////////////
28 /// PARAMETERS ///
29 ////////////////////////////////////////////////////////////////////////
30 
31 
32 
34 
35 
36 ////////////////////////////////////////////////////////////////////////
37 /// STRUCTURE DEFINITIONS ///
38 ////////////////////////////////////////////////////////////////////////
39 
45 typedef struct Fraig_PatternsStruct_t_ Fraig_Patterns_t;
47 
49 {
50  int nPatsRand; // the number of words of random simulation info
51  int nPatsDyna; // the number of words of dynamic simulation info
52  int nBTLimit; // the max number of backtracks to perform
53  int nSeconds; // the timeout for the final proof
54  int fFuncRed; // performs only one level hashing
55  int fFeedBack; // enables solver feedback
56  int fDist1Pats; // enables distance-1 patterns
57  int fDoSparse; // performs equiv tests for sparse functions
58  int fChoicing; // enables recording structural choices
59  int fTryProve; // tries to solve the final miter
60  int fVerbose; // the verbosiness flag
61  int fVerboseP; // the verbosiness flag (for proof reporting)
62  int fInternal; // is set to 1 for internal fraig calls
63  int nConfLimit; // the limit on the number of conflicts
64  ABC_INT64_T nInspLimit; // the limit on the number of inspections
65 };
66 
68 {
69  // general parameters
70  int fUseFraiging; // enables fraiging
71  int fUseRewriting; // enables rewriting
72  int fUseBdds; // enables BDD construction when other methods fail
73  int fVerbose; // prints verbose stats
74  // iterations
75  int nItersMax; // the number of iterations
76  // mitering
77  int nMiteringLimitStart; // starting mitering limit
78  float nMiteringLimitMulti; // multiplicative coefficient to increase the limit in each iteration
79  // rewriting
80  int nRewritingLimitStart; // the number of rewriting iterations
81  float nRewritingLimitMulti; // multiplicative coefficient to increase the limit in each iteration
82  // fraiging
83  int nFraigingLimitStart; // starting backtrack(conflict) limit
84  float nFraigingLimitMulti; // multiplicative coefficient to increase the limit in each iteration
85  // last-gasp BDD construction
86  int nBddSizeLimit; // the number of BDD nodes when construction is aborted
87  int fBddReorder; // enables dynamic BDD variable reordering
88  // last-gasp mitering
89  int nMiteringLimitLast; // final mitering limit
90  // global SAT solver limits
91  ABC_INT64_T nTotalBacktrackLimit; // global limit on the number of backtracks
92  ABC_INT64_T nTotalInspectLimit; // global limit on the number of clause inspects
93  // global resources applied
94  ABC_INT64_T nTotalBacktracksMade; // the total number of backtracks made
95  ABC_INT64_T nTotalInspectsMade; // the total number of inspects made
96 };
97 
98 ////////////////////////////////////////////////////////////////////////
99 /// GLOBAL VARIABLES ///
100 ////////////////////////////////////////////////////////////////////////
101 
102 ////////////////////////////////////////////////////////////////////////
103 /// MACRO DEFINITIONS ///
104 ////////////////////////////////////////////////////////////////////////
105 
106 // macros working with complemented attributes of the nodes
107 #define Fraig_IsComplement(p) (((int)((ABC_PTRUINT_T) (p) & 01)))
108 #define Fraig_Regular(p) ((Fraig_Node_t *)((ABC_PTRUINT_T)(p) & ~01))
109 #define Fraig_Not(p) ((Fraig_Node_t *)((ABC_PTRUINT_T)(p) ^ 01))
110 #define Fraig_NotCond(p,c) ((Fraig_Node_t *)((ABC_PTRUINT_T)(p) ^ (c)))
111 
112 // these are currently not used
113 #define Fraig_Ref(p)
114 #define Fraig_Deref(p)
115 #define Fraig_RecursiveDeref(p,c)
116 
117 ////////////////////////////////////////////////////////////////////////
118 /// FUNCTION DEFINITIONS ///
119 ////////////////////////////////////////////////////////////////////////
120 
121 /*=== fraigApi.c =============================================================*/
128 extern int Fraig_ManReadInputNum ( Fraig_Man_t * p );
129 extern int Fraig_ManReadOutputNum( Fraig_Man_t * p );
130 extern int Fraig_ManReadNodeNum( Fraig_Man_t * p );
132 extern Fraig_Node_t * Fraig_ManReadIthVar( Fraig_Man_t * p, int i );
133 extern Fraig_Node_t * Fraig_ManReadIthNode( Fraig_Man_t * p, int i );
134 extern char ** Fraig_ManReadInputNames( Fraig_Man_t * p );
135 extern char ** Fraig_ManReadOutputNames( Fraig_Man_t * p );
136 extern char * Fraig_ManReadVarsInt( Fraig_Man_t * p );
137 extern char * Fraig_ManReadSat( Fraig_Man_t * p );
138 extern int Fraig_ManReadFuncRed( Fraig_Man_t * p );
139 extern int Fraig_ManReadFeedBack( Fraig_Man_t * p );
140 extern int Fraig_ManReadDoSparse( Fraig_Man_t * p );
141 extern int Fraig_ManReadChoicing( Fraig_Man_t * p );
142 extern int Fraig_ManReadVerbose( Fraig_Man_t * p );
143 extern int * Fraig_ManReadModel( Fraig_Man_t * p );
147 extern int Fraig_ManReadSatFails( Fraig_Man_t * p );
148 extern int Fraig_ManReadConflicts( Fraig_Man_t * p );
149 extern int Fraig_ManReadInspects( Fraig_Man_t * p );
150 
151 extern void Fraig_ManSetFuncRed( Fraig_Man_t * p, int fFuncRed );
152 extern void Fraig_ManSetFeedBack( Fraig_Man_t * p, int fFeedBack );
153 extern void Fraig_ManSetDoSparse( Fraig_Man_t * p, int fDoSparse );
154 extern void Fraig_ManSetChoicing( Fraig_Man_t * p, int fChoicing );
155 extern void Fraig_ManSetTryProve( Fraig_Man_t * p, int fTryProve );
156 extern void Fraig_ManSetVerbose( Fraig_Man_t * p, int fVerbose );
157 extern void Fraig_ManSetOutputNames( Fraig_Man_t * p, char ** ppNames );
158 extern void Fraig_ManSetInputNames( Fraig_Man_t * p, char ** ppNames );
159 extern void Fraig_ManSetPo( Fraig_Man_t * p, Fraig_Node_t * pNode );
160 
163 extern int Fraig_NodeReadNum( Fraig_Node_t * p );
168 extern int Fraig_NodeReadNumRefs( Fraig_Node_t * p );
169 extern int Fraig_NodeReadNumFanouts( Fraig_Node_t * p );
170 extern int Fraig_NodeReadSimInv( Fraig_Node_t * p );
171 extern int Fraig_NodeReadNumOnes( Fraig_Node_t * p );
172 extern unsigned * Fraig_NodeReadPatternsRandom( Fraig_Node_t * p );
173 extern unsigned * Fraig_NodeReadPatternsDynamic( Fraig_Node_t * p );
174 
175 extern void Fraig_NodeSetData0( Fraig_Node_t * p, Fraig_Node_t * pData );
176 extern void Fraig_NodeSetData1( Fraig_Node_t * p, Fraig_Node_t * pData );
177 
178 extern int Fraig_NodeIsConst( Fraig_Node_t * p );
179 extern int Fraig_NodeIsVar( Fraig_Node_t * p );
180 extern int Fraig_NodeIsAnd( Fraig_Node_t * p );
181 extern int Fraig_NodeComparePhase( Fraig_Node_t * p1, Fraig_Node_t * p2 );
182 
187 extern Fraig_Node_t * Fraig_NodeMux( Fraig_Man_t * p, Fraig_Node_t * pNode, Fraig_Node_t * pNodeT, Fraig_Node_t * pNodeE );
188 extern void Fraig_NodeSetChoice( Fraig_Man_t * pMan, Fraig_Node_t * pNodeOld, Fraig_Node_t * pNodeNew );
189 
190 /*=== fraigMan.c =============================================================*/
191 extern void Prove_ParamsSetDefault( Prove_Params_t * pParams );
192 extern void Fraig_ParamsSetDefault( Fraig_Params_t * pParams );
193 extern void Fraig_ParamsSetDefaultFull( Fraig_Params_t * pParams );
194 extern Fraig_Man_t * Fraig_ManCreate( Fraig_Params_t * pParams );
195 extern void Fraig_ManFree( Fraig_Man_t * pMan );
196 extern void Fraig_ManPrintStats( Fraig_Man_t * p );
198 extern int Fraig_ManCheckClauseUsingSimInfo( Fraig_Man_t * p, Fraig_Node_t * pNode1, Fraig_Node_t * pNode2 );
199 extern void Fraig_ManAddClause( Fraig_Man_t * p, Fraig_Node_t ** ppNodes, int nNodes );
200 
201 /*=== fraigDfs.c =============================================================*/
202 extern Fraig_NodeVec_t * Fraig_Dfs( Fraig_Man_t * pMan, int fEquiv );
203 extern Fraig_NodeVec_t * Fraig_DfsOne( Fraig_Man_t * pMan, Fraig_Node_t * pNode, int fEquiv );
204 extern Fraig_NodeVec_t * Fraig_DfsNodes( Fraig_Man_t * pMan, Fraig_Node_t ** ppNodes, int nNodes, int fEquiv );
205 extern Fraig_NodeVec_t * Fraig_DfsReverse( Fraig_Man_t * pMan );
206 extern int Fraig_CountNodes( Fraig_Man_t * pMan, int fEquiv );
207 extern int Fraig_CheckTfi( Fraig_Man_t * pMan, Fraig_Node_t * pOld, Fraig_Node_t * pNew );
208 extern int Fraig_CountLevels( Fraig_Man_t * pMan );
209 
210 /*=== fraigSat.c =============================================================*/
211 extern int Fraig_NodesAreEqual( Fraig_Man_t * p, Fraig_Node_t * pNode1, Fraig_Node_t * pNode2, int nBTLimit, int nTimeLimit );
212 extern int Fraig_NodeIsEquivalent( Fraig_Man_t * p, Fraig_Node_t * pOld, Fraig_Node_t * pNew, int nBTLimit, int nTimeLimit );
213 extern void Fraig_ManProveMiter( Fraig_Man_t * p );
214 extern int Fraig_ManCheckMiter( Fraig_Man_t * p );
215 extern int Fraig_ManCheckClauseUsingSat( Fraig_Man_t * p, Fraig_Node_t * pNode1, Fraig_Node_t * pNode2, int nBTLimit );
216 
217 /*=== fraigVec.c ===============================================================*/
218 extern Fraig_NodeVec_t * Fraig_NodeVecAlloc( int nCap );
219 extern void Fraig_NodeVecFree( Fraig_NodeVec_t * p );
222 extern int Fraig_NodeVecReadSize( Fraig_NodeVec_t * p );
223 extern void Fraig_NodeVecGrow( Fraig_NodeVec_t * p, int nCapMin );
224 extern void Fraig_NodeVecShrink( Fraig_NodeVec_t * p, int nSizeNew );
225 extern void Fraig_NodeVecClear( Fraig_NodeVec_t * p );
226 extern void Fraig_NodeVecPush( Fraig_NodeVec_t * p, Fraig_Node_t * Entry );
227 extern int Fraig_NodeVecPushUnique( Fraig_NodeVec_t * p, Fraig_Node_t * Entry );
228 extern void Fraig_NodeVecPushOrder( Fraig_NodeVec_t * p, Fraig_Node_t * pNode );
233 extern void Fraig_NodeVecRemove( Fraig_NodeVec_t * p, Fraig_Node_t * Entry );
234 extern void Fraig_NodeVecWriteEntry( Fraig_NodeVec_t * p, int i, Fraig_Node_t * Entry );
236 extern void Fraig_NodeVecSortByLevel( Fraig_NodeVec_t * p, int fIncreasing );
238 
239 /*=== fraigUtil.c ===============================================================*/
240 extern void Fraig_ManMarkRealFanouts( Fraig_Man_t * p );
241 extern int Fraig_ManCheckConsistency( Fraig_Man_t * p );
242 extern int Fraig_GetMaxLevel( Fraig_Man_t * pMan );
243 extern void Fraig_ManReportChoices( Fraig_Man_t * pMan );
244 extern void Fraig_MappingSetChoiceLevels( Fraig_Man_t * pMan, int fMaximum );
245 extern Fraig_NodeVec_t * Fraig_CollectSupergate( Fraig_Node_t * pNode, int fStopAtMux );
246 
247 ////////////////////////////////////////////////////////////////////////
248 /// END OF FILE ///
249 ////////////////////////////////////////////////////////////////////////
250 
251 
252 
254 
255 
256 
257 #endif
Fraig_Node_t * Fraig_NodeReadRepr(Fraig_Node_t *p)
Definition: fraigApi.c:114
char * Fraig_ManReadSat(Fraig_Man_t *p)
Definition: fraigApi.c:57
int Fraig_NodeIsEquivalent(Fraig_Man_t *p, Fraig_Node_t *pOld, Fraig_Node_t *pNew, int nBTLimit, int nTimeLimit)
Definition: fraigSat.c:302
Fraig_NodeVec_t * Fraig_CollectSupergate(Fraig_Node_t *pNode, int fStopAtMux)
Definition: fraigUtil.c:960
void Fraig_ManSetInputNames(Fraig_Man_t *p, char **ppNames)
Definition: fraigApi.c:95
int Fraig_ManReadVerbose(Fraig_Man_t *p)
Definition: fraigApi.c:62
Fraig_NodeVec_t * Fraig_ManReadVecInputs(Fraig_Man_t *p)
FUNCTION DEFINITIONS ///.
Definition: fraigApi.c:43
void Fraig_NodeVecPush(Fraig_NodeVec_t *p, Fraig_Node_t *Entry)
Definition: fraigVec.c:189
int Fraig_ManReadPatternNumRandom(Fraig_Man_t *p)
Definition: fraigApi.c:65
void Fraig_ManSetPo(Fraig_Man_t *p, Fraig_Node_t *pNode)
Definition: fraigApi.c:194
Fraig_Node_t * Fraig_ManReadConst1(Fraig_Man_t *p)
Definition: fraigApi.c:52
int Fraig_ManReadDoSparse(Fraig_Man_t *p)
Definition: fraigApi.c:60
int Fraig_CountNodes(Fraig_Man_t *pMan, int fEquiv)
Definition: fraigUtil.c:152
typedefABC_NAMESPACE_HEADER_START struct Fraig_ManStruct_t_ Fraig_Man_t
INCLUDES ///.
Definition: fraig.h:40
void Fraig_ManAddClause(Fraig_Man_t *p, Fraig_Node_t **ppNodes, int nNodes)
Definition: fraigMan.c:521
struct Fraig_PatternsStruct_t_ Fraig_Patterns_t
Definition: fraig.h:45
static Llb_Mgr_t * p
Definition: llb3Image.c:950
int Fraig_ManReadOutputNum(Fraig_Man_t *p)
Definition: fraigApi.c:50
int Fraig_NodeComparePhase(Fraig_Node_t *p1, Fraig_Node_t *p2)
Definition: fraigApi.c:154
void Fraig_NodeSetData0(Fraig_Node_t *p, Fraig_Node_t *pData)
Definition: fraigApi.c:137
int Fraig_CheckTfi(Fraig_Man_t *pMan, Fraig_Node_t *pOld, Fraig_Node_t *pNew)
Definition: fraigUtil.c:173
int Fraig_ManCheckClauseUsingSimInfo(Fraig_Man_t *p, Fraig_Node_t *pNode1, Fraig_Node_t *pNode2)
Definition: fraigMan.c:454
Fraig_Node_t ** Fraig_ManReadNodes(Fraig_Man_t *p)
Definition: fraigApi.c:48
void Fraig_ParamsSetDefaultFull(Fraig_Params_t *pParams)
Definition: fraigMan.c:153
void Fraig_ManFree(Fraig_Man_t *pMan)
Definition: fraigMan.c:262
ABC_INT64_T nInspLimit
Definition: fraig.h:64
Fraig_Node_t ** Fraig_NodeVecReadArray(Fraig_NodeVec_t *p)
Definition: fraigVec.c:105
Fraig_Node_t * Fraig_NodeReadNextE(Fraig_Node_t *p)
Definition: fraigApi.c:113
int Fraig_NodeVecPushUnique(Fraig_NodeVec_t *p, Fraig_Node_t *Entry)
Definition: fraigVec.c:212
int Fraig_ManReadChoicing(Fraig_Man_t *p)
Definition: fraigApi.c:61
void Fraig_NodeVecGrow(Fraig_NodeVec_t *p, int nCapMin)
Definition: fraigVec.c:137
Fraig_Node_t * Fraig_NodeOr(Fraig_Man_t *p, Fraig_Node_t *p1, Fraig_Node_t *p2)
Definition: fraigApi.c:228
Fraig_NodeVec_t * Fraig_DfsReverse(Fraig_Man_t *pMan)
void Fraig_MappingSetChoiceLevels(Fraig_Man_t *pMan, int fMaximum)
Definition: fraigUtil.c:499
void Fraig_ManSetTryProve(Fraig_Man_t *p, int fTryProve)
Definition: fraigApi.c:92
void Fraig_ManPrintStats(Fraig_Man_t *p)
Definition: fraigMan.c:351
char * Fraig_ManReadVarsInt(Fraig_Man_t *p)
Definition: fraigApi.c:56
void Prove_ParamsSetDefault(Prove_Params_t *pParams)
FUNCTION DEFINITIONS ///.
Definition: fraigMan.c:46
int Fraig_ManReadInspects(Fraig_Man_t *p)
Definition: fraigApi.c:75
void Fraig_NodeVecClear(Fraig_NodeVec_t *p)
Definition: fraigVec.c:173
Fraig_NodeVec_t * Fraig_ManReadVecNodes(Fraig_Man_t *p)
Definition: fraigApi.c:45
Fraig_Node_t * Fraig_NodeMux(Fraig_Man_t *p, Fraig_Node_t *pNode, Fraig_Node_t *pNodeT, Fraig_Node_t *pNodeE)
Definition: fraigApi.c:260
unsigned * Fraig_NodeReadPatternsRandom(Fraig_Node_t *p)
Definition: fraigApi.c:121
void Fraig_NodeVecPushOrderByLevel(Fraig_NodeVec_t *p, Fraig_Node_t *pNode)
Definition: fraigVec.c:282
Fraig_Node_t ** Fraig_ManReadOutputs(Fraig_Man_t *p)
Definition: fraigApi.c:47
int Fraig_NodeReadSimInv(Fraig_Node_t *p)
Definition: fraigApi.c:117
void Fraig_ManSetChoicing(Fraig_Man_t *p, int fChoicing)
Definition: fraigApi.c:91
Fraig_Node_t * Fraig_ManReadIthNode(Fraig_Man_t *p, int i)
Definition: fraigApi.c:53
ABC_INT64_T nTotalInspectsMade
Definition: ivyFraig.c:137
Fraig_Node_t * Fraig_NodeReadTwo(Fraig_Node_t *p)
Definition: fraigApi.c:112
ABC_INT64_T nTotalBacktracksMade
Definition: ivyFraig.c:136
int Fraig_ManReadPatternNumDynamic(Fraig_Man_t *p)
Definition: fraigApi.c:67
void Fraig_NodeVecWriteEntry(Fraig_NodeVec_t *p, int i, Fraig_Node_t *Entry)
Definition: fraigVec.c:370
Fraig_Node_t * Fraig_NodeAnd(Fraig_Man_t *p, Fraig_Node_t *p1, Fraig_Node_t *p2)
Definition: fraigApi.c:212
Fraig_Node_t * Fraig_NodeVecPop(Fraig_NodeVec_t *p)
Definition: fraigVec.c:331
void Fraig_ManSetVerbose(Fraig_Man_t *p, int fVerbose)
Definition: fraigApi.c:93
void Fraig_NodeVecSortByLevel(Fraig_NodeVec_t *p, int fIncreasing)
Definition: fraigVec.c:501
Fraig_Node_t * Fraig_ManReadIthVar(Fraig_Man_t *p, int i)
Definition: fraigApi.c:168
void Fraig_ManSetOutputNames(Fraig_Man_t *p, char **ppNames)
Definition: fraigApi.c:94
void Fraig_NodeVecFree(Fraig_NodeVec_t *p)
Definition: fraigVec.c:66
int Fraig_NodeVecPushUniqueOrderByLevel(Fraig_NodeVec_t *p, Fraig_Node_t *pNode)
Definition: fraigVec.c:310
Fraig_NodeVec_t * Fraig_NodeVecAlloc(int nCap)
DECLARATIONS ///.
Definition: fraigVec.c:43
Fraig_Node_t * Fraig_NodeReadData1(Fraig_Node_t *p)
Definition: fraigApi.c:109
void Fraig_NodeSetData1(Fraig_Node_t *p, Fraig_Node_t *pData)
Definition: fraigApi.c:138
Fraig_Node_t * Fraig_NodeReadData0(Fraig_Node_t *p)
Definition: fraigApi.c:108
void Fraig_ParamsSetDefault(Fraig_Params_t *pParams)
Definition: fraigMan.c:122
ABC_INT64_T nTotalInspectLimit
Definition: ivyFraig.c:134
int Fraig_NodeIsAnd(Fraig_Node_t *p)
Definition: fraigApi.c:153
void Fraig_NodeVecPushOrder(Fraig_NodeVec_t *p, Fraig_Node_t *pNode)
Definition: fraigVec.c:233
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
Definition: abc_global.h:105
void Fraig_ManSetDoSparse(Fraig_Man_t *p, int fDoSparse)
Definition: fraigApi.c:90
void Fraig_NodeVecRemove(Fraig_NodeVec_t *p, Fraig_Node_t *Entry)
Definition: fraigVec.c:347
int Fraig_ManReadPatternNumDynamicFiltered(Fraig_Man_t *p)
Definition: fraigApi.c:69
float nRewritingLimitMulti
Definition: ivyFraig.c:123
void Fraig_ManSetFuncRed(Fraig_Man_t *p, int fFuncRed)
Definition: fraigApi.c:88
#define ABC_NAMESPACE_HEADER_END
Definition: abc_global.h:106
Fraig_NodeVec_t * Fraig_DfsOne(Fraig_Man_t *pMan, Fraig_Node_t *pNode, int fEquiv)
Definition: fraigUtil.c:80
void Fraig_ManSetFeedBack(Fraig_Man_t *p, int fFeedBack)
Definition: fraigApi.c:89
Fraig_Node_t * Fraig_NodeReadOne(Fraig_Node_t *p)
Definition: fraigApi.c:111
ABC_INT64_T nTotalBacktrackLimit
Definition: ivyFraig.c:133
Fraig_NodeVec_t * Fraig_NodeVecDup(Fraig_NodeVec_t *p)
Definition: fraigVec.c:83
int Fraig_NodeIsConst(Fraig_Node_t *p)
Definition: fraigApi.c:151
int Fraig_NodeReadNumOnes(Fraig_Node_t *p)
Definition: fraigApi.c:118
int Fraig_ManReadSatFails(Fraig_Man_t *p)
Definition: fraigApi.c:71
int Fraig_ManReadFuncRed(Fraig_Man_t *p)
Definition: fraigApi.c:58
int Fraig_NodeReadNumFanouts(Fraig_Node_t *p)
Definition: fraigApi.c:116
void Fraig_NodeVecSortByNumber(Fraig_NodeVec_t *p)
Definition: fraigVec.c:522
Fraig_Man_t * Fraig_ManCreate(Fraig_Params_t *pParams)
Definition: fraigMan.c:184
int Fraig_NodeVecReadSize(Fraig_NodeVec_t *p)
Definition: fraigVec.c:121
int Fraig_NodesAreEqual(Fraig_Man_t *p, Fraig_Node_t *pNode1, Fraig_Node_t *pNode2, int nBTLimit, int nTimeLimit)
FUNCTION DEFINITIONS ///.
Definition: fraigSat.c:65
void Fraig_ManReportChoices(Fraig_Man_t *pMan)
Definition: fraigUtil.c:520
Fraig_NodeVec_t * Fraig_Dfs(Fraig_Man_t *pMan, int fEquiv)
FUNCTION DEFINITIONS ///.
Definition: fraigUtil.c:58
int Fraig_GetMaxLevel(Fraig_Man_t *pMan)
Definition: fraigUtil.c:428
void Fraig_ManMarkRealFanouts(Fraig_Man_t *p)
Definition: fraigUtil.c:251
void Fraig_NodeSetChoice(Fraig_Man_t *pMan, Fraig_Node_t *pNodeOld, Fraig_Node_t *pNodeNew)
Definition: fraigApi.c:285
void Fraig_NodeVecShrink(Fraig_NodeVec_t *p, int nSizeNew)
Definition: fraigVec.c:156
int Fraig_NodeIsVar(Fraig_Node_t *p)
Definition: fraigApi.c:152
Fraig_Node_t ** Fraig_ManReadInputs(Fraig_Man_t *p)
Definition: fraigApi.c:46
int Fraig_ManCheckConsistency(Fraig_Man_t *p)
Definition: fraigUtil.c:312
int Fraig_ManReadNodeNum(Fraig_Man_t *p)
Definition: fraigApi.c:51
Fraig_Node_t * Fraig_NodeExor(Fraig_Man_t *p, Fraig_Node_t *p1, Fraig_Node_t *p2)
Definition: fraigApi.c:244
int Fraig_NodeReadNum(Fraig_Node_t *p)
Definition: fraigApi.c:110
Fraig_NodeVec_t * Fraig_DfsNodes(Fraig_Man_t *pMan, Fraig_Node_t **ppNodes, int nNodes, int fEquiv)
Definition: fraigUtil.c:100
int Fraig_CountLevels(Fraig_Man_t *pMan)
int Fraig_ManReadFeedBack(Fraig_Man_t *p)
Definition: fraigApi.c:59
int * Fraig_ManReadModel(Fraig_Man_t *p)
Definition: fraigApi.c:63
int Fraig_ManCheckMiter(Fraig_Man_t *p)
Definition: fraigSat.c:130
int Fraig_ManReadConflicts(Fraig_Man_t *p)
Definition: fraigApi.c:73
int Fraig_ManReadInputNum(Fraig_Man_t *p)
Definition: fraigApi.c:49
int Fraig_NodeVecPushUniqueOrder(Fraig_NodeVec_t *p, Fraig_Node_t *pNode)
Definition: fraigVec.c:261
Fraig_NodeVec_t * Fraig_ManGetSimInfo(Fraig_Man_t *p)
Definition: fraigMan.c:417
Fraig_Node_t * Fraig_NodeVecReadEntry(Fraig_NodeVec_t *p, int i)
Definition: fraigVec.c:387
char ** Fraig_ManReadInputNames(Fraig_Man_t *p)
Definition: fraigApi.c:54
char ** Fraig_ManReadOutputNames(Fraig_Man_t *p)
Definition: fraigApi.c:55
Fraig_NodeVec_t * Fraig_ManReadVecOutputs(Fraig_Man_t *p)
Definition: fraigApi.c:44
unsigned * Fraig_NodeReadPatternsDynamic(Fraig_Node_t *p)
Definition: fraigApi.c:124
int Fraig_ManCheckClauseUsingSat(Fraig_Man_t *p, Fraig_Node_t *pNode1, Fraig_Node_t *pNode2, int nBTLimit)
Definition: fraigSat.c:653
int Fraig_NodeReadNumRefs(Fraig_Node_t *p)
Definition: fraigApi.c:115
void Fraig_ManProveMiter(Fraig_Man_t *p)
Definition: fraigSat.c:85