From f93fbc230389f0842d77eec639e225ba57589821 Mon Sep 17 00:00:00 2001 From: Bruno Schmitt Date: Thu, 19 May 2016 22:10:30 -0300 Subject: Fix the problem of not identifying divisors when its originating cubes had only 2 literals. With this change, 'empty' sub-cubes (sub-cubes with an ID equal to zero) are inserted in the 0th bin of the hash table. --- src/opt/fxch/FxchMan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/opt') 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; -- cgit v1.2.3