summaryrefslogtreecommitdiffstats
path: root/src/aig/dar/darInt.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/aig/dar/darInt.h')
-rw-r--r--src/aig/dar/darInt.h171
1 files changed, 0 insertions, 171 deletions
diff --git a/src/aig/dar/darInt.h b/src/aig/dar/darInt.h
deleted file mode 100644
index 23e89d3c..00000000
--- a/src/aig/dar/darInt.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/**CFile****************************************************************
-
- FileName [darInt.h]
-
- SystemName [ABC: Logic synthesis and verification system.]
-
- PackageName [DAG-aware AIG rewriting.]
-
- Synopsis [Internal declarations.]
-
- Author [Alan Mishchenko]
-
- Affiliation [UC Berkeley]
-
- Date [Ver. 1.0. Started - April 28, 2007.]
-
- Revision [$Id: darInt.h,v 1.00 2007/04/28 00:00:00 alanmi Exp $]
-
-***********************************************************************/
-
-#ifndef __DAR_INT_H__
-#define __DAR_INT_H__
-
-
-////////////////////////////////////////////////////////////////////////
-/// INCLUDES ///
-////////////////////////////////////////////////////////////////////////
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <time.h>
-
-//#include "bar.h"
-#include "vec.h"
-#include "aig.h"
-#include "dar.h"
-
-////////////////////////////////////////////////////////////////////////
-/// PARAMETERS ///
-////////////////////////////////////////////////////////////////////////
-
-
-
-ABC_NAMESPACE_HEADER_START
-
-
-////////////////////////////////////////////////////////////////////////
-/// BASIC TYPES ///
-////////////////////////////////////////////////////////////////////////
-
-typedef struct Dar_Man_t_ Dar_Man_t;
-typedef struct Dar_Cut_t_ Dar_Cut_t;
-
-// the AIG 4-cut
-struct Dar_Cut_t_ // 6 words
-{
- unsigned uSign; // cut signature
- unsigned uTruth : 16; // the truth table of the cut function
- unsigned Value : 11; // the value of the cut
- unsigned fBest : 1; // marks the best cut
- unsigned fUsed : 1; // marks the cut currently in use
- unsigned nLeaves : 3; // the number of leaves
- int pLeaves[4]; // the array of leaves
-};
-
-// the AIG manager
-struct Dar_Man_t_
-{
- // input data
- Dar_RwrPar_t * pPars; // rewriting parameters
- Aig_Man_t * pAig; // AIG manager
- // various data members
- Aig_MmFixed_t * pMemCuts; // memory manager for cuts
- void * pManCnf; // CNF managers
- Vec_Ptr_t * vCutNodes; // the nodes with cuts allocated
- // current rewriting step
- Vec_Ptr_t * vLeavesBest; // the best set of leaves
- int OutBest; // the best output (in the library)
- int OutNumBest; // the best number of the output
- int GainBest; // the best gain
- int LevelBest; // the level of node with the best gain
- int ClassBest; // the equivalence class of the best replacement
- // function statistics
- int nTotalSubgs; // the total number of subgraphs tried
- int ClassTimes[222];// the runtimes for each class
- int ClassGains[222];// the gains for each class
- int ClassSubgs[222];// the graphs for each class
- int nCutMemUsed; // memory used for cuts
- // rewriting statistics
- int nNodesInit; // the original number of nodes
- int nNodesTried; // the number of nodes attempted
- int nCutsAll; // all cut pairs
- int nCutsTried; // computed cuts
- int nCutsUsed; // used cuts
- int nCutsBad; // bad cuts due to absent fanin
- int nCutsGood; // good cuts
- int nCutsSkipped; // skipped bad cuts
- // timing statistics
- int timeCuts;
- int timeEval;
- int timeOther;
- int timeTotal;
- int time1;
- int time2;
-};
-
-static inline Dar_Cut_t * Dar_ObjCuts( Aig_Obj_t * pObj ) { return (Dar_Cut_t *)pObj->pData; }
-static inline void Dar_ObjSetCuts( Aig_Obj_t * pObj, Dar_Cut_t * pCuts ) { assert( !Aig_ObjIsNone(pObj) ); pObj->pData = pCuts; }
-
-////////////////////////////////////////////////////////////////////////
-/// MACRO DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////
-/// ITERATORS ///
-////////////////////////////////////////////////////////////////////////
-
-// iterator over all cuts of the node
-#define Dar_ObjForEachCutAll( pObj, pCut, i ) \
- for ( (pCut) = Dar_ObjCuts(pObj), i = 0; i < (int)(pObj)->nCuts; i++, pCut++ )
-#define Dar_ObjForEachCut( pObj, pCut, i ) \
- for ( (pCut) = Dar_ObjCuts(pObj), i = 0; i < (int)(pObj)->nCuts; i++, pCut++ ) if ( (pCut)->fUsed==0 ) {} else
-// iterator over leaves of the cut
-#define Dar_CutForEachLeaf( p, pCut, pLeaf, i ) \
- for ( i = 0; (i < (int)(pCut)->nLeaves) && (((pLeaf) = Aig_ManObj(p, (pCut)->pLeaves[i])), 1); i++ )
-
-////////////////////////////////////////////////////////////////////////
-/// FUNCTION DECLARATIONS ///
-////////////////////////////////////////////////////////////////////////
-
-/*=== darBalance.c ========================================================*/
-/*=== darCore.c ===========================================================*/
-/*=== darCut.c ============================================================*/
-extern void Dar_ManCutsRestart( Dar_Man_t * p, Aig_Obj_t * pRoot );
-extern void Dar_ManCutsFree( Dar_Man_t * p );
-extern Dar_Cut_t * Dar_ObjPrepareCuts( Dar_Man_t * p, Aig_Obj_t * pObj );
-extern Dar_Cut_t * Dar_ObjComputeCuts_rec( Dar_Man_t * p, Aig_Obj_t * pObj );
-extern Dar_Cut_t * Dar_ObjComputeCuts( Dar_Man_t * p, Aig_Obj_t * pObj );
-extern void Dar_ObjCutPrint( Aig_Man_t * p, Aig_Obj_t * pObj );
-/*=== darData.c ===========================================================*/
-extern Vec_Int_t * Dar_LibReadNodes();
-extern Vec_Int_t * Dar_LibReadOuts();
-extern Vec_Int_t * Dar_LibReadPrios();
-/*=== darLib.c ============================================================*/
-extern void Dar_LibStart();
-extern void Dar_LibStop();
-extern void Dar_LibReturnCanonicals( unsigned * pCanons );
-extern void Dar_LibEval( Dar_Man_t * p, Aig_Obj_t * pRoot, Dar_Cut_t * pCut, int Required, int * pnMffcSize );
-extern Aig_Obj_t * Dar_LibBuildBest( Dar_Man_t * p );
-/*=== darMan.c ============================================================*/
-extern Dar_Man_t * Dar_ManStart( Aig_Man_t * pAig, Dar_RwrPar_t * pPars );
-extern void Dar_ManStop( Dar_Man_t * p );
-extern void Dar_ManPrintStats( Dar_Man_t * p );
-/*=== darPrec.c ============================================================*/
-extern char ** Dar_Permutations( int n );
-extern void Dar_Truth4VarNPN( unsigned short ** puCanons, char ** puPhases, char ** puPerms, unsigned char ** puMap );
-
-
-
-ABC_NAMESPACE_HEADER_END
-
-
-
-#endif
-
-////////////////////////////////////////////////////////////////////////
-/// END OF FILE ///
-////////////////////////////////////////////////////////////////////////
-