m114p.h 2.01 KB
Newer Older
Alan Mishchenko committed
1 2
// C-language header for MiniSat 1.14p

3 4
#ifndef ABC__sat__psat__m114p_h
#define ABC__sat__psat__m114p_h
Alan Mishchenko committed
5

6

Alan Mishchenko committed
7 8
#include "m114p_types.h"

9 10 11
ABC_NAMESPACE_HEADER_START


Alan Mishchenko committed
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
// SAT solver APIs
extern M114p_Solver_t M114p_SolverNew( int fRecordProof );
extern void           M114p_SolverDelete( M114p_Solver_t s );
extern void           M114p_SolverPrintStats( M114p_Solver_t s, double Time );
extern void           M114p_SolverSetVarNum( M114p_Solver_t s, int nVars );
extern int            M114p_SolverAddClause( M114p_Solver_t s, lit* begin, lit* end );
extern int            M114p_SolverSimplify( M114p_Solver_t s );
extern int            M114p_SolverSolve( M114p_Solver_t s, lit* begin, lit* end, int nConfLimit );
extern int            M114p_SolverGetConflictNum( M114p_Solver_t s );

// proof status APIs
extern int            M114p_SolverProofIsReady( M114p_Solver_t s );
extern void           M114p_SolverProofSave( M114p_Solver_t s, char * pFileName );
extern int            M114p_SolverProofClauseNum( M114p_Solver_t s );

// proof traversal APIs
extern int            M114p_SolverGetFirstRoot( M114p_Solver_t s, int ** ppLits );
extern int            M114p_SolverGetNextRoot( M114p_Solver_t s, int ** ppLits );
extern int            M114p_SolverGetFirstChain( M114p_Solver_t s, int ** ppClauses, int ** ppVars );
extern int            M114p_SolverGetNextChain( M114p_Solver_t s, int ** ppClauses, int ** ppVars );

// iterator over the root clauses (should be called first)
#define M114p_SolverForEachRoot( s, ppLits, nLits, i )                           \
    for ( i = 0, nLits = M114p_SolverGetFirstRoot(s, ppLits); nLits;             \
          i++, nLits = M114p_SolverGetNextRoot(s, ppLits) )

// iterator over the learned clauses (should be called after iterating over roots)
#define M114p_SolverForEachChain( s, ppClauses, ppVars, nVars, i )               \
    for ( i = 0, nVars = M114p_SolverGetFirstChain(s, ppClauses, ppVars); nVars; \
          i++, nVars = M114p_SolverGetNextChain(s, ppClauses, ppVars) )

43 44 45 46


ABC_NAMESPACE_HEADER_END

Alan Mishchenko committed
47
#endif