diff options
| author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-10-03 16:54:10 -0700 | 
|---|---|---|
| committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-10-03 16:54:10 -0700 | 
| commit | 6d6118e2aa1dd980f2f78f24b46e247a6a7be7b9 (patch) | |
| tree | b1defd38a57950d3dcb4e4276c7838fa7320e398 /src | |
| parent | c59121f4e0bc2d0f3eed3f695f1c086ec6feb58d (diff) | |
| download | abc-6d6118e2aa1dd980f2f78f24b46e247a6a7be7b9.tar.gz abc-6d6118e2aa1dd980f2f78f24b46e247a6a7be7b9.tar.bz2 abc-6d6118e2aa1dd980f2f78f24b46e247a6a7be7b9.zip | |
Bug fix and performance improvement in &iso.
Diffstat (limited to 'src')
| -rw-r--r-- | src/aig/gia/giaIso2.c | 15 | 
1 files changed, 8 insertions, 7 deletions
| diff --git a/src/aig/gia/giaIso2.c b/src/aig/gia/giaIso2.c index e9d9d883..e1ea7690 100644 --- a/src/aig/gia/giaIso2.c +++ b/src/aig/gia/giaIso2.c @@ -575,12 +575,13 @@ Vec_Wec_t * Gia_Iso2ManCheckIsoClassesSkip( Gia_Man_t * p, Vec_Wec_t * vEquivs )      Vec_Int_t * vMap0 = Vec_IntStart( Gia_ManObjNum(p) );      Vec_Int_t * vMap1 = Vec_IntStart( Gia_ManObjNum(p) );      Vec_Int_t * vClass, * vClass2; -    int i, k, Entry; +    int i, k, Entry, Counter = 0;      vEquivs2 = Vec_WecAlloc( 2 * Vec_WecSize(vEquivs) );      Vec_WecForEachLevel( vEquivs, vClass, i )      { -        if ( i % 100 == 0 ) -            printf( "%8d finished...\r", i ); +        if ( i % 50 == 0 ) +            printf( "Finished %8d outputs (out of %8d)...\r", Counter, Gia_ManPoNum(p) ), fflush(stdout); +        Counter += Vec_IntSize(vClass);          if ( Vec_IntSize(vClass) < 2 || Gia_Iso2ManCheckIsoClassOneSkip(p, vClass, vRoots, vVec0, vVec1, vMap0, vMap1) )          {              vClass2 = Vec_WecPushLevel( vEquivs2 ); @@ -633,16 +634,16 @@ Vec_Wec_t * Gia_Iso2ManCheckIsoClasses( Gia_Man_t * p, Vec_Wec_t * vEquivs )      Vec_Int_t * vMap0 = Vec_IntStart( Gia_ManObjNum(p) );      Vec_Int_t * vMap1 = Vec_IntStart( Gia_ManObjNum(p) );      Vec_Int_t * vClass, * vClass2, * vNewClass; -    int i; +    int i, Counter = 0;      vNewClass = Vec_IntAlloc( 100 );      vEquivs2 = Vec_WecAlloc( 2 * Vec_WecSize(vEquivs) );      Vec_WecForEachLevel( vEquivs, vClass, i )      { -        if ( i % 100 == 0 ) -            printf( "%8d finished...\r", i ); +        if ( i % 50 == 0 ) +            printf( "Finished %8d outputs (out of %8d)...\r", Counter, Gia_ManPoNum(p) ), fflush(stdout);          // split this class          Gia_Iso2ManCheckIsoClassOne( p, vClass, vRoots, vVec0, vVec1, vMap0, vMap1, vNewClass ); -        assert( Vec_IntSize(vClass) > 0 ); +        Counter += Vec_IntSize(vClass);          // add remaining class          vClass2 = Vec_WecPushLevel( vEquivs2 );          *vClass2 = *vClass; | 
