diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2016-05-19 23:34:20 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2016-05-19 23:34:20 -0700 |
commit | c6a290ee971481d7f8792a96772deb77b6885206 (patch) | |
tree | 29e1a8b90036bebfd3d60779b1cd191083902496 /src/opt/fxch | |
parent | 2ded89cca5cd0e899d5549476e6774cf7264132d (diff) | |
parent | fe6bb87e541be3d0f7dae29fd1dfdfa7b1341575 (diff) | |
download | abc-c6a290ee971481d7f8792a96772deb77b6885206.tar.gz abc-c6a290ee971481d7f8792a96772deb77b6885206.tar.bz2 abc-c6a290ee971481d7f8792a96772deb77b6885206.zip |
Merged in boschmitt/abc (pull request #26)
Fix the problem of not identifying divisors when its originating cubes had only 2 literals.
Diffstat (limited to 'src/opt/fxch')
-rw-r--r-- | src/opt/fxch/FxchMan.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/opt/fxch/FxchMan.c b/src/opt/fxch/FxchMan.c index 4fcd8e51..a54e6c9a 100644 --- a/src/opt/fxch/FxchMan.c +++ b/src/opt/fxch/FxchMan.c @@ -120,7 +120,7 @@ static inline void Fxch_ManDivDoubleCube( Fxch_Man_t* pFxchMan, iCube, iLit0, 0, (char)fAdd, (char)fUpdate ); - if ( Vec_IntSize( vCube ) > 3 ) + if ( Vec_IntSize( vCube ) >= 3 ) { int Lit1, iLit1; @@ -266,7 +266,7 @@ void Fxch_ManSCHashTablesInit( Fxch_Man_t* pFxchMan ) Vec_WecForEachLevel( vCubes, vCube, iCube ) { int nLits = Vec_IntSize( vCube ) - 1, - nSubCubes = nLits == 2? nLits : ( nLits * nLits + nLits ) / 2; + nSubCubes = nLits <= 2? nLits + 1: ( nLits * nLits + nLits ) / 2; Vec_IntPush( vCubeLinks, ( nTotalHashed + 1 ) ); nTotalHashed += nSubCubes + 1; |