20 #ifndef CLASP_CLASP_FACADE_H_INCLUDED
21 #define CLASP_CLASP_FACADE_H_INCLUDED
24 #pragma warning (disable : 4200) // nonstandard extension used : zero-sized array
28 #if !defined(CLASP_VERSION)
29 #define CLASP_VERSION "3.0.4-p8"
31 #if !defined(CLASP_LEGAL)
33 "Copyright (C) Benjamin Kaufmann\n"\
34 "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"\
35 "clasp is free software: you are free to change and redistribute it.\n"\
36 "There is NO WARRANTY, to the extent permitted by law."
39 #if !defined(WITH_THREADS)
40 #error Invalid thread configuration - use WITH_THREADS=0 for single-threaded or WITH_THREADS=1 for multi-threaded version of libclasp!
45 namespace Clasp {
typedef Clasp::mt::ParallelSolveOptions
SolveOptions; }
102 operator double()
const;
124 bool sat()
const {
return *
this ==
SAT; }
131 operator double()
const {
return (
double(
signal)*256.0) +
flags; }
229 typedef StepReady Ready;
230 explicit AsyncResult(SolveImpl&
x);
232 AsyncResult(
const AsyncResult&);
233 AsyncResult& operator=(AsyncResult temp) {
swap(*
this, temp);
return *
this; }
241 bool waitFor(
double sec)
const;
249 bool ready(Result& r)
const;
251 int interrupted()
const;
255 bool running()
const;
267 const Model& model()
const;
289 AsyncResult startSolveAsync();
310 const char*
getKeys(
const char* path)
const;
320 void discardProblem();
321 void startStep(uint32
num);
322 Result stopStep(
int signal,
bool complete);
Result of a solving step.
Definition: clasp_facade.h:112
void assume(Literal p)
Adds p to the list of assumptions under which solving should operate.
Definition: clasp_facade.cpp:393
uint64 optimal() const
Definition: clasp_facade.cpp:602
bool complete() const
Definition: clasp_facade.h:144
int stats() const
Definition: clasp_facade.cpp:591
const Summary * summary
Definition: clasp_facade.h:170
SolveOptions solve
Definition: clasp_facade.h:81
bool solving() const
Returns whether a solve operation is currently active.
Definition: clasp_facade.cpp:399
Definition: clasp_facade.h:116
uint8 flags
Definition: clasp_facade.h:132
uint64 numEnum
Definition: clasp_facade.h:158
Event type used to signal that a solve step has terminated.
Definition: clasp_facade.h:168
~ClaspConfig()
Definition: clasp_facade.cpp:39
uint8 signal
Definition: clasp_facade.h:133
const char * consequences() const
Definition: clasp_facade.cpp:594
Type for storing a model.
Definition: enumerator.h:38
Clasp::BasicSolveOptions SolveOptions
Definition: clasp_facade.h:49
double cpuTime
Definition: clasp_facade.h:154
Type
Definition: claspfwd.h:30
Asp::LogicProgram & startAsp(ClaspConfig &config, bool allowUpdate=false)
Starts definition of an ASP-problem.
Definition: clasp_facade.cpp:340
EnumMode
Definition: clasp_facade.h:193
Options for configuring enumeration.
Definition: enumerator.h:61
Ext
Definition: clasp_facade.h:119
bool sat() const
Definition: clasp_facade.h:124
ProgramBuilder & start(ClaspConfig &config, ProblemType t, bool allowUpdate=false)
Starts definition of a problem of type t.
Definition: clasp_facade.cpp:321
ExpectedQuantity(uint32 x)
Definition: clasp_facade.h:96
def complete
Definition: server.py:15
Definition: clasp_facade.h:122
tuple s
Definition: server.py:45
UTerm lhs
Definition: literals.cc:185
uint64 enumerated() const
Definition: clasp_facade.h:141
void swap(Literal &l, Literal &r)
Definition: literal.h:188
auto f
Definition: statements.cc:122
Definition: misc_types.h:83
ProgramBuilder & update(bool updateConfig=false)
Starts update of the active problem.
Definition: clasp_facade.cpp:350
Aggregates information to be shared between solver objects.
Definition: shared_context.h:396
StepStart(const ClaspFacade &f)
Definition: clasp_facade.h:164
Error error() const
Definition: clasp_facade.cpp:477
Options for the Asp-Preprocessor.
Definition: logic_program.h:95
const Asp::LpStats * lpStats() const
Definition: clasp_facade.h:140
Type summarizing one or more solving steps.
Definition: clasp_facade.h:136
bool unknown() const
Definition: clasp_facade.h:126
Definition: clasp_facade.cpp:119
ExpectedQuantity(double d)
Definition: clasp_facade.cpp:476
PodVector< Literal >::type LitVec
Definition: literal.h:193
double satTime
Definition: clasp_facade.h:157
const SharedMinData * costs() const
Definition: clasp_facade.cpp:593
bool error() const
Definition: clasp_facade.h:129
bool exhausted() const
Definition: clasp_facade.h:127
SharedContext ctx
Definition: clasp_facade.h:174
Result solve(Clasp::EventHandler *onModel=0)
Solves the current prepared problem.
Definition: clasp_facade.cpp:408
UserConfig * testerConfig() const
Definition: clasp_facade.h:77
ExpectedQuantity(const void *x)
Definition: clasp_facade.h:98
uint32 step
Definition: clasp_facade.h:159
bool terminate(int signal)
Tries to terminate an active solve operation.
Definition: clasp_facade.cpp:362
Definition: clasp_facade.h:94
Term & rhs
Definition: literals.cc:186
ProgramBuilder * program() const
Returns the active program or 0 if it was already released.
Definition: clasp_facade.h:307
int step() const
Returns the current incremental step (starts at 0).
Definition: clasp_facade.h:303
~ClaspFacade()
Definition: clasp_facade.cpp:275
void init(ClaspFacade &f)
Definition: clasp_facade.cpp:590
virtual bool ok() const
Returns true if the program is not conflicting.
Definition: program_builder.cpp:35
double unsatTime
Definition: clasp_facade.h:156
Definition: solve_algorithms.h:202
Program statistics for one incremental step.
Definition: logic_program.h:35
StepReady(const Summary &x)
Definition: clasp_facade.h:169
bool ok() const
Returns true unless the master has an unresolvable top-level conflict.
Definition: shared_context.cpp:499
ClaspConfig()
Definition: clasp_facade.cpp:38
ClaspFacade()
Definition: clasp_facade.cpp:274
Definition: clasp_facade.h:121
bool interrupted() const
Definition: clasp_facade.h:128
EnumOptions enumerate
Definition: clasp_facade.h:82
const char * getKeys(const char *path) const
Definition: clasp_facade.cpp:572
A class for defining a SAT-problem in CNF.
Definition: program_builder.h:109
Definition: clasp_facade.h:94
ExpectedQuantity getStat(const char *path) const
Definition: clasp_facade.cpp:569
const Summary & summary() const
Returns the summary of the active step.
Definition: clasp_facade.h:299
const Model * model() const
Definition: clasp_facade.cpp:592
Base
Possible solving results.
Definition: clasp_facade.h:114
Definition: clasp_facade.cpp:91
Definition: clasp_facade.h:66
const ClaspFacade * facade
Definition: clasp_facade.h:165
Definition: misc_types.h:39
const SharedContext & ctx() const
Definition: clasp_facade.h:139
unsigned num
Definition: dependency.cc:114
bool optimum() const
Definition: clasp_facade.cpp:601
void setSolvers(uint32 n)
Definition: clasp_facade.cpp:55
bool unsat() const
Definition: clasp_facade.h:143
const Summary & shutdown()
Definition: clasp_facade.cpp:401
Definition: clasp_facade.h:94
tuple p
Definition: server.py:49
UserConfig * addTesterConfig()
Definition: clasp_facade.cpp:51
bool valid() const
Definition: clasp_facade.h:100
bool unsat() const
Definition: clasp_facade.h:125
Result result
Definition: clasp_facade.h:160
Result result() const
Returns the result of the active step. (unknown if run is not yet completed).
Definition: clasp_facade.h:305
std::vector< std::string > Model
Definition: solver_helper.hh:38
Definition: clasp_facade.h:193
Definition: misc_types.h:38
T * get() const
Definition: misc_types.h:341
Definition: clasp_facade.h:120
Definition: misc_types.h:48
int x
Definition: utility.cc:65
BasicSatConfig UserConfig
Definition: clasp_facade.h:68
tuple d
Definition: pyclingo.py:49
Definition: clasp_facade.h:193
Definition: clasp_facade.h:115
bool ok() const
Returns whether the problem is still valid.
Definition: clasp_facade.h:292
PBBuilder & startPB(ClaspConfig &config, bool allowUpdate=false)
Starts definition of a PB-problem.
Definition: clasp_facade.cpp:334
A class for defining a logic program.
Definition: logic_program.h:77
A (positive) numeric value.
Definition: clasp_facade.h:93
double solveTime
Definition: clasp_facade.h:155
Interface for defining an input program.
Definition: program_builder.h:43
Definition: clasp_facade.h:117
AspOptions asp
Definition: clasp_facade.h:83
double rep
Definition: clasp_facade.h:103
bool sat() const
Definition: clasp_facade.h:142
tuple e
Definition: pyclingo.py:50
Definition: clasp_facade.h:94
A type holding data (possibly) shared between a set of minimize constraints.
Definition: minimize_constraint.h:58
Asp::LogicProgram::AspOptions AspOptions
Definition: clasp_facade.h:70
ExpectedQuantity(uint64 x)
Definition: clasp_facade.h:97
A class for defining a PB-problem.
Definition: program_builder.h:160
Provides a simplified interface to the services of the clasp library.
Definition: clasp_facade.h:107
Error
Definition: clasp_facade.h:94
bool prepare(EnumMode m=enum_volatile)
Finishes the definition of a problem and prepares it for solving.
Definition: clasp_facade.cpp:371
Definition: solver_strategies.h:438
A literal is a variable or its negation.
Definition: literal.h:80
bool optimize() const
Definition: clasp_facade.cpp:600
const ClaspConfig * config() const
Returns the active configuration.
Definition: clasp_facade.h:301
Event type used to signal that a solve step has started.
Definition: clasp_facade.h:163
void prepare(SharedContext &)
Prepares this configuration for the usage in the given context.
Definition: clasp_facade.cpp:63
SharedMinimizeData SharedMinData
Definition: clasp_facade.h:137
const ClaspFacade * facade
Definition: clasp_facade.h:152
Solver ** SolverIt
Definition: clasp_facade.h:69
void reset()
Definition: clasp_facade.cpp:43
SatBuilder & startSat(ClaspConfig &config, bool allowUpdate=false)
Starts definition of a SAT-problem.
Definition: clasp_facade.cpp:328
double totalTime
Definition: clasp_facade.h:153
clasp's Solver class.
Definition: solver.h:82
int end
Definition: literals.cc:62