diff options
author | Mathias Soeken <mathias.soeken@epfl.ch> | 2016-08-28 13:44:59 +0200 |
---|---|---|
committer | Mathias Soeken <mathias.soeken@epfl.ch> | 2016-08-28 13:44:59 +0200 |
commit | 2d71abd581e5c1572bdc83a15f0b5dbdd1cc0e28 (patch) | |
tree | 8fe75e268b75d4a91040a910cf6b63c06e29d243 /src | |
parent | 610fcb27121bd00ecca74faacb2f53b4f088f201 (diff) | |
download | abc-2d71abd581e5c1572bdc83a15f0b5dbdd1cc0e28.tar.gz abc-2d71abd581e5c1572bdc83a15f0b5dbdd1cc0e28.tar.bz2 abc-2d71abd581e5c1572bdc83a15f0b5dbdd1cc0e28.zip |
Symmetric variables in BMS.
Diffstat (limited to 'src')
-rw-r--r-- | src/base/abci/abcExact.c | 11 |
1 files changed, 7 insertions, 4 deletions
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 ) |