21#ifndef ABC__aig__csw__cswInt_h
22#define ABC__aig__csw__cswInt_h
102static inline int Csw_CutLeaveNum(
Csw_Cut_t * pCut ) {
return pCut->
nFanins; }
103static inline int * Csw_CutLeaves(
Csw_Cut_t * pCut ) {
return pCut->
pFanins; }
108static inline void Csw_ObjAddRefs(
Csw_Man_t *
p,
Aig_Obj_t * pObj,
int nRefs ) {
p->pnRefs[pObj->
Id] += nRefs; }
116static inline Aig_Obj_t * Csw_ObjChild0Equiv(
Csw_Man_t *
p,
Aig_Obj_t * pObj ) {
assert( !Aig_IsComplement(pObj) );
return Aig_ObjFanin0(pObj)? Aig_NotCond(Csw_ObjEquiv(
p, Aig_ObjFanin0(pObj)), Aig_ObjFaninC0(pObj)) : NULL; }
117static inline Aig_Obj_t * Csw_ObjChild1Equiv(
Csw_Man_t *
p,
Aig_Obj_t * pObj ) {
assert( !Aig_IsComplement(pObj) );
return Aig_ObjFanin1(pObj)? Aig_NotCond(Csw_ObjEquiv(
p, Aig_ObjFanin1(pObj)), Aig_ObjFaninC1(pObj)) : NULL; }
128#define Csw_ObjForEachCut( p, pObj, pCut, i ) \
129 for ( i = 0, pCut = Csw_ObjCuts(p, pObj); i < p->nCutsMax; i++, pCut = Csw_CutNext(pCut) )
131#define Csw_CutForEachLeaf( p, pCut, pLeaf, i ) \
132 for ( i = 0; (i < (int)(pCut)->nFanins) && ((pLeaf) = Aig_ManObj(p, (pCut)->pFanins[i])); i++ )
#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 ///.
struct Aig_MmFixed_t_ Aig_MmFixed_t
Csw_Man_t * Csw_ManStart(Aig_Man_t *pMan, int nCutsMax, int nLeafMax, int fVerbose)
DECLARATIONS ///.
Csw_Cut_t * Csw_ObjPrepareCuts(Csw_Man_t *p, Aig_Obj_t *pObj, int fTriv)
FUNCTION DECLARATIONS ///.
void Csw_TableCutInsert(Csw_Man_t *p, Csw_Cut_t *pCut)
int Csw_TableCountCuts(Csw_Man_t *p)
struct Csw_Cut_t_ Csw_Cut_t
Aig_Obj_t * Csw_ObjSweep(Csw_Man_t *p, Aig_Obj_t *pObj, int fTriv)
Aig_Obj_t * Csw_TableCutLookup(Csw_Man_t *p, Csw_Cut_t *pCut)
typedefABC_NAMESPACE_HEADER_START struct Csw_Man_t_ Csw_Man_t
INCLUDES ///.
void Csw_ManStop(Csw_Man_t *p)