diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2020-07-16 20:33:03 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2020-07-16 20:33:03 -0700 |
commit | 22d9b1d38b27a6a4c4f4b3b8f489704eed943351 (patch) | |
tree | 0ea1d88db0bf7f79663ca6742342b046bdeb51d7 /src/aig/gia/giaUtil.c | |
parent | ba063a1b557a548cbedd963f6bcdf176df14ee8e (diff) | |
download | abc-22d9b1d38b27a6a4c4f4b3b8f489704eed943351.tar.gz abc-22d9b1d38b27a6a4c4f4b3b8f489704eed943351.tar.bz2 abc-22d9b1d38b27a6a4c4f4b3b8f489704eed943351.zip |
Experiment with structural similarity.
Diffstat (limited to 'src/aig/gia/giaUtil.c')
-rw-r--r-- | src/aig/gia/giaUtil.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/aig/gia/giaUtil.c b/src/aig/gia/giaUtil.c index 007faeca..2e1830c5 100644 --- a/src/aig/gia/giaUtil.c +++ b/src/aig/gia/giaUtil.c @@ -522,6 +522,28 @@ int Gia_ManLevelNum( Gia_Man_t * p ) } return p->nLevels; } +int Gia_ManLevelRNum( Gia_Man_t * p ) +{ + Gia_Obj_t * pObj; + int i; + Gia_ManCleanLevels( p, Gia_ManObjNum(p) ); + p->nLevels = 0; + Gia_ManForEachObjReverse( p, pObj, i ) + { + if ( !p->fGiaSimple && Gia_ObjIsBuf(pObj) ) + Gia_ObjUpdateLevelId( p, Gia_ObjFaninId0(pObj, i), Gia_ObjLevel(p, pObj) ); + else if ( Gia_ObjIsAnd(pObj) ) + { + Gia_ObjUpdateLevelId( p, Gia_ObjFaninId0(pObj, i), 1+Gia_ObjLevel(p, pObj) ); + Gia_ObjUpdateLevelId( p, Gia_ObjFaninId1(pObj, i), 1+Gia_ObjLevel(p, pObj) ); + } + else if ( Gia_ObjIsCo(pObj) ) + Gia_ObjUpdateLevelId( p, Gia_ObjFaninId0(pObj, i), 1 ); + else + p->nLevels = Abc_MaxInt( p->nLevels, Gia_ObjLevel(p, pObj) ); + } + return p->nLevels; +} float Gia_ManLevelAve( Gia_Man_t * p ) { Gia_Obj_t * pObj; |