42 #define DAU_MAX_VAR 12 // should be 6 or more
43 #define DAU_MAX_STR 2000
44 #define DAU_MAX_WORD (1<<(DAU_MAX_VAR-6))
67 static inline int Dau_DsdIsConst(
char *
p ) {
return (p[0] ==
'0' || p[0] ==
'1') && p[1] == 0; }
70 static inline int Dau_DsdIsVar(
char *
p ) {
if ( *p ==
'!' ) p++;
return *p >=
'a' && *p <=
'z'; }
71 static inline int Dau_DsdReadVar(
char *
p ) {
if ( *p ==
'!' ) p++;
return *p -
'a'; }
82 extern int Dau_DsdDecompose(
word * pTruth,
int nVarsInit,
int fSplitPrime,
int fWriteTruth,
char * pRes );
83 extern int Dau_DsdDecomposeLevel(
word * pTruth,
int nVarsInit,
int fSplitPrime,
int fWriteTruth,
char * pRes,
int * pVarLevels );
99 extern char *
Dau_DsdMerge(
char * pDsd0i,
int * pPerm0,
char * pDsd1i,
int * pPerm1,
int fCompl0,
int fCompl1,
int nVars );
104 extern void Dau_DecSortSet(
unsigned set,
int nVars,
int * pnUnique,
int * pnShared,
int * pnFree );
111 extern int Dss_ManMerge(
Dss_Man_t *
p,
int * iDsd,
int * nFans,
int ** pFans,
unsigned uSharedMask,
int nKLutSize,
unsigned char *
pPerm,
word * pTruth );
void Dss_ManFree(Dss_Man_t *p)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static int Dau_DsdReadVar(char *p)
void Dau_DsdPrintFromTruth(word *pTruth, int nVarsInit)
Vec_Int_t * Dau_DecFindSets_int(word *pInit, int nVars, int *pSched[16])
int Dau_DsdDecompose(word *pTruth, int nVarsInit, int fSplitPrime, int fWriteTruth, char *pRes)
word * Dau_DsdToTruth(char *p, int nVars)
void Dau_DsdRemoveBraces(char *pDsd, int *pMatches)
int Dsm_ManTruthToGia(void *p, word *pTruth, Vec_Int_t *vLeaves, Vec_Int_t *vCover)
static int Dau_DsdIsConst(char *p)
MACRO DEFINITIONS ///.
Vec_Int_t * Dau_DecFindSets(word *pInit, int nVars)
int Dau_DsdDecomposeLevel(word *pTruth, int nVarsInit, int fSplitPrime, int fWriteTruth, char *pRes, int *pVarLevels)
word Dau_Dsd6ToTruth(char *p)
unsigned Abc_TtCanonicizePhase(word *pTruth, int nVars)
void Dau_DecPrintSets(Vec_Int_t *vSets, int nVars)
int * Dau_DsdComputeMatches(char *p)
void Dau_DsdNormalize(char *p)
#define DAU_MAX_VAR
INCLUDES ///.
unsigned __int64 word
DECLARATIONS ///.
void Dau_DsdPrintFromTruthFile(FILE *pFile, word *pTruth, int nVarsInit)
void Dau_DsdTruthCompose_rec(word *pFunc, word pFanins[DAU_MAX_VAR][DAU_MAX_WORD], word *pRes, int nVars, int nWordsR)
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
#define ABC_NAMESPACE_HEADER_END
Dau_DsdType_t
BASIC TYPES ///.
void Dau_DecPrintSet(unsigned set, int nVars, int fNewLine)
void Dss_ManPrint(char *pFileName, Dss_Man_t *p)
void Dau_DecSortSet(unsigned set, int nVars, int *pnUnique, int *pnShared, int *pnFree)
char * Dau_DsdMerge(char *pDsd0i, int *pPerm0, char *pDsd1i, int *pPerm1, int fCompl0, int fCompl1, int nVars)
DECLARATIONS ///.
static int Dau_DsdIsConst1(char *p)
void * Dsm_ManDeriveGia(void *p, int fUseMuxes)
int Dss_ManMerge(Dss_Man_t *p, int *iDsd, int *nFans, int **pFans, unsigned uSharedMask, int nKLutSize, unsigned char *pPerm, word *pTruth)
Dss_Man_t * Dss_ManAlloc(int nVars, int nNonDecLimit)
unsigned Abc_TtCanonicize(word *pTruth, int nVars, char *pCanonPerm)
FUNCTION DECLARATIONS ///.
static int Dau_DsdIsVar(char *p)
static int Dau_DsdIsConst0(char *p)
int Dau_DsdCountAnds(char *pDsd)
int Dau_DsdCheck1Step(void *p, word *pTruth, int nVarsInit, int *pVarLevels)