49 int i, k, iNode, iRepr, iPrev;
213 for ( i = iOutStart; i < iOutStop; i++ )
508 assert( pCex == NULL || nFrames <= pCex->iFrame );
510 for ( i = 0; i < nFrames; i++ )
750 if ( pNew->
nRegs > 0 )
852 for ( k = 0; k < nCones; k++ )
934 int i, Counter1 = 0, Counter2 = 0;
959 assert( Counter1 == Counter2 );
979 int i, nRos = 0, nRis = 0;
982 CountMarked += pObj->
fMark0;
1033 if ( !~pObj->
Value )
1036 if ( pRepr == NULL )
1038 if ( !~pRepr->
Value )
1052 if ( !~pObj->
Value )
1055 if ( pSibl == NULL )
1057 if ( !~pSibl->
Value )
1082 Vec_Int_t * vPis, * vPos, * vRis, * vRos;
1093 for ( t = 0; t < nTimes; t++ )
1203 if ( ~pObj->
Value == 0 )
1287 assert( Value == 0 || Value == 1 );
1323 int i, iObjValue = -1;
1327 assert( Value == 0 || Value == 1 );
1557 int i, iLit, iLitRes;
1623 assert( Value == 0 || Value == 1 );
1645 if ( fDualOut && fTrimCos )
1666 if ( fDualOut && fTrimCos )
1979 int i, iLit, iObjId, nCiLits, * pCi2Lit;
1996 printf(
"The AIG cannot be decomposed using AND-decomposition.\n" );
2033 if ( pVar2Val[iObjId] != 0 && pVar2Val[iObjId] != 1 )
2040 printf(
"Problem is trivially UNSAT.\n" );
2049 if ( !
Gia_ObjIsCi(pObj) && (pVar2Val[i] == 0 || pVar2Val[i] == 1) )
2052 printf(
"Detected %6d AND leaves and %6d CI leaves.\n",
Vec_IntSize(vLeaves), nCiLits );
2078 int fContinue, iIter = 0;
2080 for ( fContinue = 1; fContinue; )
2088 printf(
"Iter %2d : ", ++iIter );
2137 printf(
"Gia_ManMiter(): Designs have different number of PIs.\n" );
2142 printf(
"Gia_ManMiter(): Designs have different number of POs.\n" );
2147 printf(
"Gia_ManMiter(): At least one of the designs has no registers.\n" );
2155 printf(
"Gia_ManMiter(): Designs have different number of CIs.\n" );
2160 printf(
"Gia_ManMiter(): Designs have different number of COs.\n" );
2304 for ( i = 0; i < nOuts; i++ )
2395 int i, iResetFlop = -1, Count1 = 0;
2400 if ( pInit[i] ==
'x' || pInit[i] ==
'X' )
2401 pPiLits[i] = CountPis++;
2422 if ( pInit[i] ==
'1' )
2424 else if ( pInit[i] ==
'x' || pInit[i] ==
'X' )
2426 else if ( pInit[i] !=
'0' )
2438 if ( pInit[i] ==
'1' )
2447 printf(
"Converted %d 1-valued FFs and %d DC-valued FFs.\n", Count1, CountPis-
Gia_ManPiNum(p) );
2464 Vec_Int_t * vCiValues, * vCoValues0, * vCoValues1;
2471 assert( pInit[i] ==
'x' || pInit[i] ==
'X' );
2477 pInitNew[i] = pInit[i];
2479 if ( pInit[i] ==
'x' || pInit[i] ==
'X' )
2480 pInitNew[k++] = pInit[i];
2495 if ( pInitNew[i] ==
'x' )
2497 else if ( pInitNew[i] ==
'X' )
2577 int i, k, iNode, nNodes;
2694 Vec_Ptr_t * vLeaves, * vNodes, * vRoots;
2702 for ( i = 0; i < nPos; i++ )
2762 int i, b, Shift, iGiaLit, nLogVars =
Abc_Base2Log( nVars );
2763 int * pTemp =
ABC_CALLOC(
int, (1 << nLogVars) );
2766 for ( i = 0; i < nSkips; i++ )
2768 for ( i = 0; i < nVars; i++ )
2771 for ( b = 0; b < nLogVars; b++ )
2772 for ( i = 0, Shift = (1<<b); i < (1 << nLogVars); i += 2*Shift )
2790 Abc_Print( 0,
"Appending 1-hotness constraints to the PIs.\n" );
2817 int * pCounts =
ABC_CALLOC(
int, nLevels + 1 );
2821 for ( i = 1; i <= nLevels; i++ )
2822 pCounts[i] += pCounts[i-1];
2951 int i, iDriver, iLit, iLitBest = -1, LevelBest = -1;
2957 printf(
"The miter's output is not AND-decomposable.\n" );
2968 assert( iLitBest != -1 );
2986 if ( iLit == iLitBest )
2988 if ( iDriver == -1 )
static int Gia_ObjFanin2Copy(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjToLit(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjLevelId(Gia_Man_t *p, int Id)
static int Gia_ManAppendAnd(Gia_Man_t *p, int iLit0, int iLit1)
void Gia_ManCreateRefs(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjChild0(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupTopAnd(Gia_Man_t *p, int fVerbose)
Gia_Man_t * Gia_ManTransformMiter(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupPerm(Gia_Man_t *p, Vec_Int_t *vPiPerm)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
ABC_NAMESPACE_IMPL_START void Gia_ManDupRemapEquiv(Gia_Man_t *pNew, Gia_Man_t *p)
DECLARATIONS ///.
int Gia_ManPoIsToRemove(Gia_Man_t *p, Gia_Obj_t *pObj, int Value)
static int Gia_ManAppendMuxReal(Gia_Man_t *p, int iLitC, int iLit1, int iLit0)
Gia_Man_t * Gia_ManDupPermFlopGap(Gia_Man_t *p, Vec_Int_t *vFfMask)
Gia_Man_t * Gia_ManDupSelectedOutputs(Gia_Man_t *p, Vec_Int_t *vOutsLeft)
Gia_Man_t * Gia_ManDupDfsCiMap(Gia_Man_t *p, int *pCi2Lit, Vec_Int_t *vLits)
static Gia_Obj_t * Gia_ObjSiblObj(Gia_Man_t *p, int Id)
int Gia_ManSuppSize(Gia_Man_t *p, int *pNodes, int nNodes)
static int Gia_ObjPhaseReal(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManChoiceMiter(Vec_Ptr_t *vGias)
void Gia_ManStop(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupTrimmed(Gia_Man_t *p, int fTrimCis, int fTrimCos, int fDualOut, int OutValue)
#define Vec_PtrForEachEntryStart(Type, vVec, pEntry, i, Start)
Gia_Man_t * Gia_ManDupSliced(Gia_Man_t *p, int nSuppMax)
#define Gia_ManForEachCo(p, pObj, i)
static int Gia_ManPoNum(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupDfs(Gia_Man_t *p)
static int Gia_ObjFaninC1(Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ManCi(Gia_Man_t *p, int v)
static int Gia_ManAppendCo(Gia_Man_t *p, int iLit0)
int Gia_ObjCompareByCioId(Gia_Obj_t **pp1, Gia_Obj_t **pp2)
void Gia_ManDupCofactorVar_rec(Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj)
int Gia_ManHashXor(Gia_Man_t *p, int iLit0, int iLit1)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Gia_Man_t * Gia_ManDupSelf(Gia_Man_t *p)
static Gia_Obj_t * Gia_Regular(Gia_Obj_t *p)
static int Gia_ObjIsTravIdCurrent(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Abc_InfoHasBit(unsigned *p, int i)
static int Gia_ManCiLit(Gia_Man_t *p, int CiId)
static Gia_Obj_t * Gia_ObjFromLit(Gia_Man_t *p, int iLit)
static Gia_Obj_t * Gia_ManPo(Gia_Man_t *p, int v)
Gia_Man_t * Gia_ManDupCones(Gia_Man_t *p, int *pPos, int nPos, int fTrimPis)
static int Gia_ObjFaninLit0p(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjIsCand(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupOrderDfsReverse(Gia_Man_t *p)
void Gia_ManDupOrderDfsChoices_rec(Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManDupRemapCis(Gia_Man_t *pNew, Gia_Man_t *p)
static int Gia_ManAppendCi(Gia_Man_t *p)
void Gia_ManCleanMark0(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupOneHot(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupMarked(Gia_Man_t *p)
static int Gia_ObjIsConst0(Gia_Obj_t *pObj)
static int Abc_Var2Lit(int Var, int fCompl)
static Vec_Int_t * Vec_IntInvert(Vec_Int_t *p, int Fill)
Gia_Man_t * Gia_ManDupTopAnd_iter(Gia_Man_t *p, int fVerbose)
Gia_Man_t * Gia_ManDupAppendNew(Gia_Man_t *pOne, Gia_Man_t *pTwo)
int Gia_ManDupOrderDfs_rec(Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj)
static void Vec_PtrSort(Vec_Ptr_t *p, int(*Vec_PtrSortCompare)()) ___unused
static int Gia_ObjFaninId1p(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupDfsSkip(Gia_Man_t *p)
static int Gia_ObjRefNum(Gia_Man_t *p, Gia_Obj_t *pObj)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
void Gia_ManPrintStatsShort(Gia_Man_t *p)
Gia_Man_t * Gia_ManMiter2(Gia_Man_t *pStart, char *pInit, int fVerbose)
#define ABC_ALLOC(type, num)
static int Gia_ObjIsBuf(Gia_Obj_t *pObj)
Vec_Int_t * Gia_ManDupTrimmedNonZero(Gia_Man_t *p)
void Gia_ManSetRegNum(Gia_Man_t *p, int nRegs)
Gia_Man_t * Gia_ManDupZero(Gia_Man_t *p)
static int Vec_PtrSize(Vec_Ptr_t *p)
static void Vec_IntSort(Vec_Int_t *p, int fReverse)
void Gia_ManPrintRepr(Gia_Man_t *p)
static Gia_Obj_t * Gia_ManObj(Gia_Man_t *p, int v)
static int Abc_LitNotCond(int Lit, int c)
Gia_Man_t * Gia_ManDupOrderAiger(Gia_Man_t *p)
void Gia_ManDupDfs3_rec(Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Vec_Bit_t_ Vec_Bit_t
INCLUDES ///.
int Gia_ManHasDangling(Gia_Man_t *p)
static int Gia_ManHasChoices(Gia_Man_t *p)
int Gia_ManMiter_rec(Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj)
static int * Vec_BitArray(Vec_Bit_t *p)
unsigned Gia_ManRandom(int fReset)
FUNCTION DEFINITIONS ///.
Gia_Man_t * Gia_ManDupCycled(Gia_Man_t *p, Abc_Cex_t *pCex, int nFrames)
Gia_Man_t * Gia_ManDupLevelized(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupDfsCone(Gia_Man_t *p, Gia_Obj_t *pRoot)
static Gia_Obj_t * Gia_ObjChild1(Gia_Obj_t *pObj)
#define Gia_ManForEachCi(p, pObj, i)
Gia_Man_t * Gia_ManDup(Gia_Man_t *p)
#define Gia_ManForEachRiRo(p, pObjRi, pObjRo, i)
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_ManDupWithAttributes(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupSpreadFlop(Gia_Man_t *p, Vec_Int_t *vFfMask)
static int Gia_ManAppendMux(Gia_Man_t *p, int iCtrl, int iData1, int iData0)
static int Gia_ManAndNum(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupDfs2(Gia_Man_t *p)
static int Gia_ObjLevel(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjSibl(Gia_Man_t *p, int Id)
static int Abc_LitIsCompl(int Lit)
static Gia_Obj_t * Gia_ManPi(Gia_Man_t *p, int v)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupPermFlop(Gia_Man_t *p, Vec_Int_t *vFfPerm)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
int Gia_ManChoiceMiter_rec(Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupFlopClass(Gia_Man_t *p, int iClass)
int Gia_ManDupDfs2_rec(Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManDupAppendShare(Gia_Man_t *pNew, Gia_Man_t *pTwo)
Gia_Man_t * Gia_ManDupFromVecs(Gia_Man_t *p, Vec_Int_t *vCis, Vec_Int_t *vAnds, Vec_Int_t *vCos, int nRegs)
static int Gia_ObjFanin1Copy(Gia_Obj_t *pObj)
static int Gia_ObjIsRo(Gia_Man_t *p, Gia_Obj_t *pObj)
#define Gia_ManForEachConst(p, i)
Gia_Man_t * Gia_ManDupNormalize(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjRoToRi(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManAppendBuf(Gia_Man_t *p, int iLit)
static int Gia_ObjIsRi(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 void Gia_ObjSetTravIdCurrent(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupTrimmed2(Gia_Man_t *p)
#define ABC_NAMESPACE_IMPL_END
int Gia_ManHashMux(Gia_Man_t *p, int iCtrl, int iData1, int iData0)
void Gia_ManHashStart(Gia_Man_t *p)
Gia_Man_t * Gia_ManStart(int nObjsMax)
DECLARATIONS ///.
Gia_Man_t * Gia_ManDupOrderDfsChoices(Gia_Man_t *p)
static int Gia_ObjIsXor(Gia_Obj_t *pObj)
#define Gia_ManForEachAnd(p, pObj, i)
Gia_Man_t * Gia_ManSeqStructSweep(Gia_Man_t *p, int fConst, int fEquiv, int fVerbose)
Tim_Man_t * Tim_ManDup(Tim_Man_t *p, int fUnitDelay)
Gia_Man_t * Gia_ManDupDfsLitArray(Gia_Man_t *p, Vec_Int_t *vLits)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
Gia_Man_t * Gia_ManDupExist2(Gia_Man_t *p, int iVar)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManFillValue(Gia_Man_t *p)
void Gia_ManDupCones_rec(Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Ptr_t *vLeaves, Vec_Ptr_t *vNodes, Vec_Ptr_t *vRoots)
Gia_Man_t * Gia_ManDupAppendCones(Gia_Man_t *p, Gia_Man_t **ppCones, int nCones, int fOnlyRegs)
#define Vec_IntForEachEntryStart(vVec, Entry, i, Start)
static void Vec_IntFreeP(Vec_Int_t **p)
static Vec_Bit_t * Vec_BitAlloc(int nCap)
FUNCTION DEFINITIONS ///.
#define Gia_ManForEachPi(p, pObj, i)
static Gia_Obj_t * Gia_ObjNextObj(Gia_Man_t *p, int Id)
static void Abc_Print(int level, const char *format,...)
int * Gia_ManDeriveNexts(Gia_Man_t *p)
static int Gia_ObjLitCopy(Gia_Man_t *p, int iLit)
void Gia_ManDupRemapCos(Gia_Man_t *pNew, Gia_Man_t *p)
Gia_Man_t * Gia_ManDupOrderDfs(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupCofactorObj(Gia_Man_t *p, int iObj, int Value)
Gia_Man_t * Gia_ManOneHot(int nSkips, int nVars)
static int Gia_ObjFanin0Copy(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupWithConstraints(Gia_Man_t *p, Vec_Int_t *vPoTypes)
#define Gia_ClassForEachObj(p, i, iObj)
static int Gia_ObjIsCo(Gia_Obj_t *pObj)
#define Gia_ManForEachObjVec(vVec, p, pObj, i)
#define ABC_NAMESPACE_IMPL_START
Gia_Man_t * Gia_ManDupOntop(Gia_Man_t *p, Gia_Man_t *p2)
Gia_Man_t * Gia_ManDupDemiter(Gia_Man_t *p, int fVerbose)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
static Gia_Obj_t * Gia_ObjReprObj(Gia_Man_t *p, int Id)
Gia_Man_t * Gia_ManMiter(Gia_Man_t *p0, Gia_Man_t *p1, int nInsDup, int fDualOut, int fSeq, int fImplic, int fVerbose)
static int Gia_ManCiNum(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupOutputGroup(Gia_Man_t *p, int iOutStart, int iOutStop)
int Gia_ManSortByValue(Gia_Obj_t **pp1, Gia_Obj_t **pp2)
static int Abc_LitNot(int Lit)
static void Gia_ObjRefFanin0Dec(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ManCo(Gia_Man_t *p, int v)
static int Vec_IntSize(Vec_Int_t *p)
Gia_Man_t * Gia_ManDupOuts(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupZeroUndc(Gia_Man_t *p, char *pInit, int fVerbose)
Gia_Man_t * Gia_ManDupTimes(Gia_Man_t *p, int nTimes)
static int Gia_IsComplement(Gia_Obj_t *p)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static Gia_Obj_t * Gia_ObjRiToRo(Gia_Man_t *p, Gia_Obj_t *pObj)
Abc_Cex_t * Abc_CexDup(Abc_Cex_t *p, int nRegsNew)
void Gia_ManDupDfs_rec(Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj)
int Gia_ManIsNormalized(Gia_Man_t *p)
static int Abc_Base2Log(unsigned n)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
#define Gia_ManForEachObj(p, pObj, i)
MACRO DEFINITIONS ///.
static Gia_Obj_t * Gia_ManConst0(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupDfsNode(Gia_Man_t *p, Gia_Obj_t *pRoot)
static int Abc_Lit2Var(int Lit)
#define ABC_CALLOC(type, num)
void Gia_ManTransferPacking(Gia_Man_t *p, Gia_Man_t *pGia)
static int Gia_ObjFaninId0p(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjIsPo(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
#define Gia_ManForEachClass(p, i)
static void Vec_BitFree(Vec_Bit_t *p)
#define Gia_ManForEachRo(p, pObj, i)
void Gia_ManTransferMapping(Gia_Man_t *p, Gia_Man_t *pGia)
Gia_Man_t * Gia_ManDupExist(Gia_Man_t *p, int iVar)
int Gia_ManLevelNum(Gia_Man_t *p)
void Gia_ManCycle(Gia_Man_t *p, Abc_Cex_t *pCex, int nFrames)
typedefABC_NAMESPACE_HEADER_START struct Tim_Man_t_ Tim_Man_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
Gia_Man_t * Gia_ManDupDfsClasses(Gia_Man_t *p)
#define Gia_ManForEachRi(p, pObj, i)
static Gia_Obj_t * Gia_Lit2Obj(Gia_Man_t *p, int iLit)
void Gia_ManHashAlloc(Gia_Man_t *p)
#define Gia_ManForEachObj1(p, pObj, i)
void Gia_ManIncrementTravId(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupFlip(Gia_Man_t *p, int *pInitState)
static void Vec_BitPush(Vec_Bit_t *p, int Entry)
Gia_Man_t * Gia_ManDupOutputVec(Gia_Man_t *p, Vec_Int_t *vOutPres)
void Gia_ManDupAppend(Gia_Man_t *pNew, Gia_Man_t *pTwo)
static int Gia_ObjFaninLit1p(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjFaninC0(Gia_Obj_t *pObj)
void Gia_ManDupWithConstrCollectAnd_rec(Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vSuper, int fFirst)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static int Vec_IntPushUnique(Vec_Int_t *p, int Entry)
static int Gia_ManPiNum(Gia_Man_t *p)
static Gia_Obj_t * Gia_ManRo(Gia_Man_t *p, int v)
static void Vec_IntClear(Vec_Int_t *p)
void Gia_ManCleanMark01(Gia_Man_t *p)
static int Gia_ObjIsCi(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManCleanup(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupLastPis(Gia_Man_t *p, int nLastPis)
char * Abc_UtilStrsav(char *s)
#define Gia_ManForEachPo(p, pObj, i)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
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_ManDupWithConstr(Gia_Man_t *p)
Gia_Man_t * Gia_ManTransformToDual(Gia_Man_t *p)
#define Gia_ManForEachCoReverse(p, pObj, i)
int Gia_ManHashAnd(Gia_Man_t *p, int iLit0, int iLit1)
static int Gia_ObjCioId(Gia_Obj_t *pObj)
static Vec_Int_t * Vec_IntCondense(Vec_Int_t *p, int Fill)
static int Gia_Obj2Lit(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManObjNum(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupWithNewPo(Gia_Man_t *p1, Gia_Man_t *p2)
#define ABC_FALLOC(type, num)
static Gia_Obj_t * Gia_ManRi(Gia_Man_t *p, int v)
static void Vec_PtrFree(Vec_Ptr_t *p)
void Gia_ManHashStop(Gia_Man_t *p)
static int Gia_ObjIsPi(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManCoNum(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupCofactorVar(Gia_Man_t *p, int iVar, int Value)
Gia_Man_t * Gia_ManDupAndOr(Gia_Man_t *p, int nOuts, int fUseOr, int fCompl)
static int Gia_ManRegNum(Gia_Man_t *p)