21 #ifndef ABC__aig__gia__gia_h
22 #define ABC__aig__gia__gia_h
44 #define GIA_NONE 0x1FFFFFFF
45 #define GIA_VOID 0x0FFFFFFF
310 static inline unsigned Gia_ObjCutSign(
unsigned ObjId ) {
return (1 << (ObjId & 31)); }
315 uWord = (uWord & 0x55555555) + ((uWord>>1) & 0x55555555);
316 uWord = (uWord & 0x33333333) + ((uWord>>2) & 0x33333333);
317 uWord = (uWord & 0x0F0F0F0F) + ((uWord>>4) & 0x0F0F0F0F);
318 uWord = (uWord & 0x00FF00FF) + ((uWord>>8) & 0x00FF00FF);
319 return (uWord & 0x0000FFFF) + (uWord>>16);
324 for ( i = 0; i < 32; i++ )
325 if ( uWord & (1 << i) )
342 if ( pIn[w] != ~(
unsigned)0 )
362 pOut[w] = ~(
unsigned)0;
508 static inline void Gia_ObjSetMuxLevel(
Gia_Man_t *
p,
Gia_Obj_t * pObj ) {
assert(
Gia_ObjIsMux(p,pObj) );
Gia_ObjSetLevel( p, pObj, 2+
Abc_MaxInt(
Abc_MaxInt(
Gia_ObjLevel(p,
Gia_ObjFanin0(pObj)),
Gia_ObjLevel(p,
Gia_ObjFanin1(pObj))),
Gia_ObjLevel(p,
Gia_ObjFanin2(p,pObj))) ); }
566 if ( p->
nObjs == (1 << 29) )
567 printf(
"Hard limit on the number of nodes (2^29) is reached. Quitting...\n" ),
exit(1);
570 printf(
"Extending GIA object storage: %d -> %d.\n", p->
nObjsAlloc, nObjNew );
630 return iLit0 ? iLit1 : 0;
632 return iLit1 ? iLit0 : 0;
633 if ( iLit0 == iLit1 )
755 if ( Value ==
GIA_ZER + fCompl )
830 for ( i = 0; i < 4; i++ )
831 Value = (Value << 8) | *pPos++;
837 for ( i = 3; i >= 0; i-- )
838 *pPos++ = (Value >> (8*i)) & 255;
842 unsigned x = 0, i = 0;
844 while ((ch = *(*ppPos)++) & 0x80)
845 x |= (ch & 0x7f) << (7 * i++);
846 return x | (ch << (7 * i));
853 ch = (x & 0x7f) | 0x80;
865 ch = (x & 0x7f) | 0x80;
877 ch = (x & 0x7f) | 0x80;
925 #define Gia_ManForEachConst( p, i ) \
926 for ( i = 1; i < Gia_ManObjNum(p); i++ ) if ( !Gia_ObjIsConst(p, i) ) {} else
927 #define Gia_ManForEachClass( p, i ) \
928 for ( i = 1; i < Gia_ManObjNum(p); i++ ) if ( !Gia_ObjIsHead(p, i) ) {} else
929 #define Gia_ManForEachClassReverse( p, i ) \
930 for ( i = Gia_ManObjNum(p) - 1; i > 0; i-- ) if ( !Gia_ObjIsHead(p, i) ) {} else
931 #define Gia_ClassForEachObj( p, i, iObj ) \
932 for ( assert(Gia_ObjIsHead(p, i)), iObj = i; iObj; iObj = Gia_ObjNext(p, iObj) )
933 #define Gia_ClassForEachObj1( p, i, iObj ) \
934 for ( assert(Gia_ObjIsHead(p, i)), iObj = Gia_ObjNext(p, i); iObj; iObj = Gia_ObjNext(p, iObj) )
946 #define Gia_ObjForEachFanoutStatic( p, pObj, pFanout, i ) \
947 for ( i = 0; (i < Gia_ObjFanoutNum(p, pObj)) && (((pFanout) = Gia_ObjFanout(p, pObj, i)), 1); i++ )
948 #define Gia_ObjForEachFanoutStaticId( p, Id, FanId, i ) \
949 for ( i = 0; (i < Gia_ObjFanoutNumId(p, Id)) && (((FanId) = Gia_ObjFanoutId(p, Id, i)), 1); i++ )
968 #define Gia_ManForEachLut( p, i ) \
969 for ( i = 1; i < Gia_ManObjNum(p); i++ ) if ( !Gia_ObjIsLut(p, i) ) {} else
970 #define Gia_LutForEachFanin( p, i, iFan, k ) \
971 for ( k = 0; k < Gia_ObjLutSize(p,i) && ((iFan = Gia_ObjLutFanins(p,i)[k]),1); k++ )
972 #define Gia_LutForEachFaninObj( p, i, pFanin, k ) \
973 for ( k = 0; k < Gia_ObjLutSize(p,i) && ((pFanin = Gia_ManObj(p, Gia_ObjLutFanins(p,i)[k])),1); k++ )
975 #define Gia_ManForEachCell( p, i ) \
976 for ( i = 2; i < 2*Gia_ManObjNum(p); i++ ) if ( !Gia_ObjIsCell(p, i) ) {} else
977 #define Gia_CellForEachFanin( p, i, iFanLit, k ) \
978 for ( k = 0; k < Gia_ObjCellSize(p,i) && ((iFanLit = Gia_ObjCellFanins(p,i)[k]),1); k++ )
984 #define Gia_ManForEachObj( p, pObj, i ) \
985 for ( i = 0; (i < p->nObjs) && ((pObj) = Gia_ManObj(p, i)); i++ )
986 #define Gia_ManForEachObj1( p, pObj, i ) \
987 for ( i = 1; (i < p->nObjs) && ((pObj) = Gia_ManObj(p, i)); i++ )
988 #define Gia_ManForEachObjVec( vVec, p, pObj, i ) \
989 for ( i = 0; (i < Vec_IntSize(vVec)) && ((pObj) = Gia_ManObj(p, Vec_IntEntry(vVec,i))); i++ )
990 #define Gia_ManForEachObjVecReverse( vVec, p, pObj, i ) \
991 for ( i = Vec_IntSize(vVec) - 1; (i >= 0) && ((pObj) = Gia_ManObj(p, Vec_IntEntry(vVec,i))); i-- )
992 #define Gia_ManForEachObjVecLit( vVec, p, pObj, fCompl, i ) \
993 for ( i = 0; (i < Vec_IntSize(vVec)) && ((pObj) = Gia_ManObj(p, Abc_Lit2Var(Vec_IntEntry(vVec,i)))) && (((fCompl) = Abc_LitIsCompl(Vec_IntEntry(vVec,i))),1); i++ )
994 #define Gia_ManForEachObjReverse( p, pObj, i ) \
995 for ( i = p->nObjs - 1; (i >= 0) && ((pObj) = Gia_ManObj(p, i)); i-- )
996 #define Gia_ManForEachObjReverse1( p, pObj, i ) \
997 for ( i = p->nObjs - 1; (i > 0) && ((pObj) = Gia_ManObj(p, i)); i-- )
998 #define Gia_ManForEachBuf( p, pObj, i ) \
999 for ( i = Gia_ManBufNum(p) ? 0 : p->nObjs; (i < p->nObjs) && ((pObj) = Gia_ManObj(p, i)); i++ ) if ( !Gia_ObjIsBuf(pObj) ) {} else
1000 #define Gia_ManForEachBufId( p, i ) \
1001 for ( i = 0; (i < p->nObjs); i++ ) if ( !Gia_ObjIsBuf(Gia_ManObj(p, i)) ) {} else
1002 #define Gia_ManForEachAnd( p, pObj, i ) \
1003 for ( i = 0; (i < p->nObjs) && ((pObj) = Gia_ManObj(p, i)); i++ ) if ( !Gia_ObjIsAnd(pObj) ) {} else
1004 #define Gia_ManForEachAndId( p, i ) \
1005 for ( i = 0; (i < p->nObjs); i++ ) if ( !Gia_ObjIsAnd(Gia_ManObj(p, i)) ) {} else
1006 #define Gia_ManForEachMuxId( p, i ) \
1007 for ( i = 0; (i < p->nObjs); i++ ) if ( !Gia_ObjIsMuxId(p, i) ) {} else
1008 #define Gia_ManForEachCand( p, pObj, i ) \
1009 for ( i = 0; (i < p->nObjs) && ((pObj) = Gia_ManObj(p, i)); i++ ) if ( !Gia_ObjIsCand(pObj) ) {} else
1010 #define Gia_ManForEachAndReverse( p, pObj, i ) \
1011 for ( i = p->nObjs - 1; (i > 0) && ((pObj) = Gia_ManObj(p, i)); i-- ) if ( !Gia_ObjIsAnd(pObj) ) {} else
1012 #define Gia_ManForEachAndReverseId( p, i ) \
1013 for ( i = p->nObjs - 1; (i > 0); i-- ) if ( !Gia_ObjIsAnd(Gia_ManObj(p, i)) ) {} else
1014 #define Gia_ManForEachMux( p, pObj, i ) \
1015 for ( i = 0; (i < p->nObjs) && ((pObj) = Gia_ManObj(p, i)); i++ ) if ( !Gia_ObjIsMuxId(p, i) ) {} else
1016 #define Gia_ManForEachCi( p, pObj, i ) \
1017 for ( i = 0; (i < Vec_IntSize(p->vCis)) && ((pObj) = Gia_ManCi(p, i)); i++ )
1018 #define Gia_ManForEachCiId( p, Id, i ) \
1019 for ( i = 0; (i < Vec_IntSize(p->vCis)) && ((Id) = Gia_ObjId(p, Gia_ManCi(p, i))); i++ )
1020 #define Gia_ManForEachCiReverse( p, pObj, i ) \
1021 for ( i = Vec_IntSize(p->vCis) - 1; (i >= 0) && ((pObj) = Gia_ManCi(p, i)); i-- )
1022 #define Gia_ManForEachCo( p, pObj, i ) \
1023 for ( i = 0; (i < Vec_IntSize(p->vCos)) && ((pObj) = Gia_ManCo(p, i)); i++ )
1024 #define Gia_ManForEachCoVec( vVec, p, pObj, i ) \
1025 for ( i = 0; (i < Vec_IntSize(vVec)) && ((pObj) = Gia_ManCo(p, Vec_IntEntry(vVec,i))); i++ )
1026 #define Gia_ManForEachCoId( p, Id, i ) \
1027 for ( i = 0; (i < Vec_IntSize(p->vCos)) && ((Id) = Gia_ObjId(p, Gia_ManCo(p, i))); i++ )
1028 #define Gia_ManForEachCoReverse( p, pObj, i ) \
1029 for ( i = Vec_IntSize(p->vCos) - 1; (i >= 0) && ((pObj) = Gia_ManCo(p, i)); i-- )
1030 #define Gia_ManForEachCoDriver( p, pObj, i ) \
1031 for ( i = 0; (i < Vec_IntSize(p->vCos)) && ((pObj) = Gia_ObjFanin0(Gia_ManCo(p, i))); i++ )
1032 #define Gia_ManForEachCoDriverId( p, DriverId, i ) \
1033 for ( i = 0; (i < Vec_IntSize(p->vCos)) && (((DriverId) = Gia_ObjFaninId0p(p, Gia_ManCo(p, i))), 1); i++ )
1034 #define Gia_ManForEachPi( p, pObj, i ) \
1035 for ( i = 0; (i < Gia_ManPiNum(p)) && ((pObj) = Gia_ManCi(p, i)); i++ )
1036 #define Gia_ManForEachPo( p, pObj, i ) \
1037 for ( i = 0; (i < Gia_ManPoNum(p)) && ((pObj) = Gia_ManCo(p, i)); i++ )
1038 #define Gia_ManForEachRo( p, pObj, i ) \
1039 for ( i = 0; (i < Gia_ManRegNum(p)) && ((pObj) = Gia_ManCi(p, Gia_ManPiNum(p)+i)); i++ )
1040 #define Gia_ManForEachRi( p, pObj, i ) \
1041 for ( i = 0; (i < Gia_ManRegNum(p)) && ((pObj) = Gia_ManCo(p, Gia_ManPoNum(p)+i)); i++ )
1042 #define Gia_ManForEachRiRo( p, pObjRi, pObjRo, i ) \
1043 for ( i = 0; (i < Gia_ManRegNum(p)) && ((pObjRi) = Gia_ManCo(p, Gia_ManPoNum(p)+i)) && ((pObjRo) = Gia_ManCi(p, Gia_ManPiNum(p)+i)); i++ )
static int Gia_WordHasOneBit(unsigned uWord)
Tas_Man_t * Tas_ManAlloc(Gia_Man_t *pAig, int nBTLimit)
static int Gia_ObjFanin2Copy(Gia_Man_t *p, Gia_Obj_t *pObj)
static void Gia_ManCleanCopyArray(Gia_Man_t *p)
static void Gia_ManPatchCoDriver(Gia_Man_t *p, int iCoIndex, int iLit0)
Gia_Man_t * Gia_ManDupMarked(Gia_Man_t *p)
static void Gia_ManTruthCopy(unsigned *pOut, unsigned *pIn, int nVars)
static void Gia_ObjRefFanin2Inc(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjIsCellBuf(Gia_Man_t *p, int iLit)
static int Gia_ObjToLit(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjLevelId(Gia_Man_t *p, int Id)
int Tas_ManSolveArray(Tas_Man_t *p, Vec_Ptr_t *vObjs)
static int Gia_ManAppendAnd(Gia_Man_t *p, int iLit0, int iLit1)
static void Gia_ObjSetCopyF(Gia_Man_t *p, int f, Gia_Obj_t *pObj, int iLit)
static void Gia_ObjTerSimCo(Gia_Obj_t *pObj)
void Gia_ManCountMuxXor(Gia_Man_t *p, int *pnMuxes, int *pnXors)
DECLARATIONS ///.
void Gia_ManCreateRefs(Gia_Man_t *p)
static void Gia_ObjRefFanin0Inc(Gia_Man_t *p, Gia_Obj_t *pObj)
float Gia_ManDelayTraceLutPrint(Gia_Man_t *p, int fVerbose)
void Gia_MmStepStop(Gia_MmStep_t *p, int fVerbose)
void Gia_ManCleanPhase(Gia_Man_t *p)
Gia_Man_t * Gia_ManMapShrink4(Gia_Man_t *p, int fKeepLevel, int fVerbose)
FUNCTION DEFINITIONS ///.
static Gia_Obj_t * Gia_ObjChild0(Gia_Obj_t *pObj)
static int Gia_ManMuxNum(Gia_Man_t *p)
Gia_Man_t * Gia_SweeperCleanup(Gia_Man_t *p, char *pCommLime)
int Gia_ObjRecognizeExor(Gia_Obj_t *pObj, Gia_Obj_t **ppFan0, Gia_Obj_t **ppFan1)
static int Gia_ObjFaninC2(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManSpecReduce(Gia_Man_t *p, int fDualOut, int fSynthesis, int fReduce, int fSkipSome, int fVerbose)
static void Gia_ObjUnsetRepr(Gia_Man_t *p, int Id)
static void Gia_ObjSetLevelId(Gia_Man_t *p, int Id, int l)
Gia_Man_t * Gia_ManDupUnshuffleInputs(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupCones(Gia_Man_t *p, int *pPos, int nPos, int fTrimPis)
static int Gia_ObjCellId(Gia_Man_t *p, int iLit)
Vec_Int_t * Gia_ManGetCiLevels(Gia_Man_t *p)
word Gia_ObjComputeTruthTable6(Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vSupp, Vec_Wrd_t *vTruths)
static int Gia_ObjFaninLit0(Gia_Obj_t *pObj, int ObjId)
float Gia_ManComputeSwitching(Gia_Man_t *p, int nFrames, int nPref, int fProbOne)
int Gia_ManEquivCountLits(Gia_Man_t *p)
static void Gia_ObjTerSimRo(Gia_Man_t *p, Gia_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
void Gia_ManInvertConstraints(Gia_Man_t *pAig)
Gia_Man_t * Gia_ManDupTrimmed(Gia_Man_t *p, int fTrimCis, int fTrimCos, int fDualOut, int OutValue)
int Gia_ManIsSeqWithBoxes(Gia_Man_t *p)
Gia_Man_t * Jf_ManPerformMapping(Gia_Man_t *pGia, Jf_Par_t *pPars)
static int Gia_ObjFaninLit2(Gia_Man_t *p, int ObjId)
void Gia_ManDeriveReprs(Gia_Man_t *p)
static int Gia_ObjIsAndNotBuf(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManPerformDsdBalanceWin(Gia_Man_t *p, int LevelMax, int nTimeWindow, int nLutSize, int nCutNum, int nRelaxRatio, int fVerbose)
static int Gia_ManAppendMuxReal(Gia_Man_t *p, int iLitC, int iLit1, int iLit0)
void Lf_ManSetDefaultPars(Jf_Par_t *pPars)
Gia_Man_t * Gia_ManDupUnnormalize(Gia_Man_t *p)
static int Gia_ObjIsClass(Gia_Man_t *p, int Id)
static int Gia_ObjIsAndReal(Gia_Man_t *p, Gia_Obj_t *pObj)
int Gia_ManCrossCut(Gia_Man_t *p, int fReverse)
static int Gia_ObjFoffsetId(Gia_Man_t *p, int Id)
static int Gia_ObjPhase(Gia_Obj_t *pObj)
static void Gia_ObjTerSimSet0(Gia_Obj_t *pObj)
int Gia_MmFixedReadMaxEntriesUsed(Gia_MmFixed_t *p)
static void Gia_ObjSetTimeSlackObj(Gia_Man_t *p, Gia_Obj_t *pObj, float t)
Gia_Man_t * Gia_ManPerformBidec(Gia_Man_t *p, int fVerbose)
static Gia_Obj_t * Gia_ObjSiblObj(Gia_Man_t *p, int Id)
Gia_Man_t * Gia_ManIsoReduce(Gia_Man_t *p, Vec_Ptr_t **pvPosEquivs, Vec_Ptr_t **pvPiPerms, int fEstimate, int fDualOut, int fVerbose, int fVeryVerbose)
static int Gia_ObjIsTravIdPrevious(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManExtractWindow(Gia_Man_t *p, int LevelMax, int nTimeWindow, int fVerbose)
static int Gia_ManAppendXor(Gia_Man_t *p, int iLit0, int iLit1)
Gia_Man_t * Gia_ManDup(Gia_Man_t *p)
int Gia_ManSuppSize(Gia_Man_t *p, int *pNodes, int nNodes)
float Gia_ManDelayTraceLut(Gia_Man_t *p)
void Gia_ObjCollectInternal(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjPhaseReal(Gia_Obj_t *pObj)
void Gia_ManStop(Gia_Man_t *p)
Gia_Man_t * Gia_ManTransformMiter(Gia_Man_t *p)
static void Gia_AigerWriteInt(unsigned char *pPos, int Value)
Gia_Man_t * Gia_ManDupOneHot(Gia_Man_t *p)
static void Vec_FltWriteEntry(Vec_Flt_t *p, int i, float Entry)
Gia_Man_t * Gia_ManUpdateExtraAig(void *pTime, Gia_Man_t *pAig, Vec_Int_t *vBoxPres)
Vec_Int_t * Cbs_ManSolveMiter(Gia_Man_t *pGia, int nConfs, Vec_Str_t **pvStatus, int fVerbose)
void Gia_ManEquivPrintOne(Gia_Man_t *p, int i, int Counter)
void Gia_ManSolveProblem(Gia_Man_t *pGia, Emb_Par_t *pPars)
unsigned * Gia_SimDataCiExt(Gia_ManSim_t *p, int i)
Gia_Man_t * Gia_ManEquivReduceAndRemap(Gia_Man_t *p, int fSeq, int fMiterPairs)
int Gia_SweeperIsRunning(Gia_Man_t *p)
void Tas_ManStop(Tas_Man_t *p)
int Gia_ManVerifyCex(Gia_Man_t *pAig, Abc_Cex_t *p, int fDualOut)
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
void Gia_ManSetRefsMapped(Gia_Man_t *p)
void Gia_ManPrintStats(Gia_Man_t *p, Gps_Par_t *pPars)
void Gia_ObjComputeTruthTableStart(Gia_Man_t *p, int nVarsMax)
Gia_Man_t * Gia_AigerRead(char *pFileName, int fSkipStrash, int fCheck)
void Gia_ManLoadValue(Gia_Man_t *p, Vec_Int_t *vValues)
Gia_Man_t * Gia_ManDupCofAllInt(Gia_Man_t *p, Vec_Int_t *vSigs, int fVerbose)
static int Gia_ManPoNum(Gia_Man_t *p)
static int Gia_ObjFaninC1(Gia_Obj_t *pObj)
static int Gia_ObjTerSimGet0Fanin1(Gia_Obj_t *pObj)
static void Gia_ObjSetValue(Gia_Obj_t *pObj, int i)
static Gia_Obj_t * Gia_ManCi(Gia_Man_t *p, int v)
static int Gia_ObjColor(Gia_Man_t *p, int Id, int c)
static int Gia_ManAppendCo(Gia_Man_t *p, int iLit0)
void Gia_SweeperSetRuntimeLimit(Gia_Man_t *p, int nSeconds)
static Gia_Obj_t * Gia_NotCond(Gia_Obj_t *p, int c)
int Gia_ManLutLevel(Gia_Man_t *p)
static int Gia_ManChoiceNum(Gia_Man_t *p)
int Gia_ManHashXor(Gia_Man_t *p, int iLit0, int iLit1)
Gia_Man_t * Gia_ManDupPerm(Gia_Man_t *p, Vec_Int_t *vPiPerm)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
int Gia_ManRegBoxNum(Gia_Man_t *p)
static void Gia_ObjRefFanin1Inc(Gia_Man_t *p, Gia_Obj_t *pObj)
word * Gia_ObjComputeTruthTableCut(Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vLeaves)
int Gia_ManSimSimulate(Gia_Man_t *pAig, Gia_ParSim_t *pPars)
void Gia_ManStgPrint(FILE *pFile, Vec_Int_t *vLines, int nIns, int nOuts, int nStates)
Vec_Int_t * Gia_ManCollectNodesCis(Gia_Man_t *p, int *pNodes, int nNodes)
Gia_Man_t * Gia_AigerReadFromMemory(char *pContents, int nFileSize, int fSkipStrash, int fCheck)
static Gia_Obj_t * Gia_Regular(Gia_Obj_t *p)
int Gia_ManCompare(Gia_Man_t *p1, Gia_Man_t *p2)
static int Gia_ObjFaninLit2p(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjIsTravIdCurrent(Gia_Man_t *p, Gia_Obj_t *pObj)
static void Gia_ObjSetTravIdPrevious(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupOrderAiger(Gia_Man_t *p)
static int Gia_ManIsConstLit(int iLit)
static int Gia_ManCiLit(Gia_Man_t *p, int CiId)
static char * Gia_ManName(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjFromLit(Gia_Man_t *p, int iLit)
static int Gia_ObjFanin1CopyF(Gia_Man_t *p, int f, Gia_Obj_t *pObj)
Vec_Int_t * Gia_ManFirstFanouts(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupCofactorObj(Gia_Man_t *p, int iObj, int Value)
Gia_Man_t * Gia_ManReadMiniAig(char *pFileName)
static Gia_Obj_t * Gia_ManPo(Gia_Man_t *p, int v)
void Gia_ManSetMark1(Gia_Man_t *p)
#define ABC_REALLOC(type, obj, num)
static int Gia_ObjFaninLit0p(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjIsCand(Gia_Obj_t *pObj)
static int Gia_ObjNum(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupPermFlop(Gia_Man_t *p, Vec_Int_t *vFfPerm)
void Gia_MmFlexRestart(Gia_MmFlex_t *p)
Vec_Int_t * Gia_SweeperGetCex(Gia_Man_t *p)
int Gia_ManSeqMarkUsed(Gia_Man_t *p)
Vec_Int_t * Gia_SweeperGraft(Gia_Man_t *pDst, Vec_Int_t *vProbes, Gia_Man_t *pSrc)
void Mf_ManSetDefaultPars(Jf_Par_t *pPars)
void Gia_ManInvertPos(Gia_Man_t *pAig)
static int Gia_ObjLutMuxId(Gia_Man_t *p, int Id)
static int Gia_ManConstrNum(Gia_Man_t *p)
static int Gia_ObjPhaseRealLit(Gia_Man_t *p, int iLit)
Gia_Man_t * Gia_ManFrames(Gia_Man_t *pAig, Gia_ParFra_t *pPars)
Gia_Man_t * Gia_ManDupOntop(Gia_Man_t *p, Gia_Man_t *p2)
static void Gia_ObjSetGateLevel(Gia_Man_t *p, Gia_Obj_t *pObj)
Vec_Int_t * Gia_ManGetDangling(Gia_Man_t *p)
Gia_Man_t * Lf_ManPerformMapping(Gia_Man_t *pGia, Jf_Par_t *pPars)
static int Gia_ManAppendCi(Gia_Man_t *p)
static int Gia_ObjDiff1(Gia_Obj_t *pObj)
int Gia_ManLevelWithBoxes(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupOrderDfs(Gia_Man_t *p)
static int Gia_ObjTerSimGet0Fanin0(Gia_Obj_t *pObj)
void Gia_ManCleanValue(Gia_Man_t *p)
Gia_Man_t * Gia_SweeperStart(Gia_Man_t *p)
void Gia_ManCheckIntegrityWithBoxes(Gia_Man_t *p)
void Gia_ManCleanMark0(Gia_Man_t *p)
Gia_Man_t * Gia_ManRemoveEnables(Gia_Man_t *p)
void Gia_ManRandomInfo(Vec_Ptr_t *vInfo, int iInputStart, int iWordStart, int iWordStop)
static int Gia_ObjIsConst0(Gia_Obj_t *pObj)
static int Abc_Var2Lit(int Var, int fCompl)
Gia_Man_t * Gia_ManDupOutputGroup(Gia_Man_t *p, int iOutStart, int iOutStop)
static int Gia_ObjRefNumId(Gia_Man_t *p, int Id)
static int Gia_ManObjIsConst0(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ObjComputeTruthTableStop(Gia_Man_t *p)
void Gia_ManLutParams(Gia_Man_t *p, int *pnCurLuts, int *pnCurEdges, int *pnCurLevels)
Abc_Cex_t * Gia_ManCexExtendToIncludeAllObjects(Gia_Man_t *p, Abc_Cex_t *pCex)
Gia_Man_t * Gia_ManDupDfsClasses(Gia_Man_t *p)
static int Gia_ObjRefDecId(Gia_Man_t *p, int Id)
static int Gia_WordFindFirstBit(unsigned uWord)
void Gia_ManEquivImprove(Gia_Man_t *p)
Gia_Man_t * Gia_ManStgRead(char *pFileName, int kHot, int fVerbose)
static int Gia_ObjValue(Gia_Obj_t *pObj)
static int Gia_ObjFaninId1p(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjIsHead(Gia_Man_t *p, int Id)
int Gia_ManSetLevels(Gia_Man_t *p, Vec_Int_t *vCiLevels)
static int Gia_ObjIsTerm(Gia_Obj_t *pObj)
static int Gia_ObjRefNum(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Mf_ManPerformMapping(Gia_Man_t *pGia, Jf_Par_t *pPars)
int Gia_SweeperProbeDelete(Gia_Man_t *p, int ProbeId)
void Gia_ManPrintStatsShort(Gia_Man_t *p)
static void Vec_IntSetEntry(Vec_Int_t *p, int i, int Entry)
static Vec_Flt_t * Vec_FltAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static int Gia_WordCountOnes(unsigned uWord)
Gia_Man_t * Gia_ManDupFlopClass(Gia_Man_t *p, int iClass)
void * Gia_ManUnrollAdd(void *pMan, int fMax)
Gia_MmFixed_t * Gia_MmFixedStart(int nEntrySize, int nEntriesMax)
FUNCTION DEFINITIONS ///.
Gia_Man_t * Gia_ManMapShrink6(Gia_Man_t *p, int nFanoutMax, int fKeepLevel, int fVerbose)
void Gia_ManPrintCone2(Gia_Man_t *p, Gia_Obj_t *pObj)
static void Gia_ObjTerSimPrint(Gia_Obj_t *pObj)
static int Gia_ObjIsBuf(Gia_Obj_t *pObj)
int Gia_ObjRecognizeMuxLits(Gia_Man_t *p, Gia_Obj_t *pNode, int *iLitT, int *iLitE)
Gia_Man_t * Gia_ManSpecReduceInit(Gia_Man_t *p, Abc_Cex_t *pInit, int nFrames, int fDualOut)
static int Vec_IntGetEntry(Vec_Int_t *p, int i)
void Gia_ManSetRegNum(Gia_Man_t *p, int nRegs)
Gia_Man_t * Jf_ManDeriveCnf(Gia_Man_t *p, int fCnfObjIds)
static int Gia_ManPoIsConst0(Gia_Man_t *p, int iPoIndex)
static int Gia_ManAndNotBufNum(Gia_Man_t *p)
static int Gia_XsimNotCond(int Value, int fCompl)
static int Abc_TruthWordNum(int nVars)
int Gia_ManHashAndTry(Gia_Man_t *p, int iLit0, int iLit1)
static void Gia_AigerWriteUnsigned(Vec_Str_t *vStr, unsigned x)
Gia_Man_t * Gia_ManIsoReduce2(Gia_Man_t *p, Vec_Ptr_t **pvPosEquivs, Vec_Ptr_t **pvPiPerms, int fEstimate, int fBetterQual, int fDualOut, int fVerbose, int fVeryVerbose)
int Gia_ManLutNum(Gia_Man_t *p)
Gia_Man_t * Gia_ManAigSyn3(Gia_Man_t *p, int fVerbose, int fVeryVerbose)
static int Gia_XsimAndCond(int Value0, int fCompl0, int Value1, int fCompl1)
Gia_Man_t * Gia_ManDupZero(Gia_Man_t *p)
static int Gia_ObjTerSimGet1Fanin0(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManPerformFx(Gia_Man_t *p, int nNewNodesMax, int LitCountMax, int fReverse, int fVerbose, int fVeryVerbose)
Gia_Man_t * Gia_ManDupAndOr(Gia_Man_t *p, int nOuts, int fUseOr, int fCompl)
int Sat_ManTest(Gia_Man_t *pGia, Gia_Obj_t *pObj, int nConfsMax)
static int Abc_MaxInt(int a, int b)
static void Vec_StrPush(Vec_Str_t *p, char Entry)
void Gia_ObjAddFanout(Gia_Man_t *p, Gia_Obj_t *pObj, Gia_Obj_t *pFanout)
void Gia_ManPrintCo(Gia_Man_t *p, Gia_Obj_t *pObj)
int Gia_ManCounterExampleValueLookup(Gia_Man_t *pGia, int Id, int iFrame)
unsigned * Gia_SimDataExt(Gia_ManSim_t *p, int i)
void Gia_ManCleanTruth(Gia_Man_t *p)
static int Vec_WrdSize(Vec_Wrd_t *p)
int Gia_ManSetFailedPoCex(Gia_Man_t *pAig, Abc_Cex_t *p)
static int Gia_ObjFoffset(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupAppendCones(Gia_Man_t *p, Gia_Man_t **ppCones, int nCones, int fOnlyRegs)
void Gia_ManPrintMappingStats(Gia_Man_t *p, char *pDumpFile)
static int Gia_ObjTerSimGetX(Gia_Obj_t *pObj)
static float Gia_ObjTimeRequiredObj(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManPerformMapping(Gia_Man_t *p, void *pIfPars)
static void Vec_FltFill(Vec_Flt_t *p, int nSize, float Entry)
int Gia_ManCountChoiceNodes(Gia_Man_t *p)
static void Vec_FltFreeP(Vec_Flt_t **p)
static Gia_Obj_t * Gia_ManObj(Gia_Man_t *p, int v)
int Gia_FileSize(char *pFileName)
FUNCTION DECLARATIONS ///.
static void Gia_ObjSetTimeArrivalObj(Gia_Man_t *p, Gia_Obj_t *pObj, float t)
static int Abc_LitNotCond(int Lit, int c)
Gia_Man_t * Gia_ManDupFromVecs(Gia_Man_t *p, Vec_Int_t *vCis, Vec_Int_t *vAnds, Vec_Int_t *vCos, int nRegs)
Gia_Man_t * Gia_ManPerformDsdBalance(Gia_Man_t *p, int nLutSize, int nCutNum, int nRelaxRatio, int fVerbose)
void Gia_ManCleanMark1(Gia_Man_t *p)
static Gia_Obj_t * Gia_ManConst1(Gia_Man_t *p)
int Gia_ManFindFailedPoCex(Gia_Man_t *pAig, Abc_Cex_t *p, int nOutputs)
Vec_Ptr_t * Gia_ManUnrollAbs(Gia_Man_t *p, int nFrames)
static Gia_Obj_t * Gia_ObjChild2(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupNoMuxes(Gia_Man_t *p)
void Gia_ManPrintFanio(Gia_Man_t *pGia, int nNodes)
Gia_Man_t * Gia_ManDupZeroUndc(Gia_Man_t *p, char *pInit, int fVerbose)
float Gia_ManEvaluateSwitching(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupOutputVec(Gia_Man_t *p, Vec_Int_t *vOutPres)
static void Gia_ObjSetBufLevel(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManEquivPrintClasses(Gia_Man_t *p, int fVerbose, float Mem)
void Gia_ManStopP(Gia_Man_t **p)
void Gia_ManDetectSeqSignals(Gia_Man_t *p, int fSetReset, int fVerbose)
static int Gia_ManPoIsConst1(Gia_Man_t *p, int iPoIndex)
int Gia_ManHasDangling(Gia_Man_t *p)
void Gia_ManSetIfParsDefault(void *pIfPars)
FUNCTION DEFINITIONS ///.
static int Gia_ManAppendOr(Gia_Man_t *p, int iLit0, int iLit1)
static word * Gia_ObjSimPi(Gia_Man_t *p, int PiId)
static int Gia_ManHasChoices(Gia_Man_t *p)
word * Gia_ObjComputeTruthTable(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjDiffColors2(Gia_Man_t *p, int i, int j)
static int Gia_ManTruthIsConst0(unsigned *pIn, int nVars)
void Gia_ManEquivTransform(Gia_Man_t *p, int fVerbose)
Vec_Int_t * Cbs_ManSolveMiterNc(Gia_Man_t *pGia, int nConfs, Vec_Str_t **pvStatus, int fVerbose)
unsigned Gia_ManRandom(int fReset)
FUNCTION DEFINITIONS ///.
int Gia_SweeperRun(Gia_Man_t *p, Vec_Int_t *vProbeIds, char *pCommLime, int fVerbose)
static int Gia_WordHasOnePair(unsigned uWord)
static Gia_Obj_t * Gia_ObjChild1(Gia_Obj_t *pObj)
static int Gia_ManConst0Lit()
static int Gia_ObjWhatFanin(Gia_Obj_t *pObj, Gia_Obj_t *pFanin)
Gia_Man_t * Gia_ManEquivReduce(Gia_Man_t *p, int fUseAll, int fDualOut, int fSkipPhase, int fVerbose)
Gia_Man_t * Gia_ManEquivToChoices(Gia_Man_t *p, int nSnapshots)
static Gia_Obj_t * Gia_Not(Gia_Obj_t *p)
int * Gia_ManCreateMuxRefs(Gia_Man_t *p)
static void Gia_ObjSetRepr(Gia_Man_t *p, int Id, int Num)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
Gia_Man_t * Gia_ManDupAppendNew(Gia_Man_t *pOne, Gia_Man_t *pTwo)
void Gia_MmFixedStop(Gia_MmFixed_t *p, int fVerbose)
static int Gia_ManAppendMux(Gia_Man_t *p, int iCtrl, int iData1, int iData0)
static int Gia_ManAndNum(Gia_Man_t *p)
void Gia_ManCreateValueRefs(Gia_Man_t *p)
static int Abc_MinInt(int a, int b)
static int Gia_ObjLevel(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManUpdateExtraAig2(void *pTime, Gia_Man_t *pAig, Vec_Int_t *vBoxesLeft)
static int Gia_ObjSibl(Gia_Man_t *p, int Id)
void Gia_ManCheckMark1(Gia_Man_t *p)
void Gia_ManPrintCone(Gia_Man_t *p, Gia_Obj_t *pObj, int *pLeaves, int nLeaves, Vec_Int_t *vNodes)
static int Abc_LitIsCompl(int Lit)
static void Gia_ObjRefFanin2Dec(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManCounterExampleValueStop(Gia_Man_t *pGia)
Gia_Man_t * Gia_ManSpeedup(Gia_Man_t *p, int Percentage, int Degree, int fVerbose, int fVeryVerbose)
int Gia_ManCombMarkUsed(Gia_Man_t *p)
void Gia_AigerWriteSimple(Gia_Man_t *pInit, char *pFileName)
static int Gia_ManIdToCioId(Gia_Man_t *p, int Id)
static int Gia_ObjIsMuxId(Gia_Man_t *p, int iObj)
static Gia_Obj_t * Gia_ManPi(Gia_Man_t *p, int v)
static void Gia_ObjSetTimeSlack(Gia_Man_t *p, int Id, float t)
static int Gia_ObjHasNumId(Gia_Man_t *p, int Id)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
static int Gia_AigerReadInt(unsigned char *pPos)
void Gia_ManCheckMark0(Gia_Man_t *p)
Gia_Man_t * Gia_ManFramesInitSpecial(Gia_Man_t *pAig, int nFrames, int fVerbose)
int Gia_ManHashMaj(Gia_Man_t *p, int iData0, int iData1, int iData2)
Gia_Man_t * Gia_ManSeqCleanup(Gia_Man_t *p)
Gia_Man_t * Gia_ManSpecReduceInitFrames(Gia_Man_t *p, Abc_Cex_t *pInit, int nFramesMax, int *pnFrames, int fDualOut, int nMinOutputs)
static int Gia_ObjFaninLit1(Gia_Obj_t *pObj, int ObjId)
static int Gia_ObjLutSize(Gia_Man_t *p, int Id)
Gia_Man_t * Gia_ManReduceConst(Gia_Man_t *pAig, int fVerbose)
void Gia_ManSimInfoTransfer(Gia_ManSim_t *p)
Gia_Man_t * Gia_ManDupCof(Gia_Man_t *p, int iVar)
void Gia_ManFanoutStop(Gia_Man_t *p)
Vec_Str_t * Gia_AigerWriteIntoMemoryStrPart(Gia_Man_t *p, Vec_Int_t *vCis, Vec_Int_t *vAnds, Vec_Int_t *vCos, int nRegs)
static float Gia_ObjTimeSlack(Gia_Man_t *p, int Id)
int Gia_ManVerifyWithBoxes(Gia_Man_t *pGia, int nBTLimit, int nTimeLim, int fSeq, int fVerbose, char *pFileSpec)
static int Gia_ObjFanin1CopyArray(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManAigSyn2(Gia_Man_t *p, int fOldAlgo, int fCoarsen, int fCutMin, int nRelaxRatio, int fDelayMin, int fVerbose, int fVeryVerbose)
int Gia_ManLutFaninCount(Gia_Man_t *p)
int Gia_ManBoxNum(Gia_Man_t *p)
DECLARATIONS ///.
static void Gia_ObjSetProved(Gia_Man_t *p, int Id)
int Gia_ManEquivCountLitsAll(Gia_Man_t *p)
static int Gia_ObjFanin1Copy(Gia_Obj_t *pObj)
static void Gia_ObjFlipFaninC0(Gia_Obj_t *pObj)
static int Gia_ObjIsRo(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ObjSetPhase(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjCellFanin(Gia_Man_t *p, int iLit, int i)
Gia_Man_t * Gia_ManUnrollAndCofactor(Gia_Man_t *p, int nFrames, int nFanMax, int fVerbose)
void Jf_ManSetDefaultPars(Jf_Par_t *pPars)
void Gia_ManSwapPos(Gia_Man_t *p, int i)
Gia_Man_t * Gia_ManBalance(Gia_Man_t *p, int fSimpleAnd, int fVerbose)
Gia_Man_t * Gia_ManDupOrderDfsChoices(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupNormalize(Gia_Man_t *p)
static void Gia_ObjSetFanout(Gia_Man_t *p, Gia_Obj_t *pObj, int i, Gia_Obj_t *pFan)
static Gia_Obj_t * Gia_ObjRoToRi(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManRetimeForward(Gia_Man_t *p, int nMaxIters, int fVerbose)
static int Gia_ManAppendBuf(Gia_Man_t *p, int iLit)
void Gia_ManStaticFanoutStop(Gia_Man_t *p)
static int Gia_ObjIsRi(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_SweeperSetConflictLimit(Gia_Man_t *p, int nConfMax)
void Gia_ManSetMark0(Gia_Man_t *p)
int Gia_MmStepReadMemUsage(Gia_MmStep_t *p)
static void Gia_ObjSetAndLevel(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Vec_IntEntry(Vec_Int_t *p, int i)
static void Gia_ObjSetCioId(Gia_Obj_t *pObj, int v)
static int Gia_ObjReprSelf(Gia_Man_t *p, int Id)
static int Gia_ObjCellSize(Gia_Man_t *p, int iLit)
Gia_Man_t * Gia_ManDupDfs(Gia_Man_t *p)
unsigned __int64 word
DECLARATIONS ///.
static void Gia_ObjSetTravIdCurrent(Gia_Man_t *p, Gia_Obj_t *pObj)
static unsigned Gia_ObjCutSign(unsigned ObjId)
Gia_Man_t * Gia_ManFront(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupWithNewPo(Gia_Man_t *p1, Gia_Man_t *p2)
static int Gia_ObjDiffColors(Gia_Man_t *p, int i, int j)
static int Gia_ObjIsConst(Gia_Man_t *p, int Id)
static int Gia_ObjCopyArray(Gia_Man_t *p, int iObj)
static int Gia_ObjRefInc(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupSelf(Gia_Man_t *p)
static int Gia_ManIsConst0Lit(int iLit)
void Gia_ManPrintPackingStats(Gia_Man_t *p)
void Gia_ManFrontTest(Gia_Man_t *p)
int Gia_ManHashMux(Gia_Man_t *p, int iCtrl, int iData1, int iData0)
static float Gia_ObjTimeSlackObj(Gia_Man_t *p, Gia_Obj_t *pObj)
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
void For_ManExperiment(Gia_Man_t *pGia, int nIters, int fClustered, int fVerbose)
void Gia_ManHashStart(Gia_Man_t *p)
unsigned char * pSwitching
static int Gia_ObjIsAndOrConst0(Gia_Obj_t *pObj)
void Gia_ManStaticFanoutStart(Gia_Man_t *p)
int Gia_SweeperProbeCreate(Gia_Man_t *p, int iLit)
Gia_Man_t * Gia_ManStart(int nObjsMax)
DECLARATIONS ///.
static int Gia_ObjFanoutNum(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupMuxes(Gia_Man_t *p, int Limit)
void Gia_ManCollectCis(Gia_Man_t *p, int *pNodes, int nNodes, Vec_Int_t *vSupp)
Gia_Man_t * Gia_ManDupOrderDfsReverse(Gia_Man_t *p)
int Gia_ManCheckCoPhase(Gia_Man_t *p)
static int Gia_ObjIsXor(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManSeqStructSweep(Gia_Man_t *p, int fConst, int fEquiv, int fVerbose)
Gia_Man_t * Gia_ManDupCofAll(Gia_Man_t *p, int nFanLim, int fVerbose)
static int Gia_ObjLutIsMux(Gia_Man_t *p, int Id)
static int * Gia_ObjLutFanins(Gia_Man_t *p, int Id)
Gia_Man_t * Gia_ManDupTopAnd(Gia_Man_t *p, int fVerbose)
static float Gia_ObjTimeRequired(Gia_Man_t *p, int Id)
int Gia_ManHashXorReal(Gia_Man_t *p, int iLit0, int iLit1)
Gia_Man_t * Gia_ManRehash(Gia_Man_t *p, int fAddStrash)
unsigned * Gia_ManConvertAigToTruth(Gia_Man_t *p, Gia_Obj_t *pRoot, Vec_Int_t *vLeaves, Vec_Int_t *vTruth, Vec_Int_t *vVisited)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
Gia_Man_t * Gia_ManDupWithAttributes(Gia_Man_t *p)
int Gia_ManBoxCiNum(Gia_Man_t *p)
void Gia_ManFilterEquivsUsingLatches(Gia_Man_t *pGia, int fFlopsOnly, int fFlopsWith, int fUseRiDrivers)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManCleanLevels(Gia_Man_t *p, int Size)
static void Gia_ManTimeStop(Gia_Man_t *p)
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
void Gia_ManFillValue(Gia_Man_t *p)
static int Gia_ManXorNum(Gia_Man_t *p)
void Gia_ObjPrint(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManTransferTiming(Gia_Man_t *p, Gia_Man_t *pGia)
static int Gia_ManCandNum(Gia_Man_t *p)
int Gia_ManBoxCoNum(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupDfsNode(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjTerSimGet0(Gia_Obj_t *pObj)
static void Gia_ManTruthFill(unsigned *pOut, int nVars)
int Gia_ManConeSize(Gia_Man_t *p, int *pNodes, int nNodes)
Vec_Int_t * Tas_ReadModel(Tas_Man_t *p)
int Gia_ManLutSizeMax(Gia_Man_t *p)
static void Gia_ManTruthNot(unsigned *pOut, unsigned *pIn, int nVars)
static int Gia_ObjIsCellInv(Gia_Man_t *p, int iLit)
int Gia_ManFilterEquivsUsingParts(Gia_Man_t *pGia, char *pName1, char *pName2)
void Gia_ManMappingVerify(Gia_Man_t *p)
static int Gia_ManConst1Lit()
static int Gia_ManCoIdToId(Gia_Man_t *p, int CoId)
int Gia_ManCountChoices(Gia_Man_t *p)
word Gia_ManRandomW(int fReset)
Gia_Man_t * Gia_ManChoiceMiter(Vec_Ptr_t *vGias)
static int Gia_ObjFanoutId(Gia_Man_t *p, int Id, int i)
static Gia_Obj_t * Gia_ObjNextObj(Gia_Man_t *p, int Id)
Vec_Vec_t * Gia_ManLevelize(Gia_Man_t *p)
int Gia_SweeperCheckEquiv(Gia_Man_t *p, int ProbeId1, int ProbeId2)
char * Gia_FileNameGenericAppend(char *pBase, char *pSuffix)
void Gia_ManReportImprovement(Gia_Man_t *p, Gia_Man_t *pNew)
void Gia_ManSetPhase1(Gia_Man_t *p)
static void Gia_ObjSetReprRev(Gia_Man_t *p, int Id, int Num)
int * Gia_ManDeriveNexts(Gia_Man_t *p)
static int Gia_ObjLitCopy(Gia_Man_t *p, int iLit)
static int Gia_ObjDiff0(Gia_Obj_t *pObj)
void Gia_AigerWrite(Gia_Man_t *p, char *pFileName, int fWriteSymbols, int fCompact)
#define ABC_NAMESPACE_HEADER_END
Vec_Int_t * Gia_ManRequiredLevel(Gia_Man_t *p)
int Gia_SweeperProbeUpdate(Gia_Man_t *p, int ProbeId, int iLitNew)
void Gia_ManFanoutStart(Gia_Man_t *p)
FUNCTION DEFINITIONS ///.
void Gia_ManPrintNpnClasses(Gia_Man_t *p)
void Gia_ManPrintMuxStats(Gia_Man_t *p)
Abc_Cex_t * Gia_ManCexExtendToIncludeCurrentStates(Gia_Man_t *p, Abc_Cex_t *pCex)
Gia_Man_t * Gia_ManFraigSweepSimple(Gia_Man_t *p, void *pPars)
static int Gia_ObjFanin0Copy(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManUnrollDup(Gia_Man_t *p, Vec_Int_t *vLimit)
char * Gia_MmFixedEntryFetch(Gia_MmFixed_t *p)
Gia_Man_t * Gia_ManPerformLfMapping(Gia_Man_t *p, Jf_Par_t *pPars, int fNormalized)
word Gia_ObjComputeTruthTable6Lut(Gia_Man_t *p, int iObj, Vec_Wrd_t *vTemp)
void Gia_MmStepEntryRecycle(Gia_MmStep_t *p, char *pEntry, int nBytes)
static Gia_Obj_t * Gia_ObjCopy(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjFanin2(Gia_Man_t *p, Gia_Obj_t *pObj)
int Gia_ManEquivCountClasses(Gia_Man_t *p)
void Gia_ManDupAppendShare(Gia_Man_t *p, Gia_Man_t *pTwo)
static int Gia_ObjColors(Gia_Man_t *p, int Id)
static int Gia_ObjIsTravIdCurrentId(Gia_Man_t *p, int Id)
static int Gia_ObjIsCo(Gia_Obj_t *pObj)
static int Gia_ObjNext(Gia_Man_t *p, int Id)
static void Gia_ObjSetNext(Gia_Man_t *p, int Id, int Num)
Gia_MmStep_t * Gia_MmStepStart(int nSteps)
int Gia_ManNonRegBoxNum(Gia_Man_t *p)
void Gia_DumpAiger(Gia_Man_t *p, char *pFilePrefix, int iFileNum, int nFileNumDigits)
Gia_Man_t * Gia_ManDupDfsCiMap(Gia_Man_t *p, int *pCi2Lit, Vec_Int_t *vLits)
static int Gia_ObjRefDec(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManAppendAnd2(Gia_Man_t *p, int iLit0, int iLit1)
static Gia_Obj_t * Gia_ObjReprObj(Gia_Man_t *p, int Id)
static void Gia_ObjSetTimeArrival(Gia_Man_t *p, int Id, float t)
static void Gia_ObjSetColors(Gia_Man_t *p, int Id)
Gia_Man_t * Gia_ManDupCollapse(Gia_Man_t *p, Gia_Man_t *pBoxes, Vec_Int_t *vBoxPres, int fSeq)
int Gia_ObjIsMuxType(Gia_Obj_t *pNode)
void Gia_ManPrintStatsMiter(Gia_Man_t *p, int fVerbose)
static void Gia_ObjSetTimeRequiredObj(Gia_Man_t *p, Gia_Obj_t *pObj, float t)
static int Gia_ManCiNum(Gia_Man_t *p)
static Gia_Obj_t * Gia_ManAppendObj(Gia_Man_t *p)
void Gia_ManPrint(Gia_Man_t *p)
int Gia_ManFilterEquivsForSpeculation(Gia_Man_t *pGia, char *pName1, char *pName2, int fLatchA, int fLatchB)
static int Abc_LitNot(int Lit)
static int Gia_ObjIsTail(Gia_Man_t *p, int Id)
static int Gia_ObjLutFanin(Gia_Man_t *p, int Id, int i)
static void Gia_ObjSetNumId(Gia_Man_t *p, int Id, int n)
static int Gia_ObjHasSameRepr(Gia_Man_t *p, int i, int k)
static void Gia_ObjRefFanin0Dec(Gia_Man_t *p, Gia_Obj_t *pObj)
static void Gia_ObjSetCopyArray(Gia_Man_t *p, int iObj, int iLit)
static Gia_Obj_t * Gia_ManCo(Gia_Man_t *p, int v)
static int Gia_ManTruthIsConst1(unsigned *pIn, int nVars)
static int Gia_ObjTerSimGet1(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupCofactorVar(Gia_Man_t *p, int iVar, int Value)
static int Vec_IntSize(Vec_Int_t *p)
void Gia_SweeperPrintStats(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjFanout(Gia_Man_t *p, Gia_Obj_t *pObj, int i)
static word * Gia_ObjSimObj(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManHasMapping(Gia_Man_t *p)
static int Gia_IsComplement(Gia_Obj_t *p)
void Gia_ManPrintMiterStatus(Gia_Man_t *p)
int Gia_ManHashLookup(Gia_Man_t *p, Gia_Obj_t *p0, Gia_Obj_t *p1)
static int Gia_ObjFanoutNumId(Gia_Man_t *p, int Id)
int Gia_MmFlexReadMemUsage(Gia_MmFlex_t *p)
void Gia_MmFixedRestart(Gia_MmFixed_t *p)
static void Gia_ObjSetCoLevel(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupLastPis(Gia_Man_t *p, int nLastPis)
static int Gia_ObjTerSimGet1Fanin1(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupSliced(Gia_Man_t *p, int nSuppMax)
void Gia_ManTestDistance(Gia_Man_t *p)
static int Gia_ObjVisitColor(Gia_Man_t *p, int Id, int c)
Gia_Man_t * Gia_ManDupFlip(Gia_Man_t *p, int *pInitState)
void * Gia_ManUpdateTimMan2(Gia_Man_t *p, Vec_Int_t *vBoxesLeft, int nTermsDiff)
Gia_Man_t * Gia_ManCleanupOutputs(Gia_Man_t *p, int nOutputs)
Gia_Man_t * Gia_ManPerformSopBalance(Gia_Man_t *p, int nCutNum, int nRelaxRatio, int fVerbose)
static Gia_Obj_t * Gia_ObjRiToRo(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Obj_t * Gia_ObjRecognizeMux(Gia_Obj_t *pNode, Gia_Obj_t **ppNodeT, Gia_Obj_t **ppNodeE)
int Gia_ManIsNormalized(Gia_Man_t *p)
void Gia_ManCollectAnds(Gia_Man_t *p, int *pNodes, int nNodes, Vec_Int_t *vNodes)
Gia_Man_t * Gia_SweeperExtractUserLogic(Gia_Man_t *p, Vec_Int_t *vProbeIds, Vec_Ptr_t *vInNames, Vec_Ptr_t *vOutNames)
void Gia_SatVerifyPattern(Gia_Man_t *p, Gia_Obj_t *pRoot, Vec_Int_t *vCex, Vec_Int_t *vVisit)
static int Gia_ManBufNum(Gia_Man_t *p)
static int Gia_ObjIsCell(Gia_Man_t *p, int iLit)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
static void Gia_ManTimeStart(Gia_Man_t *p)
int Gia_ManHashAndMulti(Gia_Man_t *p, Vec_Int_t *vLits)
void Gia_ManDupAppend(Gia_Man_t *p, Gia_Man_t *pTwo)
char * Gia_MmFlexEntryFetch(Gia_MmFlex_t *p, int nBytes)
int Gia_ManUnrollLastLit(void *pMan)
static Gia_Obj_t * Gia_ManConst0(Gia_Man_t *p)
static int Gia_ObjIsNone(Gia_Man_t *p, int Id)
static int Gia_ObjNumId(Gia_Man_t *p, int Id)
#define GIA_NONE
INCLUDES ///.
int Gia_MmFixedReadMemUsage(Gia_MmFixed_t *p)
static void Gia_ObjTerSimSetC(Gia_Obj_t *pObj)
static void Gia_ObjSetMuxLevel(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManAppendMaj(Gia_Man_t *p, int iData0, int iData1, int iData2)
Gia_Man_t * Gia_ManDupCycled(Gia_Man_t *pAig, Abc_Cex_t *pCex, int nFrames)
void Gia_ManHashProfile(Gia_Man_t *p)
Gia_MmFlex_t * Gia_MmFlexStart()
void Gia_ManUnrollStop(void *pMan)
static void Gia_ObjTerSimSet1(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupDfsCone(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManSimSetDefaultParams(Gia_ParSim_t *p)
Gia_Man_t * Gia_ManDupTimes(Gia_Man_t *p, int nTimes)
static int Abc_Lit2Var(int Lit)
Vec_Flt_t * Gia_ManPrintOutputProb(Gia_Man_t *p)
void Gia_ManTransferPacking(Gia_Man_t *p, Gia_Man_t *pGia)
static int Gia_ManIsConst1Lit(int iLit)
static int Gia_ObjFaninId0p(Gia_Man_t *p, Gia_Obj_t *pObj)
static void Gia_ObjSetXorLevel(Gia_Man_t *p, Gia_Obj_t *pObj)
static int * Gia_ObjCellFanins(Gia_Man_t *p, int iLit)
typedefABC_NAMESPACE_HEADER_START struct Vec_Flt_t_ Vec_Flt_t
INCLUDES ///.
void Gia_ManSimInfoInit(Gia_ManSim_t *p)
static void Gia_ClassUndoPair(Gia_Man_t *p, int i)
static int Gia_ObjIsPo(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjFaninId2p(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
void Gia_MmFixedEntryRecycle(Gia_MmFixed_t *p, char *pEntry)
Gia_Man_t * Gia_ManDupDfsSkip(Gia_Man_t *p)
static int Gia_ObjFailed(Gia_Man_t *p, int Id)
void Gia_ManWriteMiniAig(Gia_Man_t *pGia, char *pFileName)
Vec_Int_t * Gia_ManCollectPoIds(Gia_Man_t *p)
#define ABC_INFINITY
MACRO DEFINITIONS ///.
static float Gia_ObjTimeArrival(Gia_Man_t *p, int Id)
int Gia_ManLutLevelWithBoxes(Gia_Man_t *p)
void Gia_ManCounterExampleValueStart(Gia_Man_t *pGia, Abc_Cex_t *pCex)
static int Gia_ObjProved(Gia_Man_t *p, int Id)
void Gia_ManTransferMapping(Gia_Man_t *p, Gia_Man_t *pGia)
int Gia_NodeMffcSize(Gia_Man_t *p, Gia_Obj_t *pNode)
int * Gia_SortFloats(float *pArray, int *pPerm, int nSize)
static void Gia_AigerWriteUnsignedFile(FILE *pFile, unsigned x)
static int * Vec_IntEntryP(Vec_Int_t *p, int i)
int Gia_SweeperFraig(Gia_Man_t *p, Vec_Int_t *vProbeIds, char *pCommLime, int nWords, int nConfs, int fVerify, int fVerbose)
static word * Gia_ObjSim(Gia_Man_t *p, int Id)
double Gia_ManMemory(Gia_Man_t *p)
void Gia_ManSetPhase(Gia_Man_t *p)
int Gia_ManLevelNum(Gia_Man_t *p)
int Gia_ManEquivSetColors(Gia_Man_t *p, int fVerbose)
static int Gia_ObjFaninId2(Gia_Man_t *p, int ObjId)
static int Gia_ObjFanin0CopyArray(Gia_Man_t *p, Gia_Obj_t *pObj)
int Gia_ManHashMuxReal(Gia_Man_t *p, int iLitC, int iLit1, int iLit0)
static void Gia_ObjResetNumId(Gia_Man_t *p, int Id)
static void Gia_ObjSetNum(Gia_Man_t *p, Gia_Obj_t *pObj, int n)
static int Gia_ObjIsFailedPair(Gia_Man_t *p, int i, int k)
static unsigned Gia_AigerReadUnsigned(unsigned char **ppPos)
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
static float Vec_FltEntry(Vec_Flt_t *p, int i)
int Tas_ManSolve(Tas_Man_t *p, Gia_Obj_t *pObj, Gia_Obj_t *pObj2)
static int Gia_ObjIsLut(Gia_Man_t *p, int Id)
static Gia_Obj_t * Gia_Lit2Obj(Gia_Man_t *p, int iLit)
int Gia_SweeperCondPop(Gia_Man_t *p)
void Gia_ManHashAlloc(Gia_Man_t *p)
void Gia_ManPrintLutStats(Gia_Man_t *p)
void Tas_ManSatPrintStats(Tas_Man_t *p)
Vec_Int_t * Gia_SweeperCondVector(Gia_Man_t *p)
void Gia_ManIncrementTravId(Gia_Man_t *p)
Gia_Man_t * Gia_ManSweepWithBoxes(Gia_Man_t *p, void *pParsC, void *pParsS, int fConst, int fEquiv, int fVerbose)
Gia_Man_t * Gia_ManAreaBalance(Gia_Man_t *p, int fSimpleAnd, int nNewNodesMax, int fVerbose, int fVeryVerbose)
Gia_Man_t * Gia_ManDupSelectedOutputs(Gia_Man_t *p, Vec_Int_t *vOutsLeft)
static int Gia_ManHasCellMapping(Gia_Man_t *p)
static int Gia_AigerWriteUnsignedBuffer(unsigned char *pBuffer, int Pos, unsigned x)
void Gia_SweeperCondPush(Gia_Man_t *p, int ProbeId)
void Gia_ManFraSetDefaultParams(Gia_ParFra_t *p)
void * Gia_ManUnrollStart(Gia_Man_t *pAig, Gia_ParFra_t *pPars)
Gia_Man_t * Gia_ManIsoCanonicize(Gia_Man_t *p, int fVerbose)
unsigned * Gia_SimDataCoExt(Gia_ManSim_t *p, int i)
Gia_Man_t * Gia_ManDupLevelized(Gia_Man_t *p)
static int Gia_ObjFaninLit1p(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupDfsLitArray(Gia_Man_t *p, Vec_Int_t *vLits)
Vec_Int_t * Gia_ManOrderReverse(Gia_Man_t *p)
Vec_Int_t * Gia_ManSaveValue(Gia_Man_t *p)
static int Gia_ObjFaninC0(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManTransformToDual(Gia_Man_t *p)
static int Gia_ManPiNum(Gia_Man_t *p)
static Gia_Obj_t * Gia_ManRo(Gia_Man_t *p, int v)
void Gia_SweeperStop(Gia_Man_t *p)
static void Gia_ObjUnsetProved(Gia_Man_t *p, int Id)
static int Gia_ObjTerSimGetC(Gia_Obj_t *pObj)
int Gia_SweeperProbeLit(Gia_Man_t *p, int ProbeId)
void Gia_ManCleanMark01(Gia_Man_t *p)
static int Gia_ObjIsCi(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManCleanup(Gia_Man_t *p)
static void Gia_ObjSetTravIdCurrentId(Gia_Man_t *p, int Id)
Vec_Int_t * Gia_ManComputeSwitchProbs(Gia_Man_t *pGia, int nFrames, int nPref, int fProbOne)
static void Gia_ObjSetTimeRequired(Gia_Man_t *p, int Id, float t)
Gia_Man_t * Gia_ManDupPermFlopGap(Gia_Man_t *p, Vec_Int_t *vFfPerm)
static int Gia_ObjFaninId1(Gia_Obj_t *pObj, int ObjId)
void Gia_ObjRemoveFanout(Gia_Man_t *p, Gia_Obj_t *pObj, Gia_Obj_t *pFanout)
static int Gia_ObjIsMux(Gia_Man_t *p, Gia_Obj_t *pObj)
int Gia_ManHashOr(Gia_Man_t *p, int iLit0, int iLit1)
static int Gia_ManAppendXorReal(Gia_Man_t *p, int iLit0, int iLit1)
Gia_Man_t * Gia_ManDupWithConstraints(Gia_Man_t *p, Vec_Int_t *vPoTypes)
void Gia_ManSetPhasePattern(Gia_Man_t *p, Vec_Int_t *vCiValues)
Vec_Str_t * Gia_AigerWriteIntoMemoryStr(Gia_Man_t *p)
Gia_Man_t * Gia_ManPerformSopBalanceWin(Gia_Man_t *p, int LevelMax, int nTimeWindow, int nCutNum, int nRelaxRatio, int fVerbose)
int Gia_ManMarkDangling(Gia_Man_t *p)
void Gia_ManEquivFixOutputPairs(Gia_Man_t *p)
int Gia_ManCheckTopoOrder(Gia_Man_t *p)
char * Gia_MmStepEntryFetch(Gia_MmStep_t *p, int nBytes)
static int Gia_ObjFanin0CopyF(Gia_Man_t *p, int f, Gia_Obj_t *pObj)
static void Gia_ObjTerSimSetX(Gia_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Vec_Wrd_t_ Vec_Wrd_t
INCLUDES ///.
void Gia_SweeperLogicDump(Gia_Man_t *p, Vec_Int_t *vProbeIds, int fDumpConds, char *pFileName)
int Gia_SweeperCondCheckUnsat(Gia_Man_t *p)
static int Gia_ObjSimWords(Gia_Man_t *p)
void * Gia_ManUpdateTimMan(Gia_Man_t *p, Vec_Int_t *vBoxPres)
static void Gia_ManTruthClear(unsigned *pOut, int nVars)
static void Gia_ObjRefFanin1Dec(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManAigSyn4(Gia_Man_t *p, int fVerbose, int fVeryVerbose)
void Gia_MmFlexStop(Gia_MmFlex_t *p, int fVerbose)
int Gia_ManHashAnd(Gia_Man_t *p, int iLit0, int iLit1)
Vec_Int_t * Gia_SweeperCollectValidProbeIds(Gia_Man_t *p)
Gia_Man_t * Gia_ManMiter(Gia_Man_t *pAig0, Gia_Man_t *pAig1, int nInsDup, int fDualOut, int fSeq, int fImplic, int fVerbose)
static void Gia_ObjSetFailed(Gia_Man_t *p, int Id)
static int Gia_ObjCioId(Gia_Obj_t *pObj)
static int Gia_Obj2Lit(Gia_Man_t *p, Gia_Obj_t *pObj)
int Gia_ManClockDomainNum(Gia_Man_t *p)
static int Gia_ManObjNum(Gia_Man_t *p)
Gia_Man_t * Gia_ManMiter2(Gia_Man_t *p, char *pInit, int fVerbose)
static int Gia_ObjRepr(Gia_Man_t *p, int Id)
Vec_Int_t * Tas_ManSolveMiterNc(Gia_Man_t *pGia, int nConfs, Vec_Str_t **pvStatus, int fVerbose)
Gia_Man_t * Gia_ManDupExist(Gia_Man_t *p, int iVar)
static int Gia_ClassIsPair(Gia_Man_t *p, int i)
void Gia_ManMarkFanoutDrivers(Gia_Man_t *p)
static int Gia_ObjRefIncId(Gia_Man_t *p, int Id)
static void Gia_ObjTerSimAnd(Gia_Obj_t *pObj)
static void Gia_ManTimeClean(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjFanout0(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManSimulateRound(Gia_ManSim_t *p)
static void Gia_ObjSetColor(Gia_Man_t *p, int Id, int c)
static int Gia_ManCiIdToId(Gia_Man_t *p, int CiId)
static float Gia_ObjTimeArrivalObj(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ManRi(Gia_Man_t *p, int v)
Vec_Int_t * Gia_ManReverseLevel(Gia_Man_t *p)
void Gia_ManHashStop(Gia_Man_t *p)
static int Gia_ObjFaninId0(Gia_Obj_t *pObj, int ObjId)
static int Gia_ObjIsPi(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManCoNum(Gia_Man_t *p)
void Gia_ManDupRemapEquiv(Gia_Man_t *pNew, Gia_Man_t *p)
DECLARATIONS ///.
static void Gia_ObjSetLevel(Gia_Man_t *p, Gia_Obj_t *pObj, int l)
static int Gia_ObjHasRepr(Gia_Man_t *p, int Id)
static word * Vec_WrdEntryP(Vec_Wrd_t *p, int i)
static int Gia_ObjCopyF(Gia_Man_t *p, int f, Gia_Obj_t *pObj)
static void Gia_ManFlipVerbose(Gia_Man_t *p)
static int Gia_ManRegNum(Gia_Man_t *p)