38 namespace Gecode {
namespace Search {
58 :
i(1U), scale(scale0) {}
63 unsigned long int exp = 0U;
64 while ( (
i >> (++
exp)) > 1U ) {}
72 unsigned long int l =
log(
i);
73 if (
i == (1U<<(
l+1))-1)
84 :
n(1.0), scale(static_cast<double>(scale0)),
base(base0) {}
89 unsigned long int min0,
90 unsigned long int max0,
92 : rnd(seed),
min(min0),
n(n0 == 0 ? (max0-
min+1U) : n0),
94 static_cast<unsigned long int>((max0-min0+1U)/
n))) {
101 : c1(
d1), c2(
d2),
n(n0) {}
104 delete c1;
delete c2;
113 delete c1;
delete c2;
119 :
c(c1),
i(0),
n(n0) {
int n
Number of negative literals for node type.
Cutoff * c1
First cutoff generators.
virtual ~CutoffAppend(void)
Destructor.
Cutoff * c2
Second cutoff generators.
CutoffAppend(Cutoff *c1, unsigned long int n, Cutoff *c2)
Constructor.
CutoffConstant(unsigned long int c)
Constructor.
CutoffGeometric(unsigned long int scale, double base)
Constructor.
CutoffLinear(unsigned long int scale)
Constructor.
static unsigned long int luby(unsigned long int i)
Compute Luby number for step i.
static const unsigned long int n_start
Number of pre-computed luby values.
CutoffLuby(unsigned long int scale)
Constructor.
static unsigned long int log(unsigned long int i)
Compute binary logarithm of i.
unsigned long int i
Iteration number.
static unsigned long int start[n_start]
Precomputed luby-values.
virtual ~CutoffMerge(void)
Destructor.
Cutoff * c1
First cutoff generator.
Cutoff * c2
Second cutoff generator.
CutoffMerge(Cutoff *c1, Cutoff *c2)
Constructor.
unsigned long int cur
Current value.
CutoffRandom(unsigned int seed, unsigned long int min, unsigned long int max, unsigned long int n)
Constructor.
CutoffRepeat(Cutoff *c, unsigned long int n)
Constructor.
Cutoff * c
Actual cutoff generator.
virtual ~CutoffRepeat(void)
Destructor.
Base class for cutoff generators for restart-based meta engine.
virtual ~Cutoff(void)
Destructor.
Cutoff(void)
Default constructor.
void exp(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
const FloatNum max
Largest allowed float value.
const FloatNum min
Smallest allowed float value.
const double base
Base for geometric restart sequence.
Gecode::FloatVal c(-8, 8)
const Gecode::FloatNum step
Gecode::IntArgs i({1, 2, 3, 4})
#define GECODE_NEVER
Assert that this command is never executed.