summaryrefslogtreecommitdiffstats
path: root/src/bdd/dsd/dsdInt.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2005-07-29 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2005-07-29 08:01:00 -0700
commit888e5bed5d7f56a5d86d91a6e8e88f3e5a3454dc (patch)
tree11d48c9e9069f54dc300c3571ae63c744c802c50 /src/bdd/dsd/dsdInt.h
parent7f94414388cce67bd3cc1a6d6269f0ed31ed0d06 (diff)
downloadabc-888e5bed5d7f56a5d86d91a6e8e88f3e5a3454dc.tar.gz
abc-888e5bed5d7f56a5d86d91a6e8e88f3e5a3454dc.tar.bz2
abc-888e5bed5d7f56a5d86d91a6e8e88f3e5a3454dc.zip
Version abc50729
Diffstat (limited to 'src/bdd/dsd/dsdInt.h')
-rw-r--r--src/bdd/dsd/dsdInt.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/bdd/dsd/dsdInt.h b/src/bdd/dsd/dsdInt.h
new file mode 100644
index 00000000..81440460
--- /dev/null
+++ b/src/bdd/dsd/dsdInt.h
@@ -0,0 +1,88 @@
+/**CFile****************************************************************
+
+ FileName [dsdInt.h]
+
+ PackageName [DSD: Disjoint-support decomposition package.]
+
+ Synopsis [Internal declarations of the package.]
+
+ Author [Alan Mishchenko]
+
+ Affiliation [UC Berkeley]
+
+ Date [Ver. 8.0. Started - September 22, 2003.]
+
+ Revision [$Id: dsdInt.h,v 1.0 2002/22/09 00:00:00 alanmi Exp $]
+
+***********************************************************************/
+
+#ifndef __DSD_INT_H__
+#define __DSD_INT_H__
+
+#include "extra.h"
+#include "dsd.h"
+
+////////////////////////////////////////////////////////////////////////
+/// TYPEDEF DEFITIONS ///
+////////////////////////////////////////////////////////////////////////
+
+typedef unsigned char byte;
+
+////////////////////////////////////////////////////////////////////////
+/// STRUCTURE DEFINITIONS ///
+////////////////////////////////////////////////////////////////////////
+
+// DSD manager
+struct Dsd_Manager_t_
+{
+ DdManager * dd; // the BDD manager
+ st_table * Table; // the mapping of BDDs into their DEs
+ int nInputs; // the number of primary inputs
+ int nRoots; // the number of primary outputs
+ int nRootsAlloc;// the number of primary outputs
+ Dsd_Node_t ** pInputs; // the primary input nodes
+ Dsd_Node_t ** pRoots; // the primary output nodes
+ int fVerbose; // the verbosity level
+};
+
+// DSD node
+struct Dsd_Node_t_
+{
+ Dsd_Type_t Type; // decomposition type
+ DdNode * G; // function of the node
+ DdNode * S; // support of this function
+ Dsd_Node_t ** pDecs; // pointer to structures for formal inputs
+ int Mark; // the mark used by CASE 4 of disjoint decomposition
+ short nDecs; // the number of formal inputs
+ short nVisits; // the counter of visits
+};
+
+////////////////////////////////////////////////////////////////////////
+/// MACRO DEFITIONS ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// PARAMETERS ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// FUNCTION DECLARATIONS ///
+////////////////////////////////////////////////////////////////////////
+
+/*=== dsdCheck.c =======================================================*/
+extern void Dsd_CheckCacheAllocate( int nEntries );
+extern void Dsd_CheckCacheDeallocate();
+extern void Dsd_CheckCacheClear();
+extern int Dsd_CheckRootFunctionIdentity( DdManager * dd, DdNode * bF1, DdNode * bF2, DdNode * bC1, DdNode * bC2 );
+/*=== dsdTree.c =======================================================*/
+extern Dsd_Node_t * Dsd_TreeNodeCreate( int Type, int nDecs, int BlockNum );
+extern void Dsd_TreeNodeDelete( DdManager * dd, Dsd_Node_t * pNode );
+extern void Dsd_TreeUnmark( Dsd_Manager_t * dMan );
+extern DdNode * Dsd_TreeGetPrimeFunctionOld( DdManager * dd, Dsd_Node_t * pNode, int fRemap );
+
+////////////////////////////////////////////////////////////////////////
+/// END OF FILE ///
+////////////////////////////////////////////////////////////////////////
+
+
+#endif \ No newline at end of file