33static void Sat_SolverClauseWriteDimacs( FILE * pFile,
clause * pC,
int fIncrement );
50void Sat_SolverClauseWriteDimacs( FILE * pFile,
clause * pC,
int fIncrement )
53 for ( i = 0; i < (int)pC->
size; i++ )
54 fprintf( pFile,
"%s%d ", (lit_sign(pC->
lits[i])?
"-":
""), lit_var(pC->
lits[i]) + (fIncrement>0) );
56 fprintf( pFile,
"0" );
57 fprintf( pFile,
"\n" );
83 for ( i = 0; i <
p->size; i++ )
84 if (
p->levels[i] == 0 &&
p->assigns[i] != 3 )
88 pFile = pFileName ? fopen( pFileName,
"wb" ) : stdout;
91 printf(
"Sat_SolverWriteDimacs(): Cannot open the ouput file.\n" );
95 fprintf( pFile,
"p cnf %d %d\n",
p->size, Sat_MemEntryNum(&
p->Mem, 0)-1+Sat_MemEntryNum(&
p->Mem, 1)+nUnits+(
int)(assumpEnd-assumpBegin) );
99 Sat_SolverClauseWriteDimacs( pFile, c, incrementVars );
106 for ( i = 0; i <
p->size; i++ )
107 if (
p->levels[i] == 0 &&
p->assigns[i] != 3 )
108 fprintf( pFile,
"%s%d%s\n",
109 (
p->assigns[i] == 1)?
"-":
"",
110 i + (
int)(incrementVars>0),
111 (incrementVars) ?
" 0" :
"");
115 for (; assumpBegin != assumpEnd; assumpBegin++) {
116 fprintf( pFile,
"%s%d%s\n",
117 lit_sign(*assumpBegin)?
"-":
"",
118 lit_var(*assumpBegin) + (
int)(incrementVars>0),
119 (incrementVars) ?
" 0" :
"");
123 fprintf( pFile,
"\n" );
124 if ( pFileName ) fclose( pFile );
135 for ( i = 0; i <
p->size; i++ )
136 if (
p->levels[i] == 0 &&
p->assigns[i] != 3 )
140 pFile = fopen( pFileName,
"wb" );
143 printf(
"Sat_SolverWriteDimacs(): Cannot open the ouput file.\n" );
147 fprintf( pFile,
"p cnf %d %d\n",
p->size, Sat_MemEntryNum(&
p->Mem, 0)-1+Sat_MemEntryNum(&
p->Mem, 1)+nUnits+(
int)(assumpEnd-assumpBegin) );
151 Sat_SolverClauseWriteDimacs( pFile, c, incrementVars );
158 for ( i = 0; i <
p->size; i++ )
159 if (
p->levels[i] == 0 &&
p->assigns[i] != 3 )
160 fprintf( pFile,
"%s%d%s\n",
161 (
p->assigns[i] == 1)?
"-":
"",
162 i + (
int)(incrementVars>0),
163 (incrementVars) ?
" 0" :
"");
167 for (; assumpBegin != assumpEnd; assumpBegin++) {
168 fprintf( pFile,
"%s%d%s\n",
169 lit_sign(*assumpBegin)?
"-":
"",
170 lit_var(*assumpBegin) + (
int)(incrementVars>0),
171 (incrementVars) ?
" 0" :
"");
175 fprintf( pFile,
"\n" );
191static inline double Sat_Wrd2Dbl(
word w ) {
return (
double)(unsigned)(w&0x3FFFFFFF) + (double)(1<<30)*(unsigned)(w>>30); }
195 printf(
"starts : %16.0f\n", Sat_Wrd2Dbl(
p->stats.starts) );
196 printf(
"conflicts : %16.0f\n", Sat_Wrd2Dbl(
p->stats.conflicts) );
197 printf(
"decisions : %16.0f\n", Sat_Wrd2Dbl(
p->stats.decisions) );
198 printf(
"propagations : %16.0f\n", Sat_Wrd2Dbl(
p->stats.propagations) );
247 Mem += (
sizeof(s->
activity[0]) == 4) ?
sizeof(
unsigned) :
sizeof(double);
248 Mem += 2 *
sizeof(
veci);
275 for ( i = 0; i < nVars; i++ )
276 pModel[i] = sat_solver_var_value(
p, pVars[i]);
296 for ( i = 0; i < nVars; i++ )
297 pModel[i] = sat_solver2_var_value(
p, pVars[i]);
#define ABC_CALLOC(type, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
unsigned __int64 word
DECLARATIONS ///.
#define Sat_MemForEachClause2(p, c, i, k)
#define Sat_MemForEachClause(p, c, i, k)
struct Sat_Mem_t_ Sat_Mem_t
struct sat_solver2_t sat_solver2
int * Sat_SolverGetModel(sat_solver *p, int *pVars, int nVars)
void Sat_SolverDoubleClauses(sat_solver *p, int iVar)
void Sat_SolverWriteDimacs(sat_solver *p, char *pFileName, lit *assumpBegin, lit *assumpEnd, int incrementVars)
void Sat_SolverPrintStats(FILE *pFile, sat_solver *p)
int Sat_Solver2GetVarMem(sat_solver2 *s)
int * Sat_Solver2GetModel(sat_solver2 *p, int *pVars, int nVars)
void Sat_Solver2PrintStats(FILE *pFile, sat_solver2 *s)
void Sat_Solver2WriteDimacs(sat_solver2 *p, char *pFileName, lit *assumpBegin, lit *assumpEnd, int incrementVars)