abc-master
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include "misc/util/abc_global.h"
#include "msat.h"
Go to the source code of this file.
Data Structures | |
struct | Msat_SolverStats_t_ |
struct | Msat_SearchParams_t_ |
struct | Msat_Solver_t_ |
struct | Msat_ClauseVec_t_ |
struct | Msat_IntVec_t_ |
Macros | |
#define | MSAT_VAR_UNASSIGNED (-1) |
#define | MSAT_LIT_UNASSIGNED (-2) |
#define | MSAT_ORDER_UNKNOWN (-3) |
#define | L_IND "%-*d" |
#define | L_ind Msat_SolverReadDecisionLevel(p)*3+3,Msat_SolverReadDecisionLevel(p) |
#define | L_LIT "%s%d" |
#define | L_lit(Lit) MSAT_LITSIGN(Lit)?"-":"", MSAT_LIT2VAR(Lit)+1 |
Typedefs | |
typedef typedefABC_NAMESPACE_HEADER_START struct Msat_Clause_t_ | Msat_Clause_t |
INCLUDES ///. More... | |
typedef struct Msat_Queue_t_ | Msat_Queue_t |
typedef struct Msat_Order_t_ | Msat_Order_t |
typedef struct Msat_MmFixed_t_ | Msat_MmFixed_t |
typedef struct Msat_MmFlex_t_ | Msat_MmFlex_t |
typedef struct Msat_MmStep_t_ | Msat_MmStep_t |
typedef int | Msat_Lit_t |
typedef int | Msat_Var_t |
typedef struct Msat_SolverStats_t_ | Msat_SolverStats_t |
typedef struct Msat_SearchParams_t_ | Msat_SearchParams_t |
#define L_ind Msat_SolverReadDecisionLevel(p)*3+3,Msat_SolverReadDecisionLevel(p) |
#define L_lit | ( | Lit | ) | MSAT_LITSIGN(Lit)?"-":"", MSAT_LIT2VAR(Lit)+1 |
typedef typedefABC_NAMESPACE_HEADER_START struct Msat_Clause_t_ Msat_Clause_t |
INCLUDES ///.
CFile****************************************************************
FileName [msatInt.c]
PackageName [A C version of SAT solver MINISAT, originally developed in C++ by Niklas Een and Niklas Sorensson, Chalmers University of Technology, Sweden: http://www.cs.chalmers.se/~een/Satzoo.]
Synopsis [Internal definitions of the solver.]
Author [Alan Mishchenko alanm] i@ee cs.be rkel ey.ed u
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - January 1, 2004.]
Revision [
]PARAMETERS ///STRUCTURE DEFINITIONS ///
typedef int Msat_Lit_t |
typedef struct Msat_MmFixed_t_ Msat_MmFixed_t |
typedef struct Msat_MmFlex_t_ Msat_MmFlex_t |
typedef struct Msat_MmStep_t_ Msat_MmStep_t |
typedef struct Msat_Order_t_ Msat_Order_t |
typedef struct Msat_Queue_t_ Msat_Queue_t |
typedef struct Msat_SearchParams_t_ Msat_SearchParams_t |
typedef struct Msat_SolverStats_t_ Msat_SolverStats_t |
typedef int Msat_Var_t |
void Msat_ClauseCalcReason | ( | Msat_Solver_t * | p, |
Msat_Clause_t * | pC, | ||
Msat_Lit_t | Lit, | ||
Msat_IntVec_t * | vLits_out | ||
) |
Function*************************************************************
Synopsis [Computes reason of conflict in the given clause.]
Description [If the literal is unassigned, finds the reason by complementing literals in the given cluase (pC). If the literal is assigned, makes sure that this literal is the first one in the clause and computes the complement of all other literals in the clause. Returns the reason in the given array (vLits_out). If the clause is learned, bumps its activity.]
SideEffects []
SeeAlso []
Definition at line 418 of file msatClause.c.
unsigned Msat_ClauseComputeTruth | ( | Msat_Solver_t * | p, |
Msat_Clause_t * | pC | ||
) |
int Msat_ClauseCreate | ( | Msat_Solver_t * | p, |
Msat_IntVec_t * | vLits, | ||
int | fLearned, | ||
Msat_Clause_t ** | pClause_out | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Creates a new clause.]
Description [Returns FALSE if top-level conflict detected (must be handled); TRUE otherwise. 'pClause_out' may be set to NULL if clause is already satisfied by the top-level assignment.]
SideEffects []
SeeAlso []
Definition at line 58 of file msatClause.c.
Msat_Clause_t* Msat_ClauseCreateFake | ( | Msat_Solver_t * | p, |
Msat_IntVec_t * | vLits | ||
) |
Msat_Clause_t* Msat_ClauseCreateFakeLit | ( | Msat_Solver_t * | p, |
Msat_Lit_t | Lit | ||
) |
void Msat_ClauseFree | ( | Msat_Solver_t * | p, |
Msat_Clause_t * | pC, | ||
int | fRemoveWatched | ||
) |
Function*************************************************************
Synopsis [Deallocates the clause.]
Description []
SideEffects []
SeeAlso []
Definition at line 223 of file msatClause.c.
int Msat_ClauseIsLocked | ( | Msat_Solver_t * | p, |
Msat_Clause_t * | pC | ||
) |
Function*************************************************************
Synopsis [Checks whether the learned clause is locked.]
Description [The clause may be locked if it is the reason of a recent conflict. Such clause cannot be removed from the database.]
SideEffects []
SeeAlso []
Definition at line 278 of file msatClause.c.
void Msat_ClausePrint | ( | Msat_Clause_t * | pC | ) |
Function*************************************************************
Synopsis [Prints the given clause.]
Description []
SideEffects []
SeeAlso []
Definition at line 468 of file msatClause.c.
void Msat_ClausePrintSymbols | ( | Msat_Clause_t * | pC | ) |
Function*************************************************************
Synopsis [Prints the given clause.]
Description []
SideEffects []
SeeAlso []
Definition at line 515 of file msatClause.c.
int Msat_ClausePropagate | ( | Msat_Clause_t * | pC, |
Msat_Lit_t | Lit, | ||
int * | pAssigns, | ||
Msat_Lit_t * | pLit_out | ||
) |
Function*************************************************************
Synopsis [Propages the assignment.]
Description [The literal that has become true (Lit) is given to this procedure. The array of current variable assignments is given for efficiency. The output literal (pLit_out) can be the second watched literal (if TRUE is returned) or the conflict literal (if FALSE is returned). This messy interface is used to improve performance. This procedure accounts for ~50% of the runtime of the solver.]
SideEffects []
SeeAlso []
Definition at line 335 of file msatClause.c.
float Msat_ClauseReadActivity | ( | Msat_Clause_t * | pC | ) |
Function*************************************************************
Synopsis [Reads the activity of the given clause.]
Description []
SideEffects []
SeeAlso []
Definition at line 295 of file msatClause.c.
int Msat_ClauseReadLearned | ( | Msat_Clause_t * | pC | ) |
Function*************************************************************
Synopsis [Access the data field of the clause.]
Description []
SideEffects []
SeeAlso []
Definition at line 255 of file msatClause.c.
int* Msat_ClauseReadLits | ( | Msat_Clause_t * | pC | ) |
Definition at line 257 of file msatClause.c.
int Msat_ClauseReadMark | ( | Msat_Clause_t * | pC | ) |
Definition at line 258 of file msatClause.c.
int Msat_ClauseReadNum | ( | Msat_Clause_t * | pC | ) |
Definition at line 259 of file msatClause.c.
int Msat_ClauseReadSize | ( | Msat_Clause_t * | pC | ) |
Definition at line 256 of file msatClause.c.
int Msat_ClauseReadTypeA | ( | Msat_Clause_t * | pC | ) |
Definition at line 260 of file msatClause.c.
void Msat_ClauseRemoveWatch | ( | Msat_ClauseVec_t * | vClauses, |
Msat_Clause_t * | pC | ||
) |
Function*************************************************************
Synopsis [Removes the given clause from the watched list.]
Description []
SideEffects []
SeeAlso []
Definition at line 444 of file msatClause.c.
void Msat_ClauseSetMark | ( | Msat_Clause_t * | pC, |
int | fMark | ||
) |
Definition at line 262 of file msatClause.c.
void Msat_ClauseSetNum | ( | Msat_Clause_t * | pC, |
int | Num | ||
) |
Definition at line 263 of file msatClause.c.
void Msat_ClauseSetTypeA | ( | Msat_Clause_t * | pC, |
int | fTypeA | ||
) |
Definition at line 264 of file msatClause.c.
int Msat_ClauseSimplify | ( | Msat_Clause_t * | pC, |
int * | pAssigns | ||
) |
Function*************************************************************
Synopsis [Simplifies the clause.]
Description [Assumes everything has been propagated! (esp. watches in clauses are NOT unsatisfied)]
SideEffects []
SeeAlso []
Definition at line 374 of file msatClause.c.
Msat_ClauseVec_t* Msat_ClauseVecAlloc | ( | int | nCap | ) |
DECLARATIONS ///.
CFile****************************************************************
FileName [msatClauseVec.c]
PackageName [A C version of SAT solver MINISAT, originally developed in C++ by Niklas Een and Niklas Sorensson, Chalmers University of Technology, Sweden: http://www.cs.chalmers.se/~een/Satzoo.]
Synopsis [Procedures working with arrays of SAT clauses.]
Author [Alan Mishchenko alanm] i@ee cs.be rkel ey.ed u
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - January 1, 2004.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Allocates a vector with the given capacity.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file msatClauseVec.c.
void Msat_ClauseVecClear | ( | Msat_ClauseVec_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 153 of file msatClauseVec.c.
void Msat_ClauseVecFree | ( | Msat_ClauseVec_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 68 of file msatClauseVec.c.
void Msat_ClauseVecGrow | ( | Msat_ClauseVec_t * | p, |
int | nCapMin | ||
) |
Function*************************************************************
Synopsis [Resizes the vector to the given capacity.]
Description []
SideEffects []
SeeAlso []
Definition at line 117 of file msatClauseVec.c.
Msat_Clause_t* Msat_ClauseVecPop | ( | Msat_ClauseVec_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 192 of file msatClauseVec.c.
void Msat_ClauseVecPush | ( | Msat_ClauseVec_t * | p, |
Msat_Clause_t * | Entry | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 169 of file msatClauseVec.c.
Msat_Clause_t** Msat_ClauseVecReadArray | ( | Msat_ClauseVec_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 85 of file msatClauseVec.c.
Msat_Clause_t* Msat_ClauseVecReadEntry | ( | Msat_ClauseVec_t * | p, |
int | i | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 225 of file msatClauseVec.c.
int Msat_ClauseVecReadSize | ( | Msat_ClauseVec_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 101 of file msatClauseVec.c.
void Msat_ClauseVecShrink | ( | Msat_ClauseVec_t * | p, |
int | nSizeNew | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 136 of file msatClauseVec.c.
void Msat_ClauseVecWriteEntry | ( | Msat_ClauseVec_t * | p, |
int | i, | ||
Msat_Clause_t * | Entry | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 208 of file msatClauseVec.c.
void Msat_ClauseWriteActivity | ( | Msat_Clause_t * | pC, |
float | Num | ||
) |
Function*************************************************************
Synopsis [Sets the activity of the clause.]
Description []
SideEffects []
SeeAlso []
Definition at line 314 of file msatClause.c.
void Msat_ClauseWriteDimacs | ( | FILE * | pFile, |
Msat_Clause_t * | pC, | ||
int | fIncrement | ||
) |
Function*************************************************************
Synopsis [Writes the given clause in a file in DIMACS format.]
Description []
SideEffects []
SeeAlso []
Definition at line 494 of file msatClause.c.
char* Msat_MmFixedEntryFetch | ( | Msat_MmFixed_t * | p | ) |
void Msat_MmFixedEntryRecycle | ( | Msat_MmFixed_t * | p, |
char * | pEntry | ||
) |
int Msat_MmFixedReadMemUsage | ( | Msat_MmFixed_t * | p | ) |
void Msat_MmFixedRestart | ( | Msat_MmFixed_t * | p | ) |
Msat_MmFixed_t* Msat_MmFixedStart | ( | int | nEntrySize | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Allocates memory pieces of fixed size.]
Description [The size of the chunk is computed as the minimum of 1024 entries and 64K. Can only work with entry size at least 4 byte long.]
SideEffects []
SeeAlso []
Definition at line 93 of file msatMem.c.
void Msat_MmFixedStop | ( | Msat_MmFixed_t * | p, |
int | fVerbose | ||
) |
char* Msat_MmFlexEntryFetch | ( | Msat_MmFlex_t * | p, |
int | nBytes | ||
) |
int Msat_MmFlexReadMemUsage | ( | Msat_MmFlex_t * | p | ) |
Msat_MmFlex_t* Msat_MmFlexStart | ( | ) |
Function*************************************************************
Synopsis [Allocates entries of flexible size.]
Description [Can only work with entry size at least 4 byte long.]
SideEffects []
SeeAlso []
Definition at line 288 of file msatMem.c.
void Msat_MmFlexStop | ( | Msat_MmFlex_t * | p, |
int | fVerbose | ||
) |
char* Msat_MmStepEntryFetch | ( | Msat_MmStep_t * | p, |
int | nBytes | ||
) |
void Msat_MmStepEntryRecycle | ( | Msat_MmStep_t * | p, |
char * | pEntry, | ||
int | nBytes | ||
) |
Function*************************************************************
Synopsis [Recycles the entry.]
Description []
SideEffects []
SeeAlso []
Definition at line 503 of file msatMem.c.
int Msat_MmStepReadMemUsage | ( | Msat_MmStep_t * | p | ) |
Msat_MmStep_t* Msat_MmStepStart | ( | int | nSteps | ) |
Function*************************************************************
Synopsis [Starts the hierarchical memory manager.]
Description [This manager can allocate entries of any size. Iternally they are mapped into the entries with the number of bytes equal to the power of 2. The smallest entry size is 8 bytes. The next one is 16 bytes etc. So, if the user requests 6 bytes, he gets 8 byte entry. If we asks for 25 bytes, he gets 32 byte entry etc. The input parameters "nSteps" says how many fixed memory managers are employed internally. Calling this procedure with nSteps equal to 10 results in 10 hierarchically arranged internal memory managers, which can allocate up to 4096 (1Kb) entries. Requests for larger entries are handed over to malloc() and then ABC_FREE()ed.]
SideEffects []
SeeAlso []
Definition at line 423 of file msatMem.c.
void Msat_MmStepStop | ( | Msat_MmStep_t * | p, |
int | fVerbose | ||
) |
Msat_Order_t* Msat_OrderAlloc | ( | Msat_Solver_t * | pSat | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Allocates the ordering structure.]
Description []
SideEffects []
SeeAlso []
Definition at line 78 of file msatOrderH.c.
int Msat_OrderCheck | ( | Msat_Order_t * | p | ) |
Function*************************************************************
Synopsis [Checks that the J-boundary is okay.]
Description []
SideEffects []
SeeAlso []
Definition at line 147 of file msatOrderH.c.
void Msat_OrderClean | ( | Msat_Order_t * | p, |
Msat_IntVec_t * | vCone | ||
) |
Function*************************************************************
Synopsis [Cleans the ordering structure.]
Description []
SideEffects []
SeeAlso []
Definition at line 120 of file msatOrderH.c.
void Msat_OrderFree | ( | Msat_Order_t * | p | ) |
Function*************************************************************
Synopsis [Frees the ordering structure.]
Description []
SideEffects []
SeeAlso []
Definition at line 163 of file msatOrderH.c.
void Msat_OrderSetBounds | ( | Msat_Order_t * | p, |
int | nVarsMax | ||
) |
Function*************************************************************
Synopsis [Sets the bound of the ordering structure.]
Description [Should be called whenever the SAT solver is resized.]
SideEffects []
SeeAlso []
Definition at line 101 of file msatOrderH.c.
void Msat_OrderUpdate | ( | Msat_Order_t * | p, |
int | Var | ||
) |
Function*************************************************************
Synopsis [Updates the order after a variable changed weight.]
Description []
SideEffects []
SeeAlso []
Definition at line 257 of file msatOrderH.c.
void Msat_OrderVarAssigned | ( | Msat_Order_t * | p, |
int | Var | ||
) |
Function*************************************************************
Synopsis [Updates J-boundary when the variable is assigned.]
Description []
SideEffects []
SeeAlso []
Definition at line 220 of file msatOrderH.c.
int Msat_OrderVarSelect | ( | Msat_Order_t * | p | ) |
Function*************************************************************
Synopsis [Selects the next variable to assign.]
Description []
SideEffects []
SeeAlso []
Definition at line 183 of file msatOrderH.c.
void Msat_OrderVarUnassigned | ( | Msat_Order_t * | p, |
int | Var | ||
) |
Function*************************************************************
Synopsis [Updates the order after a variable is unassigned.]
Description []
SideEffects []
SeeAlso []
Definition at line 235 of file msatOrderH.c.
Msat_Queue_t* Msat_QueueAlloc | ( | int | nVars | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Allocates the variable propagation queue.]
Description []
SideEffects []
SeeAlso []
Definition at line 53 of file msatQueue.c.
void Msat_QueueClear | ( | Msat_Queue_t * | p | ) |
Function*************************************************************
Synopsis [Resets the queue.]
Description []
SideEffects []
SeeAlso []
Definition at line 149 of file msatQueue.c.
int Msat_QueueExtract | ( | Msat_Queue_t * | p | ) |
Function*************************************************************
Synopsis [Extracts an entry from the queue.]
Description []
SideEffects []
SeeAlso []
Definition at line 131 of file msatQueue.c.
void Msat_QueueFree | ( | Msat_Queue_t * | p | ) |
Function*************************************************************
Synopsis [Deallocate the variable propagation queue.]
Description []
SideEffects []
SeeAlso []
Definition at line 74 of file msatQueue.c.
void Msat_QueueInsert | ( | Msat_Queue_t * | p, |
int | Lit | ||
) |
Function*************************************************************
Synopsis [Insert an entry into the queue.]
Description []
SideEffects []
SeeAlso []
Definition at line 107 of file msatQueue.c.
int Msat_QueueReadSize | ( | Msat_Queue_t * | p | ) |
Function*************************************************************
Synopsis [Reads the queue size.]
Description []
SideEffects []
SeeAlso []
Definition at line 91 of file msatQueue.c.
int Msat_SolverAssume | ( | Msat_Solver_t * | p, |
Msat_Lit_t | Lit | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Makes the next assumption (Lit).]
Description [Returns FALSE if immediate conflict.]
SideEffects []
SeeAlso []
Definition at line 51 of file msatSolverSearch.c.
void Msat_SolverCancelUntil | ( | Msat_Solver_t * | p, |
int | Level | ||
) |
Function*************************************************************
Synopsis [Reverts to the state at given level.]
Description []
SideEffects []
SeeAlso []
Definition at line 128 of file msatSolverSearch.c.
void Msat_SolverClaBumpActivity | ( | Msat_Solver_t * | p, |
Msat_Clause_t * | pC | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 105 of file msatActivity.c.
void Msat_SolverClaDecayActivity | ( | Msat_Solver_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 128 of file msatActivity.c.
void Msat_SolverClaRescaleActivity | ( | Msat_Solver_t * | p | ) |
Function*************************************************************
Synopsis [Divide all constraint activities by 1e20.]
Description []
SideEffects []
SeeAlso []
Definition at line 144 of file msatActivity.c.
void Msat_SolverClausesDecrement | ( | Msat_Solver_t * | p | ) |
Definition at line 65 of file msatSolverApi.c.
void Msat_SolverClausesDecrementL | ( | Msat_Solver_t * | p | ) |
Definition at line 67 of file msatSolverApi.c.
void Msat_SolverClausesIncrement | ( | Msat_Solver_t * | p | ) |
Definition at line 64 of file msatSolverApi.c.
void Msat_SolverClausesIncrementL | ( | Msat_Solver_t * | p | ) |
Definition at line 66 of file msatSolverApi.c.
int Msat_SolverEnqueue | ( | Msat_Solver_t * | p, |
Msat_Lit_t | Lit, | ||
Msat_Clause_t * | pC | ||
) |
Function*************************************************************
Synopsis [Enqueues one variable assignment.]
Description [Puts a new fact on the propagation queue and immediately updates the variable value. Should a conflict arise, FALSE is returned. Otherwise returns TRUE.]
SideEffects []
SeeAlso []
Definition at line 173 of file msatSolverSearch.c.
int Msat_SolverIncrementSeenId | ( | Msat_Solver_t * | p | ) |
Definition at line 62 of file msatSolverApi.c.
double Msat_SolverProgressEstimate | ( | Msat_Solver_t * | p | ) |
Function*************************************************************
Synopsis [Returns search-space coverage. Not extremely reliable.]
Description []
SideEffects []
SeeAlso []
Definition at line 88 of file msatSolverCore.c.
Msat_Clause_t* Msat_SolverPropagate | ( | Msat_Solver_t * | p | ) |
Function*************************************************************
Synopsis [Propagates the assignments in the queue.]
Description [Propagates all enqueued facts. If a conflict arises, the conflicting clause is returned, otherwise NULL.]
SideEffects [The propagation queue is empty, even if there was a conflict.]
SeeAlso []
Definition at line 217 of file msatSolverSearch.c.
Msat_Clause_t* Msat_SolverReadClause | ( | Msat_Solver_t * | p, |
int | Num | ||
) |
Function*************************************************************
Synopsis [Reads the clause with the given number.]
Description []
SideEffects []
SeeAlso []
Definition at line 83 of file msatSolverApi.c.
int Msat_SolverReadDecisionLevel | ( | Msat_Solver_t * | p | ) |
Definition at line 50 of file msatSolverApi.c.
int* Msat_SolverReadDecisionLevelArray | ( | Msat_Solver_t * | p | ) |
Definition at line 51 of file msatSolverApi.c.
Msat_ClauseVec_t* Msat_SolverReadLearned | ( | Msat_Solver_t * | p | ) |
Definition at line 54 of file msatSolverApi.c.
Msat_MmStep_t* Msat_SolverReadMem | ( | Msat_Solver_t * | p | ) |
Definition at line 60 of file msatSolverApi.c.
Msat_Clause_t** Msat_SolverReadReasonArray | ( | Msat_Solver_t * | p | ) |
Definition at line 52 of file msatSolverApi.c.
int* Msat_SolverReadSeenArray | ( | Msat_Solver_t * | p | ) |
Definition at line 61 of file msatSolverApi.c.
Msat_Type_t Msat_SolverReadVarValue | ( | Msat_Solver_t * | p, |
Msat_Var_t | Var | ||
) |
Definition at line 53 of file msatSolverApi.c.
Msat_ClauseVec_t** Msat_SolverReadWatchedArray | ( | Msat_Solver_t * | p | ) |
Definition at line 55 of file msatSolverApi.c.
Msat_Type_t Msat_SolverSearch | ( | Msat_Solver_t * | p, |
int | nConfLimit, | ||
int | nLearnedLimit, | ||
int | nBackTrackLimit, | ||
Msat_SearchParams_t * | pPars | ||
) |
Function*************************************************************
Synopsis [The search procedure called between the restarts.]
Description [Search for a satisfying solution as long as the number of conflicts does not exceed the limit (nConfLimit) while keeping the number of learnt clauses below the provided limit (nLearnedLimit). NOTE! Use negative value for nConfLimit or nLearnedLimit to indicate infinity.]
SideEffects []
SeeAlso []
Definition at line 535 of file msatSolverSearch.c.
void Msat_SolverSortDB | ( | Msat_Solver_t * | p | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Msat_SolverSort the learned clauses in the increasing order of activity.]
Description []
SideEffects []
SeeAlso []
Definition at line 61 of file msatSort.c.
void Msat_SolverVarBumpActivity | ( | Msat_Solver_t * | p, |
Msat_Lit_t | Lit | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [msatActivity.c]
PackageName [A C version of SAT solver MINISAT, originally developed in C++ by Niklas Een and Niklas Sorensson, Chalmers University of Technology, Sweden: http://www.cs.chalmers.se/~een/Satzoo.]
Synopsis [Procedures controlling activity of variables and clauses.]
Author [Alan Mishchenko alanm] i@ee cs.be rkel ey.ed u
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - January 1, 2004.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file msatActivity.c.
void Msat_SolverVarDecayActivity | ( | Msat_Solver_t * | p | ) |
GLOBAL VARIABLES ///.
MACRO DEFINITIONS ///FUNCTION DECLARATIONS ///
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 69 of file msatActivity.c.
void Msat_SolverVarRescaleActivity | ( | Msat_Solver_t * | p | ) |
Function*************************************************************
Synopsis [Divide all variable activities by 1e100.]
Description []
SideEffects []
SeeAlso []
Definition at line 86 of file msatActivity.c.