21 #ifndef ABC__opt_sfmInt__h
22 #define ABC__opt_sfmInt__h
44 #define SFM_FANIN_MAX 6
45 #define SFM_SAT_UNDEC 0x1234567812345678
46 #define SFM_SAT_SAT 0x8765432187654321
168 #define Sfm_NtkForEachPi( p, i ) for ( i = 0; i < p->nPis; i++ )
169 #define Sfm_NtkForEachPo( p, i ) for ( i = p->nObjs - p->nPos; i < p->nObjs; i++ )
170 #define Sfm_NtkForEachNode( p, i ) for ( i = p->nPis; i + p->nPos < p->nObjs; i++ )
171 #define Sfm_NtkForEachNodeReverse( p, i ) for ( i = p->nObjs - p->nPos - 1; i >= p->nPis; i-- )
172 #define Sfm_ObjForEachFanin( p, Node, Fan, i ) for ( i = 0; i < Sfm_ObjFaninNum(p, Node) && ((Fan = Sfm_ObjFanin(p, Node, i)), 1); i++ )
173 #define Sfm_ObjForEachFanout( p, Node, Fan, i ) for ( i = 0; i < Sfm_ObjFanoutNum(p, Node) && ((Fan = Sfm_ObjFanout(p, Node, i)), 1); i++ )
static int Sfm_ObjAddsLevel(Sfm_Ntk_t *p, int i)
typedefABC_NAMESPACE_HEADER_START struct Vec_Wec_t_ Vec_Wec_t
INCLUDES ///.
int Sfm_NtkWindowToSolver(Sfm_Ntk_t *p)
FUNCTION DEFINITIONS ///.
void Sfm_NtkUpdate(Sfm_Ntk_t *p, int iNode, int f, int iFaninNew, word uTruth)
Sfm_Ntk_t * Sfm_ConstructNetwork(Vec_Wec_t *vFanins, int nPis, int nPos)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
int Sfm_TruthToCnf(word Truth, int nVars, Vec_Int_t *vCover, Vec_Str_t *vCnf)
static int Sfm_ObjFaninNum(Sfm_Ntk_t *p, int i)
static void Sfm_NtkCleanVars(Sfm_Ntk_t *p)
static int Sfm_ObjUpdateFaninCount(Sfm_Ntk_t *p, int iObj)
typedefABC_NAMESPACE_HEADER_START struct Sfm_Ntk_t_ Sfm_Ntk_t
INCLUDES ///.
static void Sfm_ObjCleanSatVar(Sfm_Ntk_t *p, int Num)
static int Sfm_ObjIsNode(Sfm_Ntk_t *p, int i)
word Sfm_ComputeInterpolant(Sfm_Ntk_t *p)
static int Sfm_ObjLevel(Sfm_Ntk_t *p, int iObj)
int Sfm_NtkCreateWindow(Sfm_Ntk_t *p, int iNode, int fVerbose)
static int Sfm_ObjFanin(Sfm_Ntk_t *p, int i, int k)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
static int Sfm_ObjIsPi(Sfm_Ntk_t *p, int i)
static char Vec_StrEntry(Vec_Str_t *p, int i)
static void Vec_IntAddToEntry(Vec_Int_t *p, int i, int Addition)
static int Sfm_ObjSatVar(Sfm_Ntk_t *p, int iObj)
static int Sfm_ObjIsPo(Sfm_Ntk_t *p, int i)
static int Vec_IntEntry(Vec_Int_t *p, int i)
static int Sfm_ObjFanout(Sfm_Ntk_t *p, int i, int k)
unsigned __int64 word
DECLARATIONS ///.
static Vec_Int_t * Sfm_ObjFiArray(Sfm_Ntk_t *p, int i)
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
static int Sfm_ObjLevelR(Sfm_Ntk_t *p, int iObj)
void Sfm_PrintCnf(Vec_Str_t *vCnf)
FUNCTION DECLARATIONS ///.
#define ABC_NAMESPACE_HEADER_END
static int Sfm_ObjRefDecrement(Sfm_Ntk_t *p, int iObj)
Vec_Wec_t * Sfm_CreateCnf(Sfm_Ntk_t *p)
static Vec_Int_t * Vec_WecEntry(Vec_Wec_t *p, int i)
static int Sfm_ObjAddsLevelArray(Vec_Str_t *p, int i)
void Kit_DsdPrintFromTruth(unsigned *pTruth, int nVars)
static ABC_NAMESPACE_IMPL_START word Truth[8]
DECLARATIONS ///.
static int Vec_IntSize(Vec_Int_t *p)
static int Sfm_NtkPoNum(Sfm_Ntk_t *p)
static void Sfm_ObjSetSatVar(Sfm_Ntk_t *p, int iObj, int Num)
static void Sfm_ObjResetFaninCount(Sfm_Ntk_t *p, int iObj)
static int Sfm_ObjFanoutNum(Sfm_Ntk_t *p, int i)
static void Sfm_ObjSetLevel(Sfm_Ntk_t *p, int iObj, int Lev)
static Vec_Int_t * Sfm_ObjFoArray(Sfm_Ntk_t *p, int i)
void Sfm_NtkPrepare(Sfm_Ntk_t *p)
static int Sfm_ObjIsFixed(Sfm_Ntk_t *p, int i)
void Sfm_TranslateCnf(Vec_Wec_t *vRes, Vec_Str_t *vCnf, Vec_Int_t *vFaninMap, int iPivotVar)
typedefABC_NAMESPACE_HEADER_START struct Vec_Wrd_t_ Vec_Wrd_t
INCLUDES ///.
static void Sfm_ObjSetLevelR(Sfm_Ntk_t *p, int iObj, int Lev)
static int Sfm_NtkNodeNum(Sfm_Ntk_t *p)
static int Sfm_ObjRefIncrement(Sfm_Ntk_t *p, int iObj)
static int Sfm_NtkPiNum(Sfm_Ntk_t *p)
int Sfm_ObjMffcSize(Sfm_Ntk_t *p, int iObj)