diff --git a/gecode_solver.cpp b/gecode_solver.cpp index 86df7aef75ea27d7cbbf9d3b527bb9c4bed1d1af_Z2Vjb2RlX3NvbHZlci5jcHA=..4882ac511b8a5484226a92dbcf90fdf1100724a4_Z2Vjb2RlX3NvbHZlci5jcHA= 100644 --- a/gecode_solver.cpp +++ b/gecode_solver.cpp @@ -18,8 +18,9 @@ // so the build system must pass GE_VERSION accordingly // by default we build for 3.1.0 if GECODE_VERSION exists +#ifndef GE_VERSION #ifndef GECODE_VERSION #define GE_VERSION PM_VERSION(2,1,2) #else #define GE_VERSION PM_VERSION(3,1,0) #endif @@ -21,6 +22,7 @@ #ifndef GECODE_VERSION #define GE_VERSION PM_VERSION(2,1,2) #else #define GE_VERSION PM_VERSION(3,1,0) #endif +#endif @@ -26,5 +28,10 @@ -#if GE_VERSION < PM_VERSION(3,0,0) +#if GE_VERSION < PM_VERSION(2,0,0) +#define SELF this +#define INT_VAR_NONE BVAR_NONE +#define INT_VAL_MIN BVAL_MIN + +#elif GE_VERSION < PM_VERSION(3,0,0) #define SELF this #define SET_VAR_SIZE_MAX SET_VAR_MAX_CARD #define SET_VAL_MIN_INC SET_VAL_MIN @@ -299,4 +306,8 @@ rel(SELF, variables[var0], IRT_EQ, variables[var1], terms[i-1] ); } debug(")\n"); +#if GE_VERSION<PM_VERSION(2,0,0) + BoolVarArgs terms_args(terms); + bool_and(SELF, terms_args, expr_value); +#else rel(SELF, BOT_AND, terms, expr_value); @@ -302,4 +313,5 @@ rel(SELF, BOT_AND, terms, expr_value); +#endif } /* simple and relation between nodes */ @@ -313,7 +325,12 @@ add_constraints( expr, terms[i] ); } debug("RQL:)\n"); - rel(SELF, BOT_AND, terms, var); +#if GE_VERSION<PM_VERSION(2,0,0) + BoolVarArgs terms_args(terms); + bool_and(SELF, terms_args, var); +#else + rel(SELF, BOT_AND, terms, var); +#endif } /* simple or relation between nodes */ @@ -327,4 +344,8 @@ add_constraints( expr, terms[i] ); } debug("RQL:)\n"); +#if GE_VERSION<PM_VERSION(2,0,0) + BoolVarArgs terms_args(terms); + bool_or(SELF, terms_args, var); +#else rel(SELF, BOT_OR, terms, var); @@ -330,4 +351,6 @@ rel(SELF, BOT_OR, terms, var); +#endif + } template <template<class> class Engine> @@ -344,8 +367,11 @@ n_p = s->propagators(); n_b = s->branchings(); } - Search::Options opts; +#if GE_VERSION<PM_VERSION(2,0,0) + Engine<RqlSolver> e(s); +#else + Search::Options opts; //opts.c_d = pb.c_d; //opts.a_d = pb.a_d; opts.stop = stop; Engine<RqlSolver> e(s, opts); @@ -348,7 +374,8 @@ //opts.c_d = pb.c_d; //opts.a_d = pb.a_d; opts.stop = stop; Engine<RqlSolver> e(s, opts); +#endif delete s; do { RqlSolver* ex = e.next();