19 #ifndef ABC__sat__fraig__fraig_h
20 #define ABC__sat__fraig__fraig_h
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)))
114 #define Fraig_Deref(p)
115 #define Fraig_RecursiveDeref(p,c)
Fraig_Node_t * Fraig_NodeReadRepr(Fraig_Node_t *p)
char * Fraig_ManReadSat(Fraig_Man_t *p)
int Fraig_NodeIsEquivalent(Fraig_Man_t *p, Fraig_Node_t *pOld, Fraig_Node_t *pNew, int nBTLimit, int nTimeLimit)
Fraig_NodeVec_t * Fraig_CollectSupergate(Fraig_Node_t *pNode, int fStopAtMux)
void Fraig_ManSetInputNames(Fraig_Man_t *p, char **ppNames)
int Fraig_ManReadVerbose(Fraig_Man_t *p)
Fraig_NodeVec_t * Fraig_ManReadVecInputs(Fraig_Man_t *p)
FUNCTION DEFINITIONS ///.
void Fraig_NodeVecPush(Fraig_NodeVec_t *p, Fraig_Node_t *Entry)
int Fraig_ManReadPatternNumRandom(Fraig_Man_t *p)
void Fraig_ManSetPo(Fraig_Man_t *p, Fraig_Node_t *pNode)
Fraig_Node_t * Fraig_ManReadConst1(Fraig_Man_t *p)
int Fraig_ManReadDoSparse(Fraig_Man_t *p)
int Fraig_CountNodes(Fraig_Man_t *pMan, int fEquiv)
typedefABC_NAMESPACE_HEADER_START struct Fraig_ManStruct_t_ Fraig_Man_t
INCLUDES ///.
void Fraig_ManAddClause(Fraig_Man_t *p, Fraig_Node_t **ppNodes, int nNodes)
struct Fraig_PatternsStruct_t_ Fraig_Patterns_t
int Fraig_ManReadOutputNum(Fraig_Man_t *p)
int Fraig_NodeComparePhase(Fraig_Node_t *p1, Fraig_Node_t *p2)
void Fraig_NodeSetData0(Fraig_Node_t *p, Fraig_Node_t *pData)
float nMiteringLimitMulti
int Fraig_CheckTfi(Fraig_Man_t *pMan, Fraig_Node_t *pOld, Fraig_Node_t *pNew)
int Fraig_ManCheckClauseUsingSimInfo(Fraig_Man_t *p, Fraig_Node_t *pNode1, Fraig_Node_t *pNode2)
Fraig_Node_t ** Fraig_ManReadNodes(Fraig_Man_t *p)
void Fraig_ParamsSetDefaultFull(Fraig_Params_t *pParams)
void Fraig_ManFree(Fraig_Man_t *pMan)
Fraig_Node_t ** Fraig_NodeVecReadArray(Fraig_NodeVec_t *p)
Fraig_Node_t * Fraig_NodeReadNextE(Fraig_Node_t *p)
int Fraig_NodeVecPushUnique(Fraig_NodeVec_t *p, Fraig_Node_t *Entry)
int Fraig_ManReadChoicing(Fraig_Man_t *p)
void Fraig_NodeVecGrow(Fraig_NodeVec_t *p, int nCapMin)
Fraig_Node_t * Fraig_NodeOr(Fraig_Man_t *p, Fraig_Node_t *p1, Fraig_Node_t *p2)
Fraig_NodeVec_t * Fraig_DfsReverse(Fraig_Man_t *pMan)
void Fraig_MappingSetChoiceLevels(Fraig_Man_t *pMan, int fMaximum)
void Fraig_ManSetTryProve(Fraig_Man_t *p, int fTryProve)
void Fraig_ManPrintStats(Fraig_Man_t *p)
char * Fraig_ManReadVarsInt(Fraig_Man_t *p)
void Prove_ParamsSetDefault(Prove_Params_t *pParams)
FUNCTION DEFINITIONS ///.
int Fraig_ManReadInspects(Fraig_Man_t *p)
void Fraig_NodeVecClear(Fraig_NodeVec_t *p)
Fraig_NodeVec_t * Fraig_ManReadVecNodes(Fraig_Man_t *p)
Fraig_Node_t * Fraig_NodeMux(Fraig_Man_t *p, Fraig_Node_t *pNode, Fraig_Node_t *pNodeT, Fraig_Node_t *pNodeE)
unsigned * Fraig_NodeReadPatternsRandom(Fraig_Node_t *p)
void Fraig_NodeVecPushOrderByLevel(Fraig_NodeVec_t *p, Fraig_Node_t *pNode)
Fraig_Node_t ** Fraig_ManReadOutputs(Fraig_Man_t *p)
int Fraig_NodeReadSimInv(Fraig_Node_t *p)
void Fraig_ManSetChoicing(Fraig_Man_t *p, int fChoicing)
Fraig_Node_t * Fraig_ManReadIthNode(Fraig_Man_t *p, int i)
ABC_INT64_T nTotalInspectsMade
Fraig_Node_t * Fraig_NodeReadTwo(Fraig_Node_t *p)
ABC_INT64_T nTotalBacktracksMade
int Fraig_ManReadPatternNumDynamic(Fraig_Man_t *p)
void Fraig_NodeVecWriteEntry(Fraig_NodeVec_t *p, int i, Fraig_Node_t *Entry)
Fraig_Node_t * Fraig_NodeAnd(Fraig_Man_t *p, Fraig_Node_t *p1, Fraig_Node_t *p2)
Fraig_Node_t * Fraig_NodeVecPop(Fraig_NodeVec_t *p)
void Fraig_ManSetVerbose(Fraig_Man_t *p, int fVerbose)
void Fraig_NodeVecSortByLevel(Fraig_NodeVec_t *p, int fIncreasing)
Fraig_Node_t * Fraig_ManReadIthVar(Fraig_Man_t *p, int i)
void Fraig_ManSetOutputNames(Fraig_Man_t *p, char **ppNames)
void Fraig_NodeVecFree(Fraig_NodeVec_t *p)
int Fraig_NodeVecPushUniqueOrderByLevel(Fraig_NodeVec_t *p, Fraig_Node_t *pNode)
Fraig_NodeVec_t * Fraig_NodeVecAlloc(int nCap)
DECLARATIONS ///.
Fraig_Node_t * Fraig_NodeReadData1(Fraig_Node_t *p)
void Fraig_NodeSetData1(Fraig_Node_t *p, Fraig_Node_t *pData)
Fraig_Node_t * Fraig_NodeReadData0(Fraig_Node_t *p)
void Fraig_ParamsSetDefault(Fraig_Params_t *pParams)
ABC_INT64_T nTotalInspectLimit
int Fraig_NodeIsAnd(Fraig_Node_t *p)
void Fraig_NodeVecPushOrder(Fraig_NodeVec_t *p, Fraig_Node_t *pNode)
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
void Fraig_ManSetDoSparse(Fraig_Man_t *p, int fDoSparse)
void Fraig_NodeVecRemove(Fraig_NodeVec_t *p, Fraig_Node_t *Entry)
int Fraig_ManReadPatternNumDynamicFiltered(Fraig_Man_t *p)
float nRewritingLimitMulti
void Fraig_ManSetFuncRed(Fraig_Man_t *p, int fFuncRed)
#define ABC_NAMESPACE_HEADER_END
Fraig_NodeVec_t * Fraig_DfsOne(Fraig_Man_t *pMan, Fraig_Node_t *pNode, int fEquiv)
void Fraig_ManSetFeedBack(Fraig_Man_t *p, int fFeedBack)
Fraig_Node_t * Fraig_NodeReadOne(Fraig_Node_t *p)
ABC_INT64_T nTotalBacktrackLimit
Fraig_NodeVec_t * Fraig_NodeVecDup(Fraig_NodeVec_t *p)
int Fraig_NodeIsConst(Fraig_Node_t *p)
int Fraig_NodeReadNumOnes(Fraig_Node_t *p)
int Fraig_ManReadSatFails(Fraig_Man_t *p)
int Fraig_ManReadFuncRed(Fraig_Man_t *p)
int Fraig_NodeReadNumFanouts(Fraig_Node_t *p)
void Fraig_NodeVecSortByNumber(Fraig_NodeVec_t *p)
Fraig_Man_t * Fraig_ManCreate(Fraig_Params_t *pParams)
int Fraig_NodeVecReadSize(Fraig_NodeVec_t *p)
int Fraig_NodesAreEqual(Fraig_Man_t *p, Fraig_Node_t *pNode1, Fraig_Node_t *pNode2, int nBTLimit, int nTimeLimit)
FUNCTION DEFINITIONS ///.
void Fraig_ManReportChoices(Fraig_Man_t *pMan)
Fraig_NodeVec_t * Fraig_Dfs(Fraig_Man_t *pMan, int fEquiv)
FUNCTION DEFINITIONS ///.
float nFraigingLimitMulti
int Fraig_GetMaxLevel(Fraig_Man_t *pMan)
void Fraig_ManMarkRealFanouts(Fraig_Man_t *p)
void Fraig_NodeSetChoice(Fraig_Man_t *pMan, Fraig_Node_t *pNodeOld, Fraig_Node_t *pNodeNew)
void Fraig_NodeVecShrink(Fraig_NodeVec_t *p, int nSizeNew)
int Fraig_NodeIsVar(Fraig_Node_t *p)
Fraig_Node_t ** Fraig_ManReadInputs(Fraig_Man_t *p)
int Fraig_ManCheckConsistency(Fraig_Man_t *p)
int Fraig_ManReadNodeNum(Fraig_Man_t *p)
Fraig_Node_t * Fraig_NodeExor(Fraig_Man_t *p, Fraig_Node_t *p1, Fraig_Node_t *p2)
int Fraig_NodeReadNum(Fraig_Node_t *p)
Fraig_NodeVec_t * Fraig_DfsNodes(Fraig_Man_t *pMan, Fraig_Node_t **ppNodes, int nNodes, int fEquiv)
int Fraig_CountLevels(Fraig_Man_t *pMan)
int Fraig_ManReadFeedBack(Fraig_Man_t *p)
int * Fraig_ManReadModel(Fraig_Man_t *p)
int Fraig_ManCheckMiter(Fraig_Man_t *p)
int Fraig_ManReadConflicts(Fraig_Man_t *p)
int Fraig_ManReadInputNum(Fraig_Man_t *p)
int Fraig_NodeVecPushUniqueOrder(Fraig_NodeVec_t *p, Fraig_Node_t *pNode)
Fraig_NodeVec_t * Fraig_ManGetSimInfo(Fraig_Man_t *p)
Fraig_Node_t * Fraig_NodeVecReadEntry(Fraig_NodeVec_t *p, int i)
char ** Fraig_ManReadInputNames(Fraig_Man_t *p)
char ** Fraig_ManReadOutputNames(Fraig_Man_t *p)
Fraig_NodeVec_t * Fraig_ManReadVecOutputs(Fraig_Man_t *p)
unsigned * Fraig_NodeReadPatternsDynamic(Fraig_Node_t *p)
int Fraig_ManCheckClauseUsingSat(Fraig_Man_t *p, Fraig_Node_t *pNode1, Fraig_Node_t *pNode2, int nBTLimit)
int Fraig_NodeReadNumRefs(Fraig_Node_t *p)
void Fraig_ManProveMiter(Fraig_Man_t *p)