summaryrefslogtreecommitdiffstats
path: root/src/bdd/dsd/dsd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/bdd/dsd/dsd.h')
-rw-r--r--src/bdd/dsd/dsd.h129
1 files changed, 0 insertions, 129 deletions
diff --git a/src/bdd/dsd/dsd.h b/src/bdd/dsd/dsd.h
deleted file mode 100644
index b73b81ab..00000000
--- a/src/bdd/dsd/dsd.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/**CFile****************************************************************
-
- FileName [dsd.h]
-
- PackageName [DSD: Disjoint-support decomposition package.]
-
- Synopsis [External declarations of the package.
- This fast BDD-based recursive algorithm for simple
- (single-output) DSD is based on the following papers:
- (1) V. Bertacco and M. Damiani, "Disjunctive decomposition of
- logic functions," Proc. ICCAD '97, pp. 78-82.
- (2) Y. Matsunaga, "An exact and efficient algorithm for disjunctive
- decomposition", Proc. SASIMI '98, pp. 44-50.
- The scope of detected decompositions is the same as in the paper:
- T. Sasao and M. Matsuura, "DECOMPOS: An integrated system for
- functional decomposition," Proc. IWLS '98, pp. 471-477.]
-
- Author [Alan Mishchenko]
-
- Affiliation [UC Berkeley]
-
- Date [Ver. 8.0. Started - September 22, 2003.]
-
- Revision [$Id: dsd.h,v 1.0 2002/22/09 00:00:00 alanmi Exp $]
-
-***********************************************************************/
-
-#ifndef __DSD_H__
-#define __DSD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-////////////////////////////////////////////////////////////////////////
-/// TYPEDEF DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-typedef struct Dsd_Manager_t_ Dsd_Manager_t;
-typedef struct Dsd_Node_t_ Dsd_Node_t;
-typedef enum Dsd_Type_t_ Dsd_Type_t;
-
-////////////////////////////////////////////////////////////////////////
-/// STRUCTURE DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////
-/// PARAMETERS ///
-////////////////////////////////////////////////////////////////////////
-
-// types of DSD nodes
-enum Dsd_Type_t_ {
- DSD_NODE_NONE = 0,
- DSD_NODE_CONST1 = 1,
- DSD_NODE_BUF = 2,
- DSD_NODE_OR = 3,
- DSD_NODE_EXOR = 4,
- DSD_NODE_PRIME = 5,
-};
-
-////////////////////////////////////////////////////////////////////////
-/// MACRO DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-// complementation and testing for pointers for decomposition entries
-#define Dsd_IsComplement(p) (((int)((unsigned long) (p) & 01)))
-#define Dsd_Regular(p) ((Dsd_Node_t *)((unsigned long)(p) & ~01))
-#define Dsd_Not(p) ((Dsd_Node_t *)((unsigned long)(p) ^ 01))
-#define Dsd_NotCond(p,c) ((Dsd_Node_t *)((unsigned long)(p) ^ (c)))
-
-////////////////////////////////////////////////////////////////////////
-/// ITERATORS ///
-////////////////////////////////////////////////////////////////////////
-
-// iterator through the transitions
-#define Dsd_NodeForEachChild( Node, Index, Child ) \
- for ( Index = 0; \
- Index < Dsd_NodeReadDecsNum(Node) && \
- ((Child = Dsd_NodeReadDec(Node,Index))>=0); \
- Index++ )
-
-////////////////////////////////////////////////////////////////////////
-/// FUNCTION DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-/*=== dsdApi.c =======================================================*/
-extern Dsd_Type_t Dsd_NodeReadType( Dsd_Node_t * p );
-extern DdNode * Dsd_NodeReadFunc( Dsd_Node_t * p );
-extern DdNode * Dsd_NodeReadSupp( Dsd_Node_t * p );
-extern Dsd_Node_t ** Dsd_NodeReadDecs( Dsd_Node_t * p );
-extern Dsd_Node_t * Dsd_NodeReadDec ( Dsd_Node_t * p, int i );
-extern int Dsd_NodeReadDecsNum( Dsd_Node_t * p );
-extern int Dsd_NodeReadMark( Dsd_Node_t * p );
-extern void Dsd_NodeSetMark( Dsd_Node_t * p, int Mark );
-extern DdManager * Dsd_ManagerReadDd( Dsd_Manager_t * pMan );
-extern Dsd_Node_t * Dsd_ManagerReadRoot( Dsd_Manager_t * pMan, int i );
-extern Dsd_Node_t * Dsd_ManagerReadInput( Dsd_Manager_t * pMan, int i );
-extern Dsd_Node_t * Dsd_ManagerReadConst1( Dsd_Manager_t * pMan );
-/*=== dsdMan.c =======================================================*/
-extern Dsd_Manager_t * Dsd_ManagerStart( DdManager * dd, int nSuppMax, int fVerbose );
-extern void Dsd_ManagerStop( Dsd_Manager_t * dMan );
-/*=== dsdProc.c =======================================================*/
-extern void Dsd_Decompose( Dsd_Manager_t * dMan, DdNode ** pbFuncs, int nFuncs );
-extern Dsd_Node_t * Dsd_DecomposeOne( Dsd_Manager_t * pDsdMan, DdNode * bFunc );
-/*=== dsdTree.c =======================================================*/
-extern void Dsd_TreeNodeGetInfo( Dsd_Manager_t * dMan, int * DepthMax, int * GateSizeMax );
-extern void Dsd_TreeNodeGetInfoOne( Dsd_Node_t * pNode, int * DepthMax, int * GateSizeMax );
-extern int Dsd_TreeGetAigCost( Dsd_Node_t * pNode );
-extern int Dsd_TreeCountNonTerminalNodes( Dsd_Manager_t * dMan );
-extern int Dsd_TreeCountNonTerminalNodesOne( Dsd_Node_t * pRoot );
-extern int Dsd_TreeCountPrimeNodes( Dsd_Manager_t * pDsdMan );
-extern int Dsd_TreeCountPrimeNodesOne( Dsd_Node_t * pRoot );
-extern int Dsd_TreeCollectDecomposableVars( Dsd_Manager_t * dMan, int * pVars );
-extern Dsd_Node_t ** Dsd_TreeCollectNodesDfs( Dsd_Manager_t * dMan, int * pnNodes );
-extern Dsd_Node_t ** Dsd_TreeCollectNodesDfsOne( Dsd_Manager_t * pDsdMan, Dsd_Node_t * pNode, int * pnNodes );
-extern void Dsd_TreePrint( FILE * pFile, Dsd_Manager_t * dMan, char * pInputNames[], char * pOutputNames[], int fShortNames, int Output );
-extern void Dsd_NodePrint( FILE * pFile, Dsd_Node_t * pNode );
-/*=== dsdLocal.c =======================================================*/
-extern DdNode * Dsd_TreeGetPrimeFunction( DdManager * dd, Dsd_Node_t * pNode );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-////////////////////////////////////////////////////////////////////////
-/// END OF FILE ///
-////////////////////////////////////////////////////////////////////////