21#ifndef ABC__aig__fra__fra_h
22#define ABC__aig__fra__fra_h
257static inline unsigned * Fra_ObjSim(
Fra_Sml_t *
p,
int Id ) {
return p->pData +
p->nWordsTotal * Id; }
258static inline unsigned Fra_ObjRandomSim() {
return Aig_ManRandom(0); }
267static inline void Fra_ObjSetSatNum(
Aig_Obj_t * pObj,
int Num ) { ((
Fra_Man_t *)pObj->
pData)->pMemSatNums[pObj->
Id] = Num; }
272static inline Aig_Obj_t * Fra_ObjChild0Fra(
Aig_Obj_t * pObj,
int i ) {
assert( !Aig_IsComplement(pObj) );
return Aig_ObjFanin0(pObj)? Aig_NotCond(Fra_ObjFraig(Aig_ObjFanin0(pObj),i), Aig_ObjFaninC0(pObj)) : NULL; }
273static inline Aig_Obj_t * Fra_ObjChild1Fra(
Aig_Obj_t * pObj,
int i ) {
assert( !Aig_IsComplement(pObj) );
return Aig_ObjFanin1(pObj)? Aig_NotCond(Fra_ObjFraig(Aig_ObjFanin1(pObj),i), Aig_ObjFaninC1(pObj)) : NULL; }
275static inline int Fra_ImpLeft(
int Imp ) {
return Imp & 0xFFFF; }
276static inline int Fra_ImpRight(
int Imp ) {
return Imp >> 16; }
277static inline int Fra_ImpCreate(
int Left,
int Right ) {
return (Right << 16) | Left; }
288extern int Fra_FraigSat(
Aig_Man_t * pMan, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit,
int nLearnedStart,
int nLearnedDelta,
int nLearnedPerce,
int fFlipBits,
int fAndOuts,
int fNewSolver,
int fVerbose );
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
struct Aig_Obj_t_ Aig_Obj_t
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
unsigned Aig_ManRandom(int fReset)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
int Fra_ClassesRefine1(Fra_Cla_t *p, int fRefineNewClass, int *pSkipped)
void Fra_ClassesCopyReprs(Fra_Cla_t *p, Vec_Ptr_t *vFailed)
int Fra_NodeIsConst(Fra_Man_t *p, Aig_Obj_t *pNew)
Fra_Cla_t * Fra_ClassesStart(Aig_Man_t *pAig)
FUNCTION DEFINITIONS ///.
void Fra_FraigSweep(Fra_Man_t *pManAig)
int Fra_ImpCheckForNode(Fra_Man_t *p, Vec_Int_t *vImps, Aig_Obj_t *pNode, int Pos)
struct Fra_Bmc_t_ Fra_Bmc_t
int Fra_SmlNodeIsConst(Aig_Obj_t *pObj)
Aig_Man_t * Fra_ClassesDeriveAig(Fra_Cla_t *p, int nFramesK)
typedefABC_NAMESPACE_HEADER_START struct Fra_Par_t_ Fra_Par_t
INCLUDES ///.
void Fra_ClassesTest(Fra_Cla_t *p, int Id1, int Id2)
int Fra_ImpVerifyUsingSimulation(Fra_Man_t *p)
void Fra_ClassesStop(Fra_Cla_t *p)
void Fra_SmlSimulate(Fra_Man_t *p, int fInit)
Vec_Int_t * Fra_OneHotCompute(Fra_Man_t *p, Fra_Sml_t *pSim)
int Fra_NodesAreClause(Fra_Man_t *p, Aig_Obj_t *pOld, Aig_Obj_t *pNew, int fComplL, int fComplR)
int Fra_FraigCecPartitioned(Aig_Man_t *pMan1, Aig_Man_t *pMan2, int nConfLimit, int nPartSize, int fSmart, int fVerbose)
void Fra_OneHotAssume(Fra_Man_t *p, Vec_Int_t *vOneHots)
void Fra_OneHotEstimateCoverage(Fra_Man_t *p, Vec_Int_t *vOneHots)
Aig_Man_t * Fra_FraigEquivence(Aig_Man_t *pManAig, int nConfMax, int fProve)
Aig_Man_t * Fra_FraigLatchCorrespondence(Aig_Man_t *pAig, int nFramesP, int nConfMax, int fProve, int fVerbose, int *pnIter, float TimeLimit)
Aig_Man_t * Fra_FraigPerform(Aig_Man_t *pManAig, Fra_Par_t *pPars)
void Fra_ImpCompactArray(Vec_Int_t *vImps)
void Fra_SmlStop(Fra_Sml_t *p)
void Fra_ClassesPrepare(Fra_Cla_t *p, int fLatchCorr, int nMaxLevs)
void Fra_ImpRecordInManager(Fra_Man_t *p, Aig_Man_t *pNew)
struct Fra_Man_t_ Fra_Man_t
Fra_Sml_t * Fra_SmlStart(Aig_Man_t *pAig, int nPref, int nFrames, int nWordsFrame)
Aig_Man_t * Fra_OneHotCreateExdc(Fra_Man_t *p, Vec_Int_t *vOneHots)
int Fra_FraigCec(Aig_Man_t **ppAig, int nConfLimit, int fVerbose)
void Fra_CnfNodeAddToSolver(Fra_Man_t *p, Aig_Obj_t *pOld, Aig_Obj_t *pNew)
Vec_Int_t * Fra_ImpDerive(Fra_Man_t *p, int nImpMaxLimit, int nImpUseLimit, int fLatchCorr)
int Fra_SmlCheckOutput(Fra_Man_t *p)
Aig_Man_t * Fra_ManPrepareComb(Fra_Man_t *p)
int Fra_FraigSat(Aig_Man_t *pMan, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, int nLearnedStart, int nLearnedDelta, int nLearnedPerce, int fFlipBits, int fAndOuts, int fNewSolver, int fVerbose)
ITERATORS ///.
int Fra_SmlNodeNotEquWeight(Fra_Sml_t *p, int Left, int Right)
int Fra_OneHotRefineUsingCex(Fra_Man_t *p, Vec_Int_t *vOneHots)
void Fra_SecSetDefaultParams(Fra_Sec_t *p)
DECLARATIONS ///.
void Fra_ManStop(Fra_Man_t *p)
struct Fra_Sec_t_ Fra_Sec_t
int Fra_ClassesRefine(Fra_Cla_t *p)
int Fra_ClassesCountLits(Fra_Cla_t *p)
void Fra_OneHotAddKnownConstraint(Fra_Man_t *p, Vec_Ptr_t *vOnehots)
struct Fra_Sml_t_ Fra_Sml_t
Fra_Sml_t * Fra_SmlSimulateComb(Aig_Man_t *pAig, int nWords, int fCheckMiter)
Fra_Man_t * Fra_ManStart(Aig_Man_t *pManAig, Fra_Par_t *pParams)
void Fra_ImpAddToSolver(Fra_Man_t *p, Vec_Int_t *vImps, int *pSatVarNums)
void Fra_ClassesPostprocess(Fra_Cla_t *p)
Aig_Man_t * Fra_FraigChoice(Aig_Man_t *pManAig, int nConfMax, int nLevelMax)
Abc_Cex_t * Fra_SmlCopyCounterExample(Aig_Man_t *pAig, Aig_Man_t *pFrames, int *pModel)
void Fra_ClassesLatchCorr(Fra_Man_t *p)
void Fra_BmcStop(Fra_Bmc_t *p)
void Fra_ClassesSelectRepr(Fra_Cla_t *p)
int Fra_NodesAreImp(Fra_Man_t *p, Aig_Obj_t *pOld, Aig_Obj_t *pNew, int fComplL, int fComplR)
int Fra_BmcNodeIsConst(Aig_Obj_t *pObj)
Fra_Sml_t * Fra_SmlSimulateCombGiven(Aig_Man_t *pAig, char *pFileName, int fCheckMiter, int fVerbose)
int Fra_ClassesCountPairs(Fra_Cla_t *p)
int Fra_SmlNodesAreEqual(Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
int Fra_BmcNodesAreEqual(Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
FUNCTION DEFINITIONS ///.
void Fra_SmlResimulate(Fra_Man_t *p)
void Fra_OneHotCheck(Fra_Man_t *p, Vec_Int_t *vOneHots)
int Fra_FraigMiterAssertedOutput(Aig_Man_t *p)
void Fra_ManFinalizeComb(Fra_Man_t *p)
int Fra_SmlNodeCountOnes(Fra_Sml_t *p, Aig_Obj_t *pObj)
int Fra_FraigMiterStatus(Aig_Man_t *p)
DECLARATIONS ///.
struct Fra_Ssw_t_ Fra_Ssw_t
int Fra_SmlNodeHash(Aig_Obj_t *pObj, int nTableSize)
DECLARATIONS ///.
void Fra_ClassesPrint(Fra_Cla_t *p, int fVeryVerbose)
int Fra_ImpRefineUsingCex(Fra_Man_t *p, Vec_Int_t *vImps)
int Fra_InvariantVerify(Aig_Man_t *p, int nFrames, Vec_Int_t *vClauses, Vec_Int_t *vLits)
DECLARATIONS ///.
void Fra_BmcPerformSimple(Aig_Man_t *pAig, int nFrames, int nBTLimit, int fRewrite, int fVerbose)
Fra_Sml_t * Fra_SmlSimulateSeq(Aig_Man_t *pAig, int nPref, int nFrames, int nWords, int fCheckMiter)
Aig_Man_t * Fra_FraigInduction(Aig_Man_t *p, Fra_Ssw_t *pPars)
int Fra_FraigSec(Aig_Man_t *p, Fra_Sec_t *pParSec, Aig_Man_t **ppResult)
struct Fra_Cla_t_ Fra_Cla_t
void Fra_ManClean(Fra_Man_t *p, int nNodesMax)
int Fra_OneHotCount(Fra_Man_t *p, Vec_Int_t *vOneHots)
void Fra_ManPrint(Fra_Man_t *p)
void Fra_ParamsDefault(Fra_Par_t *pParams)
DECLARATIONS ///.
Abc_Cex_t * Fra_SmlGetCounterExample(Fra_Sml_t *p)
int Fra_NodesAreEquiv(Fra_Man_t *p, Aig_Obj_t *pOld, Aig_Obj_t *pNew)
FUNCTION DEFINITIONS ///.
void Fra_BmcPerform(Fra_Man_t *p, int nPref, int nDepth)
void Fra_SmlSavePattern(Fra_Man_t *p)
double Fra_ImpComputeStateSpaceRatio(Fra_Man_t *p)
void Fra_ParamsDefaultSeq(Fra_Par_t *pParams)
int(* pFuncNodeIsConst)(Aig_Obj_t *)
int(* pFuncNodesAreEqual)(Aig_Obj_t *, Aig_Obj_t *)
int(* pFuncNodeHash)(Aig_Obj_t *, int)
Aig_Obj_t ** pMemClassesFree
ABC_INT64_T nBTLimitGlobal
ABC_INT64_T nInsLimitGlobal
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.