220 lines
7.6 KiB
Plaintext
220 lines
7.6 KiB
Plaintext
diff -rupNw glucose-syrup/core/Solver.cc glucose-syrup-patched/core/Solver.cc
|
|
--- glucose-syrup/core/Solver.cc 2014-10-03 11:10:21.000000000 +0200
|
|
+++ glucose-syrup-patched/core/Solver.cc 2018-04-21 16:58:22.950005391 +0200
|
|
@@ -931,7 +931,6 @@ void Solver::uncheckedEnqueue(Lit p, CRe
|
|
CRef Solver::propagate() {
|
|
CRef confl = CRef_Undef;
|
|
int num_props = 0;
|
|
- int previousqhead = qhead;
|
|
watches.cleanAll();
|
|
watchesBin.cleanAll();
|
|
unaryWatches.cleanAll();
|
|
@@ -1405,7 +1404,9 @@ lbool Solver::search(int nof_conflicts)
|
|
decisions++;
|
|
next = pickBranchLit();
|
|
if (next == lit_Undef) {
|
|
+#if 0
|
|
printf("c last restart ## conflicts : %d %d \n", conflictC, decisionLevel());
|
|
+#endif
|
|
// Model found:
|
|
return l_True;
|
|
}
|
|
diff -rupNw glucose-syrup/core/SolverTypes.h glucose-syrup-patched/core/SolverTypes.h
|
|
--- glucose-syrup/core/SolverTypes.h 2014-10-03 11:10:22.000000000 +0200
|
|
+++ glucose-syrup-patched/core/SolverTypes.h 2018-04-21 16:58:22.950005391 +0200
|
|
@@ -53,7 +53,9 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR
|
|
|
|
#include <assert.h>
|
|
#include <stdint.h>
|
|
+#ifndef _MSC_VER
|
|
#include <pthread.h>
|
|
+#endif
|
|
|
|
#include "mtl/IntTypes.h"
|
|
#include "mtl/Alg.h"
|
|
@@ -170,7 +172,10 @@ class Clause {
|
|
unsigned lbd : BITS_LBD;
|
|
} header;
|
|
|
|
+#include <util/pragma_push.def>
|
|
+#include <util/pragma_wzero_length_array.def>
|
|
union { Lit lit; float act; uint32_t abs; CRef rel; } data[0];
|
|
+#include <util/pragma_pop.def>
|
|
|
|
friend class ClauseAllocator;
|
|
|
|
diff -rupNw glucose-syrup/mtl/Clone.h glucose-syrup-patched/mtl/Clone.h
|
|
--- glucose-syrup/mtl/Clone.h 2014-10-03 11:10:22.000000000 +0200
|
|
+++ glucose-syrup-patched/mtl/Clone.h 2018-05-10 12:35:25.150491249 +0200
|
|
@@ -8,6 +8,6 @@ namespace Glucose {
|
|
public:
|
|
virtual Clone* clone() const = 0;
|
|
};
|
|
-};
|
|
+}
|
|
|
|
#endif
|
|
\ No newline at end of file
|
|
diff -rupNw glucose-syrup/mtl/Clone.h~ glucose-syrup-patched/mtl/Clone.h~
|
|
--- glucose-syrup/mtl/Clone.h~ 1970-01-01 01:00:00.000000000 +0100
|
|
+++ glucose-syrup-patched/mtl/Clone.h~ 2018-04-21 16:58:22.950005391 +0200
|
|
@@ -0,0 +1,13 @@
|
|
+#ifndef Glucose_Clone_h
|
|
+#define Glucose_Clone_h
|
|
+
|
|
+
|
|
+namespace Glucose {
|
|
+
|
|
+ class Clone {
|
|
+ public:
|
|
+ virtual Clone* clone() const = 0;
|
|
+ };
|
|
+};
|
|
+
|
|
+#endif
|
|
\ No newline at end of file
|
|
diff -rupNw glucose-syrup/mtl/IntTypes.h glucose-syrup-patched/mtl/IntTypes.h
|
|
--- glucose-syrup/mtl/IntTypes.h 2014-10-03 11:10:22.000000000 +0200
|
|
+++ glucose-syrup-patched/mtl/IntTypes.h 2018-04-21 16:58:22.950005391 +0200
|
|
@@ -31,7 +31,9 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR
|
|
#else
|
|
|
|
# include <stdint.h>
|
|
+#ifndef _MSC_VER
|
|
# include <inttypes.h>
|
|
+#endif
|
|
|
|
#endif
|
|
|
|
diff -rupNw glucose-syrup/mtl/Vec.h glucose-syrup-patched/mtl/Vec.h
|
|
--- glucose-syrup/mtl/Vec.h 2014-10-03 11:10:22.000000000 +0200
|
|
+++ glucose-syrup-patched/mtl/Vec.h 2018-04-21 16:58:22.950005391 +0200
|
|
@@ -103,7 +103,7 @@ template<class T>
|
|
void vec<T>::capacity(int min_cap) {
|
|
if (cap >= min_cap) return;
|
|
int add = imax((min_cap - cap + 1) & ~1, ((cap >> 1) + 2) & ~1); // NOTE: grow by approximately 3/2
|
|
- if (add > INT_MAX - cap || ((data = (T*)::realloc(data, (cap += add) * sizeof(T))) == NULL) && errno == ENOMEM)
|
|
+ if (add > INT_MAX - cap || (((data = (T*)::realloc(data, (cap += add) * sizeof(T))) == NULL) && errno == ENOMEM))
|
|
throw OutOfMemoryException();
|
|
}
|
|
|
|
diff -rupNw glucose-syrup/simp/SimpSolver.cc glucose-syrup-patched/simp/SimpSolver.cc
|
|
--- glucose-syrup/simp/SimpSolver.cc 2014-10-03 11:10:22.000000000 +0200
|
|
+++ glucose-syrup-patched/simp/SimpSolver.cc 2018-04-21 16:58:22.950005391 +0200
|
|
@@ -319,10 +319,13 @@ bool SimpSolver::merge(const Clause& _ps
|
|
if (var(qs[i]) != v){
|
|
for (int j = 0; j < ps.size(); j++)
|
|
if (var(ps[j]) == var(qs[i]))
|
|
+ {
|
|
if (ps[j] == ~qs[i])
|
|
+
|
|
return false;
|
|
else
|
|
goto next;
|
|
+ }
|
|
out_clause.push(qs[i]);
|
|
}
|
|
next:;
|
|
@@ -353,10 +356,12 @@ bool SimpSolver::merge(const Clause& _ps
|
|
if (var(__qs[i]) != v){
|
|
for (int j = 0; j < ps.size(); j++)
|
|
if (var(__ps[j]) == var(__qs[i]))
|
|
+ {
|
|
if (__ps[j] == ~__qs[i])
|
|
return false;
|
|
else
|
|
goto next;
|
|
+ }
|
|
size++;
|
|
}
|
|
next:;
|
|
@@ -687,11 +692,11 @@ bool SimpSolver::eliminate(bool turn_off
|
|
//
|
|
|
|
int toPerform = clauses.size()<=4800000;
|
|
-
|
|
+#if 0
|
|
if(!toPerform) {
|
|
printf("c Too many clauses... No preprocessing\n");
|
|
}
|
|
-
|
|
+#endif
|
|
while (toPerform && (n_touched > 0 || bwdsub_assigns < trail.size() || elim_heap.size() > 0)){
|
|
|
|
gatherTouchedClauses();
|
|
@@ -760,10 +765,11 @@ bool SimpSolver::eliminate(bool turn_off
|
|
checkGarbage();
|
|
}
|
|
|
|
+#if 0
|
|
if (verbosity >= 0 && elimclauses.size() > 0)
|
|
printf("c | Eliminated clauses: %10.2f Mb |\n",
|
|
double(elimclauses.size() * sizeof(uint32_t)) / (1024*1024));
|
|
-
|
|
+#endif
|
|
|
|
return ok;
|
|
|
|
diff -rupNw glucose-syrup/utils/Options.h glucose-syrup-patched/utils/Options.h
|
|
--- glucose-syrup/utils/Options.h 2014-10-03 11:10:22.000000000 +0200
|
|
+++ glucose-syrup-patched/utils/Options.h 2018-04-21 16:58:22.950005391 +0200
|
|
@@ -60,7 +60,7 @@ class Option
|
|
struct OptionLt {
|
|
bool operator()(const Option* x, const Option* y) {
|
|
int test1 = strcmp(x->category, y->category);
|
|
- return test1 < 0 || test1 == 0 && strcmp(x->type_name, y->type_name) < 0;
|
|
+ return test1 < 0 || (test1 == 0 && strcmp(x->type_name, y->type_name) < 0);
|
|
}
|
|
};
|
|
|
|
diff -rupNw glucose-syrup/utils/ParseUtils.h glucose-syrup-patched/utils/ParseUtils.h
|
|
--- glucose-syrup/utils/ParseUtils.h 2014-10-03 11:10:22.000000000 +0200
|
|
+++ glucose-syrup-patched/utils/ParseUtils.h 2018-04-21 16:58:22.950005391 +0200
|
|
@@ -25,7 +25,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR
|
|
#include <stdio.h>
|
|
#include <math.h>
|
|
|
|
-#include <zlib.h>
|
|
+//#include <zlib.h>
|
|
|
|
namespace Glucose {
|
|
|
|
@@ -36,7 +36,7 @@ static const int buffer_size = 1048576;
|
|
|
|
|
|
class StreamBuffer {
|
|
- gzFile in;
|
|
+ //gzFile in;
|
|
unsigned char buf[buffer_size];
|
|
int pos;
|
|
int size;
|
|
@@ -44,10 +44,10 @@ class StreamBuffer {
|
|
void assureLookahead() {
|
|
if (pos >= size) {
|
|
pos = 0;
|
|
- size = gzread(in, buf, sizeof(buf)); } }
|
|
+ /*size = gzread(in, buf, sizeof(buf));*/ } }
|
|
|
|
public:
|
|
- explicit StreamBuffer(gzFile i) : in(i), pos(0), size(0) { assureLookahead(); }
|
|
+ //explicit StreamBuffer(gzFile i) : in(i), pos(0), size(0) { assureLookahead(); }
|
|
|
|
int operator * () const { return (pos >= size) ? EOF : buf[pos]; }
|
|
void operator ++ () { pos++; assureLookahead(); }
|
|
diff -rupNw glucose-syrup/utils/System.h glucose-syrup-patched/utils/System.h
|
|
--- glucose-syrup/utils/System.h 2014-10-03 11:10:22.000000000 +0200
|
|
+++ glucose-syrup-patched/utils/System.h 2018-04-21 16:58:22.950005391 +0200
|
|
@@ -60,8 +60,11 @@ static inline double Glucose::cpuTime(vo
|
|
|
|
// Laurent: I know that this will not compile directly under Windows... sorry for that
|
|
static inline double Glucose::realTime() {
|
|
+#ifndef _WIN32
|
|
struct timeval tv;
|
|
gettimeofday(&tv, NULL);
|
|
- return (double)tv.tv_sec + (double) tv.tv_usec / 1000000; }
|
|
+ return (double)tv.tv_sec + (double) tv.tv_usec / 1000000;
|
|
+#endif
|
|
+}
|
|
|
|
#endif
|