21#ifndef ABC__aig__saig__saig_h
22#define ABC__aig__saig__saig_h
73static inline int Saig_ManPiNum(
Aig_Man_t *
p ) {
return p->nTruePis; }
74static inline int Saig_ManPoNum(
Aig_Man_t *
p ) {
return p->nTruePos; }
75static inline int Saig_ManCiNum(
Aig_Man_t *
p ) {
return p->nTruePis +
p->nRegs; }
76static inline int Saig_ManCoNum(
Aig_Man_t *
p ) {
return p->nTruePos +
p->nRegs; }
77static inline int Saig_ManRegNum(
Aig_Man_t *
p ) {
return p->nRegs; }
78static inline int Saig_ManConstrNum(
Aig_Man_t *
p ) {
return p->nConstrs; }
82static inline int Saig_ObjIsPi(
Aig_Man_t *
p,
Aig_Obj_t * pObj ) {
return Aig_ObjIsCi(pObj) && Aig_ObjCioId(pObj) < Saig_ManPiNum(
p); }
83static inline int Saig_ObjIsPo(
Aig_Man_t *
p,
Aig_Obj_t * pObj ) {
return Aig_ObjIsCo(pObj) && Aig_ObjCioId(pObj) < Saig_ManPoNum(
p); }
84static inline int Saig_ObjIsLo(
Aig_Man_t *
p,
Aig_Obj_t * pObj ) {
return Aig_ObjIsCi(pObj) && Aig_ObjCioId(pObj) >= Saig_ManPiNum(
p); }
85static inline int Saig_ObjIsLi(
Aig_Man_t *
p,
Aig_Obj_t * pObj ) {
return Aig_ObjIsCo(pObj) && Aig_ObjCioId(pObj) >= Saig_ManPoNum(
p); }
88static inline int Saig_ObjRegId(
Aig_Man_t *
p,
Aig_Obj_t * pObj ) {
if ( Saig_ObjIsLo(
p, pObj) )
return Aig_ObjCioId(pObj)-Saig_ManPiNum(
p);
if ( Saig_ObjIsLi(
p, pObj) )
return Aig_ObjCioId(pObj)-Saig_ManPoNum(
p);
else assert(0);
return -1; }
91#define Saig_ManForEachPi( p, pObj, i ) \
92 Vec_PtrForEachEntryStop( Aig_Obj_t *, p->vCis, pObj, i, Saig_ManPiNum(p) )
93#define Saig_ManForEachPo( p, pObj, i ) \
94 Vec_PtrForEachEntryStop( Aig_Obj_t *, p->vCos, pObj, i, Saig_ManPoNum(p) )
96#define Saig_ManForEachLo( p, pObj, i ) \
97 for ( i = 0; (i < Saig_ManRegNum(p)) && (((pObj) = (Aig_Obj_t *)Vec_PtrEntry(p->vCis, i+Saig_ManPiNum(p))), 1); i++ )
98#define Saig_ManForEachLi( p, pObj, i ) \
99 for ( i = 0; (i < Saig_ManRegNum(p)) && (((pObj) = (Aig_Obj_t *)Vec_PtrEntry(p->vCos, i+Saig_ManPoNum(p))), 1); i++ )
101#define Saig_ManForEachLiLo( p, pObjLi, pObjLo, i ) \
102 for ( i = 0; (i < Saig_ManRegNum(p)) && (((pObjLi) = Saig_ManLi(p, i)), 1) \
103 && (((pObjLo)=Saig_ManLo(p, i)), 1); i++ )
139extern int Saig_ManInduction(
Aig_Man_t *
p,
int nTimeOut,
int nFramesMax,
int nConfMax,
int fUnique,
int fUniqueAll,
int fGetCex,
int fVerbose,
int fVeryVerbose );
#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 ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
int Saig_ManDemiterDual(Aig_Man_t *p, Aig_Man_t **ppAig0, Aig_Man_t **ppAig1)
void Saig_ManReportUselessRegisters(Aig_Man_t *pAig)
DECLARATIONS ///.
struct Saig_ParBbr_t_ Saig_ParBbr_t
Aig_Man_t * Saig_ManDupWithPhase(Aig_Man_t *pAig, Vec_Int_t *vInit)
Aig_Obj_t * Saig_ManFindPivot(Aig_Man_t *p)
Aig_Man_t * Saig_ManDupUnfoldConstrsFunc(Aig_Man_t *pAig, int nFrames, int nConfs, int nProps, int fOldAlgo, int fVerbose)
Aig_Man_t * Saig_ManRetimeMinArea(Aig_Man_t *p, int nMaxIters, int fForwardOnly, int fBackwardOnly, int fInitial, int fVerbose)
Aig_Man_t * Saig_ManTimeframeSimplify(Aig_Man_t *pAig, int nFrames, int nFramesMax, int fInit, int fVerbose)
Aig_Man_t * Saig_ManDupUnfoldConstrs(Aig_Man_t *pAig)
int Saig_ManDemiterNew(Aig_Man_t *pMan)
Aig_Man_t * Saig_ManDupFoldConstrsFunc2(Aig_Man_t *pAig, int fCompl, int fVerbose, int typeII_cnt)
Aig_Man_t * Saig_ManDupFoldConstrsFunc(Aig_Man_t *pAig, int fCompl, int fVerbose, int fSeqCleanup)
Aig_Man_t * Saig_ManWindowExtract(Aig_Man_t *p, Aig_Obj_t *pObj, int nDist)
Aig_Man_t * Saig_ManCreateMiterTwo(Aig_Man_t *pOld, Aig_Man_t *pNew, int nFrames)
Vec_Int_t * Saig_StrSimPerformMatching(Aig_Man_t *p0, Aig_Man_t *p1, int nDist, int fVerbose, Aig_Man_t **ppMiter)
Aig_Man_t * Saig_ManDupAbstraction(Aig_Man_t *pAig, Vec_Int_t *vFlops)
Aig_Man_t * Saig_ManHaigRecord(Aig_Man_t *p, int nIters, int nSteps, int fRetimingOnly, int fAddBugs, int fUseCnf, int fVerbose)
Vec_Int_t * Saig_ManFindIsoPerm(Aig_Man_t *pAig, int fVerbose)
Aig_Man_t * Saig_ManPhaseAbstract(Aig_Man_t *p, Vec_Int_t *vInits, int nFrames, int nPref, int fIgnore, int fPrint, int fVerbose)
Aig_Man_t * Saig_ManDupInitZero(Aig_Man_t *p)
int Ssw_SecSpecialMiter(Aig_Man_t *p0, Aig_Man_t *p1, int nFrames, int fVerbose)
Aig_Man_t * Saig_ManDecPropertyOutput(Aig_Man_t *pAig, int nLits, int fVerbose)
int Saig_ManDetectConstrTest(Aig_Man_t *p)
Aig_Man_t * Saig_ManWindowInsert(Aig_Man_t *p, Aig_Obj_t *pObj, int nDist, Aig_Man_t *pWnd)
int Saig_ManDemiterSimpleDiff(Aig_Man_t *p, Aig_Man_t **ppAig0, Aig_Man_t **ppAig1)
Vec_Vec_t * Saig_IsoDetectFast(Aig_Man_t *pAig)
Abc_Cex_t * Saig_ManExtendCex(Aig_Man_t *pAig, Abc_Cex_t *p)
Vec_Int_t * Saig_ManComputeSwitchProb2s(Aig_Man_t *p, int nFrames, int nPref, int fProbOne)
Aig_Man_t * Saig_ManDupIsoCanonical(Aig_Man_t *pAig, int fVerbose)
Aig_Man_t * Saig_ManReadBlif(char *pFileName)
Aig_Man_t * Saig_ManDupDual(Aig_Man_t *pAig, Vec_Int_t *vDcFlops, int nDualPis, int fDualFfs, int fMiterFfs, int fComplPo, int fCheckZero, int fCheckOne)
FUNCTION DEFINITIONS ///.
Aig_Man_t * Saig_ManRetimeDupForward(Aig_Man_t *p, Vec_Ptr_t *vCut)
int Saig_ManInduction(Aig_Man_t *p, int nTimeOut, int nFramesMax, int nConfMax, int fUnique, int fUniqueAll, int fGetCex, int fVerbose, int fVeryVerbose)
int Saig_ManDemiterSimple(Aig_Man_t *p, Aig_Man_t **ppAig0, Aig_Man_t **ppAig1)
Sec_MtrStatus_t Sec_MiterStatus(Aig_Man_t *p)
DECLARATIONS ///.
void Saig_ManMarkAutonomous(Aig_Man_t *p)
void Saig_ManDumpBlif(Aig_Man_t *p, char *pFileName)
void Saig_ManPrintCones(Aig_Man_t *p)
FUNCTION DECLARATIONS ///.
Aig_Man_t * Saig_ManDupFoldConstrs(Aig_Man_t *pAig, Vec_Int_t *vConstrs)
int Saig_ManFindFailedPoCex(Aig_Man_t *pAig, Abc_Cex_t *p)
Vec_Ptr_t * Saig_MvManSimulate(Aig_Man_t *pAig, int nFramesSymb, int nFramesSatur, int fVerbose, int fVeryVerbose)
Aig_Man_t * Saig_ManRetimeForward(Aig_Man_t *p, int nMaxIters, int fVerbose)
Aig_Man_t * Saig_ManDualRail(Aig_Man_t *p, int fMiter)
Aig_Man_t * Saig_ManDupOrpos(Aig_Man_t *p)
DECLARATIONS ///.
Aig_Man_t * Saig_ManCreateMiterComb(Aig_Man_t *p1, Aig_Man_t *p2, int Oper)
int Saig_ManRetimeSteps(Aig_Man_t *p, int nSteps, int fForward, int fAddBugs)
void Saig_ManDetectConstrFuncTest(Aig_Man_t *p, int nFrames, int nConfs, int nProps, int fOldAlgo, int fVerbose)
void Saig_ManBlockPo(Aig_Man_t *pAig, int nCycles)
Aig_Man_t * Saig_ManCreateMiter(Aig_Man_t *p1, Aig_Man_t *p2, int Oper)
typedefABC_NAMESPACE_HEADER_START struct Sec_MtrStatus_t_ Sec_MtrStatus_t
INCLUDES ///.
Aig_Man_t * Saig_ManIsoReduce(Aig_Man_t *pAig, Vec_Ptr_t **pvCosEquivs, int fVerbose)
Aig_Man_t * Saig_ManDupCones(Aig_Man_t *pAig, int *pPos, int nPos)
Aig_Man_t * Saig_ManCreateEquivMiter(Aig_Man_t *pAig, Vec_Int_t *vPairs, int fAddOuts)
Aig_Man_t * Saig_ManDupUnfoldConstrsFunc2(Aig_Man_t *pAig, int nFrames, int nConfs, int nProps, int fOldAlgo, int fVerbose, int *typeII_cnt)
int Saig_ManVerifyCex(Aig_Man_t *pAig, Abc_Cex_t *p)
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.