diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-02-12 15:45:07 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-02-12 15:45:07 -0800 |
commit | 9f331ae915e5f6c2ef0fb7b8ef9f109ea5d96f87 (patch) | |
tree | 5fe980d4d55fd73bb63a667aa7f8dd0269884096 | |
parent | d9edb7e549c2d4b77026d2fba71b1883d1ba378b (diff) | |
download | abc-9f331ae915e5f6c2ef0fb7b8ef9f109ea5d96f87.tar.gz abc-9f331ae915e5f6c2ef0fb7b8ef9f109ea5d96f87.tar.bz2 abc-9f331ae915e5f6c2ef0fb7b8ef9f109ea5d96f87.zip |
Isomorphism checking code.
-rw-r--r-- | src/aig/saig/saigIso.c | 21 |
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 |