From 2d71abd581e5c1572bdc83a15f0b5dbdd1cc0e28 Mon Sep 17 00:00:00 2001 From: Mathias Soeken Date: Sun, 28 Aug 2016 13:44:59 +0200 Subject: Symmetric variables in BMS. --- src/base/abci/abcExact.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/base/abci/abcExact.c') diff --git a/src/base/abci/abcExact.c b/src/base/abci/abcExact.c index 3f65af9e..f328d9b3 100644 --- a/src/base/abci/abcExact.c +++ b/src/base/abci/abcExact.c @@ -1204,12 +1204,13 @@ static int Ses_ManCreateClauses( Ses_Man_t * pSes ) } /* EXTRA clauses: symmetric variables */ - if ( pSes->nMaxDepth == -1 && pSes->nSpecFunc == 1 ) /* only check if there is one output function */ + if ( /*pSes->nMaxDepth == -1 &&*/ pSes->nSpecFunc == 1 ) /* only check if there is one output function */ for ( q = 1; q < pSes->nSpecVars; ++q ) for ( p = 0; p < q; ++p ) - if ( Extra_TruthVarsSymm( (unsigned*)( pSes->pSpec ), pSes->nSpecVars, p, q ) ) + if ( Extra_TruthVarsSymm( (unsigned*)( pSes->pSpec ), pSes->nSpecVars, p, q ) && + ( !pSes->pArrTimeProfile || ( pSes->pArrTimeProfile[p] == pSes->pArrTimeProfile[q] ) ) ) { - if ( pSes->fVeryVerbose ) + if ( pSes->fSatVerbose ) printf( "variables %d and %d are symmetric\n", p, q ); for ( i = 0; i < pSes->nGates; ++i ) for ( j = 0; j < q; ++j ) @@ -2033,6 +2034,8 @@ Abc_Ntk_t * Abc_NtkFindExact( word * pTruth, int nVars, int nFunc, int nMaxDepth pSes = Ses_ManAlloc( pTruth, nVars, nFunc, nMaxDepth, pArrTimeProfile, 0, nBTLimit, fVerbose ); pSes->nStartGates = nStartGates; + pSes->fReasonVerbose = 1; + pSes->fSatVerbose = 1; if ( fVerbose ) Ses_ManPrintFuncs( pSes ); @@ -2069,7 +2072,7 @@ Gia_Man_t * Gia_ManFindExact( word * pTruth, int nVars, int nFunc, int nMaxDepth pSes = Ses_ManAlloc( pTruth, nVars, nFunc, nMaxDepth, pArrTimeProfile, 1, nBTLimit, fVerbose ); pSes->nStartGates = nStartGates; pSes->fVeryVerbose = 1; - pSes->fExtractVerbose = 1; + pSes->fExtractVerbose = 0; pSes->fSatVerbose = 0; pSes->fReasonVerbose = 1; if ( fVerbose ) -- cgit v1.2.3