mirror of https://github.com/YosysHQ/abc.git
77 lines
3.1 KiB
C
77 lines
3.1 KiB
C
/**CFile****************************************************************
|
|
|
|
FileName [cadicalSolver.h]
|
|
|
|
SystemName [ABC: Logic synthesis and verification system.]
|
|
|
|
PackageName [SAT solver CaDiCaL by Armin Biere, University of Freiburg]
|
|
|
|
Synopsis [https://github.com/arminbiere/cadical]
|
|
|
|
Author [Integrated into ABC by Yukio Miyasaka]
|
|
|
|
Affiliation [UC Berkeley]
|
|
|
|
Date [Ver. 1.0. Started - June 20, 2005.]
|
|
|
|
Revision [$Id: cadicalSolver.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
|
|
|
|
***********************************************************************/
|
|
|
|
#ifndef ABC_SAT_CADICAL_SOLVER_H_
|
|
#define ABC_SAT_CADICAL_SOLVER_H_
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// INCLUDES ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "aig/gia/gia.h"
|
|
#include "sat/cnf/cnf.h"
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// PARAMETERS ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
ABC_NAMESPACE_HEADER_START
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// BASIC TYPES ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
typedef struct cadical_solver_ cadical_solver;
|
|
struct cadical_solver_
|
|
{
|
|
void* p;
|
|
int nVars;
|
|
Vec_Int_t* vAssumptions;
|
|
Vec_Int_t* vCore;
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// MACRO DEFINITIONS ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// FUNCTION DECLARATIONS ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
extern cadical_solver* cadical_solver_new(void);
|
|
extern void cadical_solver_delete(cadical_solver* s);
|
|
extern int cadical_solver_addclause(cadical_solver* s, int* begin, int* end);
|
|
extern int cadical_solver_solve(cadical_solver* s, int* begin, int* end, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, ABC_INT64_T nConfLimitGlobal, ABC_INT64_T nInsLimitGlobal);
|
|
extern int cadical_solver_final(cadical_solver* s, int** ppArray);
|
|
extern int cadical_solver_nvars(cadical_solver* s);
|
|
extern int cadical_solver_addvar(cadical_solver* s);
|
|
extern void cadical_solver_setnvars(cadical_solver* s,int n);
|
|
extern int cadical_solver_get_var_value(cadical_solver* s, int v);
|
|
extern Vec_Int_t * cadical_solve_cnf( Cnf_Dat_t * pCnf, char * pArgs, int nConfs, int nTimeLimit, int fSat, int fUnsat, int fPrintCex, int fVerbose );
|
|
|
|
ABC_NAMESPACE_HEADER_END
|
|
|
|
#endif
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// END OF FILE ///
|
|
////////////////////////////////////////////////////////////////////////
|