28 #ifndef ABC__bdd__dsd__dsd_h
29 #define ABC__bdd__dsd__dsd_h
68 #define Dsd_IsComplement(p) (((int)((ABC_PTRUINT_T) (p) & 01)))
69 #define Dsd_Regular(p) ((Dsd_Node_t *)((ABC_PTRUINT_T)(p) & ~01))
70 #define Dsd_Not(p) ((Dsd_Node_t *)((ABC_PTRUINT_T)(p) ^ 01))
71 #define Dsd_NotCond(p,c) ((Dsd_Node_t *)((ABC_PTRUINT_T)(p) ^ (c)))
78 #define Dsd_NodeForEachChild( Node, Index, Child ) \
80 Index < Dsd_NodeReadDecsNum(Node) && \
81 ((Child = Dsd_NodeReadDec(Node,Index))>=0); \
118 extern void Dsd_TreePrint( FILE * pFile,
Dsd_Manager_t * dMan,
char * pInputNames[],
char * pOutputNames[],
int fShortNames,
int Output );
void Dsd_ManagerStop(Dsd_Manager_t *dMan)
void Dsd_TreePrint2(FILE *pFile, Dsd_Manager_t *dMan, char *pInputNames[], char *pOutputNames[], int Output)
Dsd_Node_t ** Dsd_TreeCollectNodesDfs(Dsd_Manager_t *dMan, int *pnNodes)
DdManager * Dsd_ManagerReadDd(Dsd_Manager_t *pMan)
Dsd_Node_t * Dsd_ManagerReadInput(Dsd_Manager_t *pMan, int i)
int Dsd_NodeReadDecsNum(Dsd_Node_t *p)
int Dsd_TreeCountNonTerminalNodes(Dsd_Manager_t *dMan)
Dsd_Type_t_
STRUCTURE DEFINITIONS ///.
Dsd_Node_t * Dsd_ManagerReadRoot(Dsd_Manager_t *pMan, int i)
int Dsd_TreeGetAigCost(Dsd_Node_t *pNode)
void Dsd_TreeNodeGetInfo(Dsd_Manager_t *dMan, int *DepthMax, int *GateSizeMax)
int Dsd_TreeCountPrimeNodesOne(Dsd_Node_t *pRoot)
void Dsd_NodePrint(FILE *pFile, Dsd_Node_t *pNode)
Dsd_Node_t * Dsd_ManagerReadConst1(Dsd_Manager_t *pMan)
int Dsd_TreeCollectDecomposableVars(Dsd_Manager_t *dMan, int *pVars)
STRUCTURE DEFINITIONS ///.
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
Dsd_Node_t ** Dsd_TreeCollectNodesDfsOne(Dsd_Manager_t *pDsdMan, Dsd_Node_t *pNode, int *pnNodes)
Dsd_Manager_t * Dsd_ManagerStart(DdManager *dd, int nSuppMax, int fVerbose)
FUNCTION DECLARATIONS ///.
#define ABC_NAMESPACE_HEADER_END
int Dsd_TreeCountPrimeNodes(Dsd_Manager_t *pDsdMan)
DdNode * Dsd_TreeGetPrimeFunction(DdManager *dd, Dsd_Node_t *pNode)
FUNCTION DEFINITIONS ///.
DdNode * Dsd_NodeReadSupp(Dsd_Node_t *p)
DdNode * Dsd_NodeReadFunc(Dsd_Node_t *p)
int Dsd_NodeReadMark(Dsd_Node_t *p)
enum Dsd_Type_t_ Dsd_Type_t
int Dsd_TreeCountNonTerminalNodesOne(Dsd_Node_t *pRoot)
void Dsd_Decompose(Dsd_Manager_t *dMan, DdNode **pbFuncs, int nFuncs)
DECOMPOSITION FUNCTIONS ///.
Dsd_Type_t Dsd_NodeReadType(Dsd_Node_t *p)
FUNCTION DEFINITIONS ///.
Dsd_Node_t * Dsd_DecomposeOne(Dsd_Manager_t *pDsdMan, DdNode *bFunc)
Dsd_Node_t * Dsd_NodeReadDec(Dsd_Node_t *p, int i)
void Dsd_NodeSetMark(Dsd_Node_t *p, int Mark)
void Dsd_TreeNodeGetInfoOne(Dsd_Node_t *pNode, int *DepthMax, int *GateSizeMax)
Dsd_Node_t ** Dsd_NodeReadDecs(Dsd_Node_t *p)
void Dsd_TreePrint(FILE *pFile, Dsd_Manager_t *dMan, char *pInputNames[], char *pOutputNames[], int fShortNames, int Output)