summaryrefslogtreecommitdiffstats
path: root/src/aig/dar/dar.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/aig/dar/dar.h')
-rw-r--r--src/aig/dar/dar.h29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/aig/dar/dar.h b/src/aig/dar/dar.h
index cff2785b..3106c7ad 100644
--- a/src/aig/dar/dar.h
+++ b/src/aig/dar/dar.h
@@ -37,10 +37,10 @@ extern "C" {
/// BASIC TYPES ///
////////////////////////////////////////////////////////////////////////
-typedef struct Dar_Par_t_ Dar_Par_t;
+typedef struct Dar_RwrPar_t_ Dar_RwrPar_t;
+typedef struct Dar_RefPar_t_ Dar_RefPar_t;
-// the rewriting parameters
-struct Dar_Par_t_
+struct Dar_RwrPar_t_
{
int nCutsMax; // the maximum number of cuts to try
int nSubgMax; // the maximum number of subgraphs to try
@@ -50,6 +50,18 @@ struct Dar_Par_t_
int fVeryVerbose; // enables very verbose output
};
+struct Dar_RefPar_t_
+{
+ int nMffcMin; // the min MFFC size for which refactoring is used
+ int nLeafMax; // the max number of leaves of a cut
+ int nCutsMax; // the max number of cuts to consider
+ int fExtend; // extends the cut below MFFC
+ int fUpdateLevel; // updates the level after each move
+ int fUseZeros; // perform zero-cost replacements
+ int fVerbose; // verbosity level
+ int fVeryVerbose; // enables very verbose output
+};
+
////////////////////////////////////////////////////////////////////////
/// MACRO DEFINITIONS ///
////////////////////////////////////////////////////////////////////////
@@ -62,10 +74,17 @@ struct Dar_Par_t_
/// FUNCTION DECLARATIONS ///
////////////////////////////////////////////////////////////////////////
+/*=== darBalance.c ========================================================*/
+extern Aig_Man_t * Dar_ManBalance( Aig_Man_t * p, int fUpdateLevel );
/*=== darCore.c ========================================================*/
-extern void Dar_ManDefaultParams( Dar_Par_t * pPars );
-extern int Dar_ManRewrite( Aig_Man_t * pAig, Dar_Par_t * pPars );
+extern void Dar_ManDefaultRwrParams( Dar_RwrPar_t * pPars );
+extern int Dar_ManRewrite( Aig_Man_t * pAig, Dar_RwrPar_t * pPars );
extern Aig_MmFixed_t * Dar_ManComputeCuts( Aig_Man_t * pAig );
+/*=== darRefact.c ========================================================*/
+extern void Dar_ManDefaultRefParams( Dar_RefPar_t * pPars );
+extern int Dar_ManRefactor( Aig_Man_t * pAig, Dar_RefPar_t * pPars );
+/*=== darScript.c ========================================================*/
+extern Aig_Man_t * Dar_ManCompress2( Aig_Man_t * pAig, int fVerbose );
#ifdef __cplusplus
}