Commit fce2b16a by Alan Mishchenko

Re-introducing floating-point activity in the SAT solver.

parent f2d096c9
...@@ -26157,7 +26157,7 @@ int Abc_CommandPdr( Abc_Frame_t * pAbc, int argc, char ** argv ) ...@@ -26157,7 +26157,7 @@ int Abc_CommandPdr( Abc_Frame_t * pAbc, int argc, char ** argv )
int c; int c;
Pdr_ManSetDefaultParams( pPars ); Pdr_ManSetDefaultParams( pPars );
Extra_UtilGetoptReset(); Extra_UtilGetoptReset();
while ( ( c = Extra_UtilGetopt( argc, argv, "MFCDRTHGSaxrmuyfsipdegoncvwzh" ) ) != EOF ) while ( ( c = Extra_UtilGetopt( argc, argv, "MFCDRTHGSaxrmuyfsipdegonctvwzh" ) ) != EOF )
{ {
switch ( c ) switch ( c )
{ {
...@@ -26308,6 +26308,9 @@ int Abc_CommandPdr( Abc_Frame_t * pAbc, int argc, char ** argv ) ...@@ -26308,6 +26308,9 @@ int Abc_CommandPdr( Abc_Frame_t * pAbc, int argc, char ** argv )
case 'c': case 'c':
pPars->fCtgs ^= 1; pPars->fCtgs ^= 1;
break; break;
case 't':
pPars->fUseAbs ^= 1;
break;
case 'v': case 'v':
pPars->fVerbose ^= 1; pPars->fVerbose ^= 1;
break; break;
...@@ -26349,7 +26352,7 @@ int Abc_CommandPdr( Abc_Frame_t * pAbc, int argc, char ** argv ) ...@@ -26349,7 +26352,7 @@ int Abc_CommandPdr( Abc_Frame_t * pAbc, int argc, char ** argv )
return 0; return 0;
usage: usage:
Abc_Print( -2, "usage: pdr [-MFCDRTHGS <num>] [-axrmuyfsipdegoncvwzh]\n" ); Abc_Print( -2, "usage: pdr [-MFCDRTHGS <num>] [-axrmuyfsipdegonctvwzh]\n" );
Abc_Print( -2, "\t model checking using property directed reachability (aka IC3)\n" ); Abc_Print( -2, "\t model checking using property directed reachability (aka IC3)\n" );
Abc_Print( -2, "\t pioneered by Aaron R. Bradley (http://theory.stanford.edu/~arbrad/)\n" ); Abc_Print( -2, "\t pioneered by Aaron R. Bradley (http://theory.stanford.edu/~arbrad/)\n" );
Abc_Print( -2, "\t with improvements by Niklas Een (http://een.se/niklas/)\n" ); Abc_Print( -2, "\t with improvements by Niklas Een (http://een.se/niklas/)\n" );
...@@ -26378,6 +26381,7 @@ usage: ...@@ -26378,6 +26381,7 @@ usage:
Abc_Print( -2, "\t-o : toggle using property output as inductive hypothesis [default = %s]\n", pPars->fUsePropOut? "yes": "no" ); Abc_Print( -2, "\t-o : toggle using property output as inductive hypothesis [default = %s]\n", pPars->fUsePropOut? "yes": "no" );
Abc_Print( -2, "\t-n : * toggle skipping \'down\' in generalization [default = %s]\n", pPars->fSkipDown? "yes": "no" ); Abc_Print( -2, "\t-n : * toggle skipping \'down\' in generalization [default = %s]\n", pPars->fSkipDown? "yes": "no" );
Abc_Print( -2, "\t-c : * toggle handling CTGs in \'down\' [default = %s]\n", pPars->fCtgs? "yes": "no" ); Abc_Print( -2, "\t-c : * toggle handling CTGs in \'down\' [default = %s]\n", pPars->fCtgs? "yes": "no" );
Abc_Print( -2, "\t-t : toggle using abstraction [default = %s]\n", pPars->fUseAbs? "yes": "no" );
Abc_Print( -2, "\t-v : toggle printing optimization summary [default = %s]\n", pPars->fVerbose? "yes": "no" ); Abc_Print( -2, "\t-v : toggle printing optimization summary [default = %s]\n", pPars->fVerbose? "yes": "no" );
Abc_Print( -2, "\t-w : toggle printing detailed stats default = %s]\n", pPars->fVeryVerbose? "yes": "no" ); Abc_Print( -2, "\t-w : toggle printing detailed stats default = %s]\n", pPars->fVeryVerbose? "yes": "no" );
Abc_Print( -2, "\t-z : toggle suppressing report about solved outputs [default = %s]\n", pPars->fNotVerbose? "yes": "no" ); Abc_Print( -2, "\t-z : toggle suppressing report about solved outputs [default = %s]\n", pPars->fNotVerbose? "yes": "no" );
...@@ -63,6 +63,7 @@ struct Pdr_Par_t_ ...@@ -63,6 +63,7 @@ struct Pdr_Par_t_
int fSkipGeneral; // skips expensive generalization step int fSkipGeneral; // skips expensive generalization step
int fSkipDown; // skips the application of down int fSkipDown; // skips the application of down
int fCtgs; // handle CTGs in down int fCtgs; // handle CTGs in down
int fUseAbs; // use abstraction
int fVerbose; // verbose output` int fVerbose; // verbose output`
int fVeryVerbose; // very verbose output int fVeryVerbose; // very verbose output
int fNotVerbose; // not printing line by line progress int fNotVerbose; // not printing line by line progress
......
...@@ -90,6 +90,7 @@ struct Pdr_Man_t_ ...@@ -90,6 +90,7 @@ struct Pdr_Man_t_
int * pOrder; // ordering of the lits int * pOrder; // ordering of the lits
Vec_Int_t * vActVars; // the counter of activation variables Vec_Int_t * vActVars; // the counter of activation variables
int iUseFrame; // the first used frame int iUseFrame; // the first used frame
Vec_Int_t * vAbs; // abstraction (mapping abstracted flop ID into its PPIs number)
// terminary simulation // terminary simulation
Txs_Man_t * pTxs; Txs_Man_t * pTxs;
// internal use // internal use
......
...@@ -286,6 +286,8 @@ Pdr_Man_t * Pdr_ManStart( Aig_Man_t * pAig, Pdr_Par_t * pPars, Vec_Int_t * vPrio ...@@ -286,6 +286,8 @@ Pdr_Man_t * Pdr_ManStart( Aig_Man_t * pAig, Pdr_Par_t * pPars, Vec_Int_t * vPrio
p->vCi2Rem = Vec_IntAlloc( 100 ); // CIs to be removed p->vCi2Rem = Vec_IntAlloc( 100 ); // CIs to be removed
p->vRes = Vec_IntAlloc( 100 ); // final result p->vRes = Vec_IntAlloc( 100 ); // final result
p->pCnfMan = Cnf_ManStart(); p->pCnfMan = Cnf_ManStart();
if ( p->vAbs )
p->vAbs = Vec_IntStart( Aig_ManRegNum(pAig) );
// ternary simulation // ternary simulation
p->pTxs = pPars->fNewXSim ? Txs_ManStart( p, pAig, p->vPrio ) : NULL; p->pTxs = pPars->fNewXSim ? Txs_ManStart( p, pAig, p->vPrio ) : NULL;
// additional AIG data-members // additional AIG data-members
...@@ -368,6 +370,7 @@ void Pdr_ManStop( Pdr_Man_t * p ) ...@@ -368,6 +370,7 @@ void Pdr_ManStop( Pdr_Man_t * p )
Vec_WecFreeP( &p->vVLits ); Vec_WecFreeP( &p->vVLits );
// CNF manager // CNF manager
Cnf_ManStop( p->pCnfMan ); Cnf_ManStop( p->pCnfMan );
Vec_IntFreeP( &p->vAbs );
// terminary simulation // terminary simulation
if ( p->pPars->fNewXSim ) if ( p->pPars->fNewXSim )
Txs_ManStop( p->pTxs ); Txs_ManStop( p->pTxs );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment