summaryrefslogtreecommitdiffstats
path: root/src/aig/saig/saigIso.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-02-12 15:45:07 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2012-02-12 15:45:07 -0800
commit9f331ae915e5f6c2ef0fb7b8ef9f109ea5d96f87 (patch)
tree5fe980d4d55fd73bb63a667aa7f8dd0269884096 /src/aig/saig/saigIso.c
parentd9edb7e549c2d4b77026d2fba71b1883d1ba378b (diff)
downloadabc-9f331ae915e5f6c2ef0fb7b8ef9f109ea5d96f87.tar.gz
abc-9f331ae915e5f6c2ef0fb7b8ef9f109ea5d96f87.tar.bz2
abc-9f331ae915e5f6c2ef0fb7b8ef9f109ea5d96f87.zip
Isomorphism checking code.
Diffstat (limited to 'src/aig/saig/saigIso.c')
-rw-r--r--src/aig/saig/saigIso.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/aig/saig/saigIso.c b/src/aig/saig/saigIso.c
index b840b73c..ad6a9496 100644
--- a/src/aig/saig/saigIso.c
+++ b/src/aig/saig/saigIso.c
@@ -427,6 +427,7 @@ Aig_Man_t * Iso_ManFilterPos( Aig_Man_t * pAig, int fVerbose )
Vec_Int_t * vLevel, * vRemain;
Vec_Str_t * vStr, * vPrev;
int i, nPos, nUnique = 0, clk = clock();
+ int clkDup = 0, clkAig = 0, clkIso = 0, clk2;
// derive AIG for each PO
nPos = Aig_ManPoNum(pAig) - Aig_ManRegNum(pAig);
@@ -434,10 +435,20 @@ Aig_Man_t * Iso_ManFilterPos( Aig_Man_t * pAig, int fVerbose )
for ( i = 0; i < nPos; i++ )
{
if ( i % 100 == 0 )
- printf( "%6d finished...\n", i );
+ printf( "%6d finished...\r", i );
+
+ clk2 = clock();
pPart = Saig_ManDupCones( pAig, &i, 1 );
+ clkDup += clock() - clk2;
+
+ clk2 = clock();
pTemp = Saig_ManDupIsoCanonical( pPart, 0 );
+ clkIso += clock() - clk2;
+
+ clk2 = clock();
vStr = Ioa_WriteAigerIntoMemoryStr( pTemp );
+ clkAig += clock() - clk2;
+
Vec_PtrPush( vBuffers, vStr );
Aig_ManStop( pTemp );
Aig_ManStop( pPart );
@@ -446,7 +457,11 @@ Aig_Man_t * Iso_ManFilterPos( Aig_Man_t * pAig, int fVerbose )
}
// s_Counter = 0;
if ( fVerbose )
- Abc_PrintTime( 1, "Isomorph time", clock() - clk );
+ {
+ Abc_PrintTime( 1, "Duplicate time", clkDup );
+ Abc_PrintTime( 1, "Isomorph time", clkIso );
+ Abc_PrintTime( 1, "AIGER time", clkAig );
+ }
// sort the infos
clk = clock();
@@ -471,7 +486,7 @@ Aig_Man_t * Iso_ManFilterPos( Aig_Man_t * pAig, int fVerbose )
Vec_VecFree( (Vec_Vec_t *)vBuffers );
if ( fVerbose )
- Abc_PrintTime( 1, "Sorting time", clock() - clk );
+ Abc_PrintTime( 1, "Sorting time", clock() - clk );
// Abc_PrintTime( 1, "Traversal time", time_Trav );
// report the results