00001
00021 #ifndef __DAR_H__
00022 #define __DAR_H__
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00031
00035
00039
00040 typedef struct Dar_RwrPar_t_ Dar_RwrPar_t;
00041 typedef struct Dar_RefPar_t_ Dar_RefPar_t;
00042
00043 struct Dar_RwrPar_t_
00044 {
00045 int nCutsMax;
00046 int nSubgMax;
00047 int fFanout;
00048 int fUpdateLevel;
00049 int fUseZeros;
00050 int fVerbose;
00051 int fVeryVerbose;
00052 };
00053
00054 struct Dar_RefPar_t_
00055 {
00056 int nMffcMin;
00057 int nLeafMax;
00058 int nCutsMax;
00059 int fExtend;
00060 int fUpdateLevel;
00061 int fUseZeros;
00062 int fVerbose;
00063 int fVeryVerbose;
00064 };
00065
00069
00073
00077
00078
00079 extern void Dar_LibStart();
00080 extern void Dar_LibStop();
00081
00082 extern Aig_Man_t * Dar_ManBalance( Aig_Man_t * p, int fUpdateLevel );
00083
00084 extern void Dar_ManDefaultRwrParams( Dar_RwrPar_t * pPars );
00085 extern int Dar_ManRewrite( Aig_Man_t * pAig, Dar_RwrPar_t * pPars );
00086 extern Aig_MmFixed_t * Dar_ManComputeCuts( Aig_Man_t * pAig, int nCutsMax );
00087
00088 extern void Dar_ManDefaultRefParams( Dar_RefPar_t * pPars );
00089 extern int Dar_ManRefactor( Aig_Man_t * pAig, Dar_RefPar_t * pPars );
00090
00091 extern Aig_Man_t * Dar_ManRewriteDefault( Aig_Man_t * pAig );
00092 extern Aig_Man_t * Dar_ManRwsat( Aig_Man_t * pAig, int fBalance, int fVerbose );
00093 extern Aig_Man_t * Dar_ManCompress( Aig_Man_t * pAig, int fBalance, int fUpdateLevel, int fVerbose );
00094 extern Aig_Man_t * Dar_ManCompress2( Aig_Man_t * pAig, int fBalance, int fUpdateLevel, int fVerbose );
00095 extern Aig_Man_t * Dar_ManChoice( Aig_Man_t * pAig, int fBalance, int fUpdateLevel, int fVerbose );
00096
00097 #ifdef __cplusplus
00098 }
00099 #endif
00100
00101 #endif
00102
00106