93 return p0 == p->pConst1 ? p1 :
Ivy_Not(p->pConst1);
95 return p1 == p->pConst1 ? p0 :
Ivy_Not(p->pConst1);
160 Ivy_Obj_t * pTempA1, * pTempA2, * pTempB1, * pTempB2, * pTemp;
169 if ( pTempA1 && pTempA2 )
172 if ( pTemp )
return Ivy_Not(pTemp);
174 Count0 = (pTempA1 != NULL) + (pTempA2 != NULL);
178 if ( pTempB1 && pTempB2 )
181 if ( pTemp )
return pTemp;
183 Count1 = (pTempB1 != NULL) + (pTempB2 != NULL);
185 if ( Count0 >= Count1 )
187 pTempA1 = pTempA1? pTempA1 :
Ivy_And(p, pC, p1);
189 return Ivy_Or( p, pTempA1, pTempA2 );
211 return Ivy_Or( p,
Ivy_Or(p,
Ivy_And(p, pA, pB),
Ivy_And(p, pA, pC)),
Ivy_And(p, pB, pC) );
231 pObj2 =
Ivy_Multi_rec( p, ppObjs + nObjs/2, nObjs - nObjs/2, Type );
232 return Ivy_Oper( p, pObj1, pObj2, Type );
267 assert( vPairs->nSize > 0 );
268 assert( vPairs->nSize % 2 == 0 );
270 for ( i = 0; i < vPairs->nSize; i += 2 )
272 vPairs->nSize = vPairs->nSize/2;
static ABC_NAMESPACE_IMPL_START int Ivy_ObjIsExorType(Ivy_Obj_t *p0, Ivy_Obj_t *p1, Ivy_Obj_t **ppFan0, Ivy_Obj_t **ppFan1)
DECLARATIONS ///.
static int Ivy_IsComplement(Ivy_Obj_t *p)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Ivy_Obj_t * Ivy_Maj(Ivy_Man_t *p, Ivy_Obj_t *pA, Ivy_Obj_t *pB, Ivy_Obj_t *pC)
Ivy_Obj_t * Ivy_Miter(Ivy_Man_t *p, Vec_Ptr_t *vPairs)
Ivy_Obj_t * Ivy_Mux(Ivy_Man_t *p, Ivy_Obj_t *pC, Ivy_Obj_t *p1, Ivy_Obj_t *p0)
static Ivy_Obj_t * Ivy_ObjFanin1(Ivy_Obj_t *pObj)
static Ivy_Obj_t * Ivy_ObjFanin0(Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_TableLookup(Ivy_Man_t *p, Ivy_Obj_t *pObj)
FUNCTION DEFINITIONS ///.
static int Ivy_ObjFaninC1(Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_Or(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1)
#define ABC_NAMESPACE_IMPL_END
static Ivy_Obj_t * Ivy_Regular(Ivy_Obj_t *p)
Ivy_Obj_t * Ivy_CanonAnd(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1)
static Ivy_Obj_t * Ivy_ObjChild0(Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_CanonLatch(Ivy_Man_t *p, Ivy_Obj_t *pObj, Ivy_Init_t Init)
typedefABC_NAMESPACE_HEADER_START struct Ivy_Man_t_ Ivy_Man_t
INCLUDES ///.
Ivy_Obj_t * Ivy_Exor(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1)
#define ABC_NAMESPACE_IMPL_START
static Ivy_Obj_t * Ivy_ObjCreateGhost(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1, Ivy_Type_t Type, Ivy_Init_t Init)
static int Ivy_ObjIsAnd(Ivy_Obj_t *pObj)
static Ivy_Obj_t * Ivy_Not(Ivy_Obj_t *p)
Ivy_Obj_t * Ivy_Multi(Ivy_Man_t *p, Ivy_Obj_t **pArgs, int nArgs, Ivy_Type_t Type)
static Ivy_Obj_t * Ivy_ObjChild1(Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_Multi_rec(Ivy_Man_t *p, Ivy_Obj_t **ppObjs, int nObjs, Ivy_Type_t Type)
Ivy_Obj_t * Ivy_Latch(Ivy_Man_t *p, Ivy_Obj_t *pObj, Ivy_Init_t Init)
Ivy_Obj_t * Ivy_And(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1)
Ivy_Obj_t * Ivy_Oper(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1, Ivy_Type_t Type)
FUNCTION DEFINITIONS ///.
static int Ivy_ObjFaninC0(Ivy_Obj_t *pObj)