diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2011-12-10 14:06:01 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2011-12-10 14:06:01 -0800 |
commit | 871171ffa42fe24c27831f05227fb9adfc512448 (patch) | |
tree | 8e9b21217fa52761edb74fc969a5f741c3279ba3 /src/aig/cnf | |
parent | 6c766b4f1a18794b38c81a7c2f82f692cf6a9e37 (diff) | |
download | abc-871171ffa42fe24c27831f05227fb9adfc512448.tar.gz abc-871171ffa42fe24c27831f05227fb9adfc512448.tar.bz2 abc-871171ffa42fe24c27831f05227fb9adfc512448.zip |
Implemented rollback in the main SAT solver and updated PDR to use it (saves about 5% of runtime).
Diffstat (limited to 'src/aig/cnf')
-rw-r--r-- | src/aig/cnf/cnf.h | 1 | ||||
-rw-r--r-- | src/aig/cnf/cnfMan.c | 22 |
2 files changed, 20 insertions, 3 deletions
diff --git a/src/aig/cnf/cnf.h b/src/aig/cnf/cnf.h index beed07bb..129375d2 100644 --- a/src/aig/cnf/cnf.h +++ b/src/aig/cnf/cnf.h @@ -156,6 +156,7 @@ extern void Cnf_DataFlipLastLiteral( Cnf_Dat_t * p ); extern void Cnf_DataPrint( Cnf_Dat_t * p, int fReadable ); extern void Cnf_DataWriteIntoFile( Cnf_Dat_t * p, char * pFileName, int fReadable ); extern void * Cnf_DataWriteIntoSolver( Cnf_Dat_t * p, int nFrames, int fInit ); +extern void * Cnf_DataWriteIntoSolverInt( void * pSat, Cnf_Dat_t * p, int nFrames, int fInit ); extern int Cnf_DataWriteOrClause( void * pSat, Cnf_Dat_t * pCnf ); extern int Cnf_DataWriteAndClauses( void * p, Cnf_Dat_t * pCnf ); extern void Cnf_DataTranformPolarity( Cnf_Dat_t * pCnf, int fTransformPos ); diff --git a/src/aig/cnf/cnfMan.c b/src/aig/cnf/cnfMan.c index 85311229..07c52b05 100644 --- a/src/aig/cnf/cnfMan.c +++ b/src/aig/cnf/cnfMan.c @@ -334,12 +334,12 @@ void Cnf_DataWriteIntoFile( Cnf_Dat_t * p, char * pFileName, int fReadable ) SeeAlso [] ***********************************************************************/ -void * Cnf_DataWriteIntoSolver( Cnf_Dat_t * p, int nFrames, int fInit ) +void * Cnf_DataWriteIntoSolverInt( sat_solver * pSat, Cnf_Dat_t * p, int nFrames, int fInit ) { - sat_solver * pSat; int i, f, status; assert( nFrames > 0 ); - pSat = sat_solver_new(); + assert( pSat ); +// pSat = sat_solver_new(); sat_solver_setnvars( pSat, p->nVars * nFrames ); for ( i = 0; i < p->nClauses; i++ ) { @@ -426,6 +426,22 @@ void * Cnf_DataWriteIntoSolver( Cnf_Dat_t * p, int nFrames, int fInit ) SeeAlso [] ***********************************************************************/ +void * Cnf_DataWriteIntoSolver( Cnf_Dat_t * p, int nFrames, int fInit ) +{ + return Cnf_DataWriteIntoSolverInt( sat_solver_new(), p, nFrames, fInit ); +} + +/**Function************************************************************* + + Synopsis [Writes CNF into a file.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ void * Cnf_DataWriteIntoSolver2( Cnf_Dat_t * p, int nFrames, int fInit ) { sat_solver2 * pSat; |