var-imp.hpp
Go to the documentation of this file.
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
/*
* Main authors:
* Christian Schulte <schulte@gecode.org>
*
* Contributing authors:
* Guido Tack <tack@gecode.org>
*
* Copyright:
* Christian Schulte, 2002
* Guido Tack, 2004
*
* This file is part of Gecode, the generic constraint
* development environment:
* http://www.gecode.org
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
#include <cmath>
namespace Gecode { namespace Int {
class IntVarImp;
class BoolVarImp;
class IntDelta : public Delta {
friend class IntVarImp;
friend class BoolVarImp;
private:
int _min;
int _max;
public:
IntDelta(void);
IntDelta(int min, int max);
IntDelta(int min);
private:
int min(void) const;
int max(void) const;
unsigned int width(void) const;
bool any(void) const;
};
}}
#include <gecode/int/var-imp/delta.hpp>
namespace Gecode { namespace Int {
class IntVarImpFwd;
class IntVarImpBwd;
class IntVarImp : public IntVarImpBase {
friend class IntVarImpFwd;
friend class IntVarImpBwd;
protected:
class RangeList : public FreeList {
protected:
int _min;
int _max;
public:
RangeList(void);
RangeList(int min, int max);
RangeList(int min, int max, RangeList* p, RangeList* n);
int min(void) const;
int max(void) const;
unsigned int width(void) const;
RangeList* next(const RangeList* p) const;
RangeList* prev(const RangeList* n) const;
void min(int n);
void max(int n);
void prevnext(RangeList* p, RangeList* n);
void next(RangeList* o, RangeList* n);
void prev(RangeList* o, RangeList* n);
void fix(RangeList* n);
void dispose(Space& home, RangeList* p, RangeList* l);
void dispose(Space& home, RangeList* l);
void dispose(Space& home);
static void* operator new(size_t s, Space& home);
static void* operator new(size_t s, void* p);
static void operator delete(void*);
static void operator delete(void*, Space&);
static void operator delete(void*, void*);
};
RangeList dom;
RangeList* _lst;
RangeList* fst(void) const;
void fst(RangeList* f);
RangeList* lst(void) const;
void lst(RangeList* l);
unsigned int holes;
protected:
IntVarImp(Space& home, IntVarImp& x);
public:
IntVarImp(Space& home, int min, int max);
IntVarImp(Space& home, const IntSet& d);
int min(void) const;
int max(void) const;
int val(void) const;
GECODE_INT_EXPORT int med(void) const;
unsigned int size(void) const;
unsigned int width(void) const;
unsigned int regret_min(void) const;
unsigned int regret_max(void) const;
private:
GECODE_INT_EXPORT bool in_full(int n) const;
public:
bool range(void) const;
bool assigned(void) const;
bool in(int n) const;
bool in(long long int n) const;
protected:
const RangeList* ranges_fwd(void) const;
const RangeList* ranges_bwd(void) const;
private:
bool closer_min(int b) const;
GECODE_INT_EXPORT ModEvent lq_full(Space& home, int n);
GECODE_INT_EXPORT ModEvent gq_full(Space& home, int n);
GECODE_INT_EXPORT ModEvent eq_full(Space& home, int n);
GECODE_INT_EXPORT ModEvent nq_full(Space& home, int n);
public:
ModEvent lq(Space& home, int n);
ModEvent lq(Space& home, long long int n);
ModEvent gq(Space& home, int n);
ModEvent gq(Space& home, long long int n);
ModEvent nq(Space& home, int n);
ModEvent nq(Space& home, long long int n);
ModEvent eq(Space& home, int n);
ModEvent eq(Space& home, long long int n);
template<class I>
ModEvent narrow_r(Space& home, I& i, bool depends=true);
template<class I>
ModEvent inter_r(Space& home, I& i, bool depends=true);
template<class I>
ModEvent minus_r(Space& home, I& i, bool depends=true);
template<class I>
ModEvent narrow_v(Space& home, I& i, bool depends=true);
template<class I>
ModEvent inter_v(Space& home, I& i, bool depends=true);
template<class I>
ModEvent minus_v(Space& home, I& i, bool depends=true);
GECODE_INT_EXPORT void subscribe(Space& home, Propagator& p, PropCond pc, bool schedule=true);
GECODE_INT_EXPORT void reschedule(Space& home, Propagator& p, PropCond pc);
GECODE_INT_EXPORT void subscribe(Space& home, Advisor& a, bool fail);
static ModEventDelta med(ModEvent me);
private:
GECODE_INT_EXPORT IntVarImp* perform_copy(Space& home);
public:
IntVarImp* copy(Space& home);
static int min(const Delta& d);
static int max(const Delta& d);
static unsigned int width(const Delta& d);
static bool any(const Delta& d);
};
class IntVarImpFwd {
private:
const IntVarImp::RangeList* p;
const IntVarImp::RangeList* c;
public:
IntVarImpFwd(void);
IntVarImpFwd(const IntVarImp* x);
void init(const IntVarImp* x);
bool operator ()(void) const;
void operator ++(void);
int min(void) const;
int max(void) const;
unsigned int width(void) const;
};
class IntVarImpBwd {
private:
const IntVarImp::RangeList* n;
const IntVarImp::RangeList* c;
public:
IntVarImpBwd(void);
IntVarImpBwd(const IntVarImp* x);
void init(const IntVarImp* x);
bool operator ()(void) const;
void operator ++(void);
int min(void) const;
int max(void) const;
unsigned int width(void) const;
};
}}
#include <gecode/int/var-imp/int.hpp>
namespace Gecode {
class IntVar;
class BoolVar;
}
namespace Gecode { namespace Int {
typedef unsigned int BoolStatus;
class BoolVarImp : public BoolVarImpBase {
friend class ::Gecode::BoolVar;
private:
GECODE_INT_EXPORT static BoolVarImp s_one;
GECODE_INT_EXPORT static BoolVarImp s_zero;
BoolVarImp(Space& home, BoolVarImp& x);
BoolVarImp(int n);
public:
BoolVarImp(Space& home, int min, int max);
static const int BITS = 2;
static const BoolStatus ZERO = 0;
static const BoolStatus ONE = 3;
static const BoolStatus NONE = 2;
BoolStatus status(void) const;
int min(void) const;
int max(void) const;
int val(void) const;
int med(void) const;
unsigned int size(void) const;
unsigned int width(void) const;
unsigned int regret_min(void) const;
unsigned int regret_max(void) const;
bool zero(void) const;
bool one(void) const;
bool none(void) const;
bool range(void) const;
bool assigned(void) const;
bool in(int n) const;
bool in(long long int n) const;
ModEvent lq(Space& home, int n);
ModEvent lq(Space& home, long long int n);
ModEvent gq(Space& home, int n);
ModEvent gq(Space& home, long long int n);
ModEvent nq(Space& home, int n);
ModEvent nq(Space& home, long long int n);
ModEvent eq(Space& home, int n);
ModEvent eq(Space& home, long long int n);
template<class I>
ModEvent narrow_r(Space& home, I& i, bool depends=true);
template<class I>
ModEvent inter_r(Space& home, I& i, bool depends=true);
template<class I>
ModEvent minus_r(Space& home, I& i, bool depends=true);
template<class I>
ModEvent narrow_v(Space& home, I& i, bool depends=true);
template<class I>
ModEvent inter_v(Space& home, I& i, bool depends=true);
template<class I>
ModEvent minus_v(Space& home, I& i, bool depends=true);
ModEvent zero(Space& home);
ModEvent one(Space& home);
GECODE_INT_EXPORT ModEvent zero_none(Space& home);
GECODE_INT_EXPORT ModEvent one_none(Space& home);
public:
GECODE_INT_EXPORT void subscribe(Space& home, Propagator& p, PropCond pc, bool schedule=true);
void cancel(Space& home, Propagator& p, PropCond pc);
GECODE_INT_EXPORT void subscribe(Space& home, Advisor& a, bool fail);
void cancel(Space& home, Advisor& a, bool fail);
static void schedule(Space& home, Propagator& p, ModEvent me);
GECODE_INT_EXPORT void reschedule(Space& home, Propagator& p, PropCond pc);
static ModEventDelta med(ModEvent me);
static ModEvent modevent(const Delta& d);
static int min(const Delta& d);
static int max(const Delta& d);
static unsigned int width(const Delta& d);
static bool any(const Delta& d);
static bool zero(const Delta& d);
static bool one(const Delta& d);
BoolVarImp* copy(Space& home);
};
}}
#include <gecode/int/var-imp/bool.hpp>
// STATISTICS: int-var
Gecode::Advisor
Base-class for advisors.
Definition core.hpp:1292
Gecode::Delta
Generic domain change information to be supplied to advisors.
Definition core.hpp:204
Gecode::FreeList::FreeList
FreeList(void)
Use uninitialized.
Definition manager.hpp:241
Gecode::FreeList::next
FreeList * next(void) const
Return next freelist object.
Definition manager.hpp:248
Gecode::IntSet
Integer sets.
Definition int.hh:174
Gecode::Int::BoolVarImpBase::BoolVarImpBase
BoolVarImpBase(Gecode::Space &home, BoolVarImpBase &x)
Constructor for cloning x.
Definition var-imp.hpp:300
Gecode::Int::BoolVarImp
Boolean variable implementation.
Definition var-imp.hpp:491
Gecode::Int::BoolVarImp::gq
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
Definition bool.hpp:201
Gecode::Int::BoolVarImp::zero
bool zero(void) const
Test whether variable is assigned to zero.
Definition bool.hpp:131
Gecode::Int::BoolVarImp::nq
ModEvent nq(Space &home, int n)
Restrict domain values to be different from n.
Definition bool.hpp:238
Gecode::Int::BoolVarImp::size
unsigned int size(void) const
Return size (cardinality) of domain.
Definition bool.hpp:96
Gecode::Int::BoolVarImp::inter_v
ModEvent inter_v(Space &home, I &i, bool depends=true)
Intersect domain with values described by i.
Definition bool.hpp:351
Gecode::Int::BoolVarImp::BITS
static const int BITS
How many bits does the status have.
Definition var-imp.hpp:519
Gecode::Int::BoolVarImp::none
bool none(void) const
Test whether variable is not yet assigned.
Definition bool.hpp:139
Gecode::Int::BoolVarImp::max
int max(void) const
Return maximum of domain.
Definition bool.hpp:66
Gecode::Int::BoolVarImp::eq
ModEvent eq(Space &home, int n)
Restrict domain values to be equal to n.
Definition bool.hpp:227
Gecode::Int::BoolVarImp::schedule
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
Definition bool.hpp:405
Gecode::Int::BoolVarImp::narrow_v
ModEvent narrow_v(Space &home, I &i, bool depends=true)
Replace domain by values described by i.
Definition bool.hpp:332
Gecode::Int::BoolVarImp::width
unsigned int width(void) const
Return width of domain (distance between maximum and minimum).
Definition bool.hpp:91
Gecode::Int::BoolVarImp::one
bool one(void) const
Test whether variable is assigned to one.
Definition bool.hpp:135
Gecode::Int::BoolVarImp::narrow_r
ModEvent narrow_r(Space &home, I &i, bool depends=true)
Replace domain by ranges described by i.
Definition bool.hpp:276
Gecode::Int::BoolVarImp::min
int min(void) const
Return minimum of domain.
Definition bool.hpp:62
Gecode::Int::BoolVarImp::inter_r
ModEvent inter_r(Space &home, I &i, bool depends=true)
Intersect domain with ranges described by i.
Definition bool.hpp:297
Gecode::Int::BoolVarImp::one_none
ModEvent one_none(Space &home)
Assign unassigned variable to one.
Definition bool.cpp:42
Gecode::Int::BoolVarImp::any
static bool any(const Delta &d)
Test whether arbitrary values got pruned.
Definition bool.hpp:165
Gecode::Int::BoolVarImp::NONE
static const BoolStatus NONE
Status of domain not yet assigned.
Definition var-imp.hpp:525
Gecode::Int::BoolVarImp::subscribe
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p to variable with propagation condition pc.
Definition bool.cpp:60
Gecode::Int::BoolVarImp::reschedule
void reschedule(Space &home, Propagator &p, PropCond pc)
Re-schedule propagator p.
Definition bool.cpp:68
Gecode::Int::BoolVarImp::med
int med(void) const
Return median of domain (greatest element not greater than the median).
Definition bool.hpp:70
Gecode::Int::BoolVarImp::copy
BoolVarImp * copy(Space &home)
Return copy of this variable.
Definition bool.hpp:258
Gecode::Int::BoolVarImp::regret_max
unsigned int regret_max(void) const
Return regret of domain maximum (distance to next smaller value).
Definition bool.hpp:105
Gecode::Int::BoolVarImp::minus_r
ModEvent minus_r(Space &home, I &i, bool depends=true)
Remove from domain the ranges described by i.
Definition bool.hpp:314
Gecode::Int::BoolVarImp::ZERO
static const BoolStatus ZERO
Status of domain assigned to zero.
Definition var-imp.hpp:521
Gecode::Int::BoolVarImp::assigned
bool assigned(void) const
Test whether variable is assigned.
Definition bool.hpp:85
Gecode::Int::BoolVarImp::in
bool in(int n) const
Test whether n is contained in domain.
Definition bool.hpp:117
Gecode::Int::BoolVarImp::zero_none
ModEvent zero_none(Space &home)
Assign unassigned variable to zero.
Definition bool.cpp:51
Gecode::Int::BoolVarImp::lq
ModEvent lq(Space &home, int n)
Restrict domain values to be less or equal than n.
Definition bool.hpp:214
Gecode::Int::BoolVarImp::regret_min
unsigned int regret_min(void) const
Return regret of domain minimum (distance to next larger value).
Definition bool.hpp:101
Gecode::Int::BoolVarImp::range
bool range(void) const
Test whether domain is a range.
Definition bool.hpp:81
Gecode::Int::BoolVarImp::ONE
static const BoolStatus ONE
Status of domain assigned to one.
Definition var-imp.hpp:523
Gecode::Int::BoolVarImp::status
BoolStatus status(void) const
Return current domain status.
Definition bool.hpp:58
Gecode::Int::BoolVarImp::minus_v
ModEvent minus_v(Space &home, I &i, bool depends=true)
Remove from domain the values described by i.
Definition bool.hpp:370
Gecode::Int::BoolVarImp::val
int val(void) const
Return assigned value (only if assigned).
Definition bool.hpp:75
Gecode::Int::BoolVarImp::modevent
static ModEvent modevent(const Delta &d)
Return modification event.
Definition bool.hpp:149
Gecode::Int::BoolVarImp::cancel
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc.
Definition bool.hpp:395
Gecode::Int::IntDelta::BoolVarImp
friend class BoolVarImp
Definition var-imp.hpp:53
Gecode::Int::IntDelta::IntDelta
IntDelta(void)
Create integer delta as providing no information.
Definition delta.hpp:37
Gecode::Int::IntDelta::IntVarImp
friend class IntVarImp
Definition var-imp.hpp:52
Gecode::Int::IntVarImpBase::schedule
static void schedule(Gecode::Space &home, Gecode::Propagator &p, Gecode::ModEvent me)
Schedule propagator p.
Definition var-imp.hpp:252
Gecode::Int::IntVarImpBase::IntVarImpBase
IntVarImpBase(Gecode::Space &home, IntVarImpBase &x)
Constructor for cloning x.
Definition var-imp.hpp:239
Gecode::Int::IntVarImpBwd::width
unsigned int width(void) const
Return width of range (distance between minimum and maximum).
Definition int.hpp:492
Gecode::Int::IntVarImpBwd::operator++
void operator++(void)
Move iterator to previous range (if possible).
Definition int.hpp:479
Gecode::Int::IntVarImpBwd::max
int max(void) const
Return largest value of range.
Definition int.hpp:488
Gecode::Int::IntVarImpBwd::operator()
bool operator()(void) const
Test whether iterator is still at a range or done.
Definition int.hpp:475
Gecode::Int::IntVarImpBwd::min
int min(void) const
Return smallest value of range.
Definition int.hpp:484
Gecode::Int::IntVarImpBwd::init
void init(const IntVarImp *x)
Initialize with ranges from variable implementation x.
Definition int.hpp:470
Gecode::Int::IntVarImpBwd::IntVarImpBwd
IntVarImpBwd(void)
Default constructor.
Definition int.hpp:465
Gecode::Int::IntVarImpFwd::init
void init(const IntVarImp *x)
Initialize with ranges from variable implementation x.
Definition int.hpp:432
Gecode::Int::IntVarImpFwd::IntVarImpFwd
IntVarImpFwd(void)
Default constructor.
Definition int.hpp:427
Gecode::Int::IntVarImpFwd::operator()
bool operator()(void) const
Test whether iterator is still at a range or done.
Definition int.hpp:437
Gecode::Int::IntVarImpFwd::width
unsigned int width(void) const
Return width of range (distance between minimum and maximum).
Definition int.hpp:454
Gecode::Int::IntVarImpFwd::min
int min(void) const
Return smallest value of range.
Definition int.hpp:446
Gecode::Int::IntVarImpFwd::operator++
void operator++(void)
Move iterator to next range (if possible).
Definition int.hpp:441
Gecode::Int::IntVarImpFwd::max
int max(void) const
Return largest value of range.
Definition int.hpp:450
Gecode::Int::IntVarImp::RangeList
Lists of ranges (intervals).
Definition var-imp.hpp:102
Gecode::Int::IntVarImp::RangeList::width
unsigned int width(void) const
Return width (distance between maximum and minimum).
Definition int.hpp:106
Gecode::Int::IntVarImp::RangeList::fix
void fix(RangeList *n)
Restore simple link to next element (so that it becomes a true free list).
Definition int.hpp:84
Gecode::Int::IntVarImp::RangeList::_max
int _max
Maximum of range.
Definition var-imp.hpp:107
Gecode::Int::IntVarImp::RangeList::_min
int _min
Minimum of range.
Definition var-imp.hpp:105
Gecode::Int::IntVarImp::RangeList::RangeList
RangeList(void)
Default constructor (noop).
Definition int.hpp:49
Gecode::Int::IntVarImp::RangeList::min
int min(void) const
Return minimum.
Definition int.hpp:98
Gecode::Int::IntVarImp::RangeList::prevnext
void prevnext(RangeList *p, RangeList *n)
Set previous element to p and next element to n.
Definition int.hpp:70
Gecode::Int::IntVarImp::RangeList::prev
RangeList * prev(const RangeList *n) const
Return previous element (from next n).
Definition int.hpp:66
Gecode::Int::IntVarImp::RangeList::max
int max(void) const
Return maximum.
Definition int.hpp:102
Gecode::Int::IntVarImp::RangeList::dispose
void dispose(Space &home, RangeList *p, RangeList *l)
Free memory for all elements between this and l (inclusive).
Definition int.hpp:134
Gecode::Int::IntVarImp
Integer variable implementation.
Definition var-imp.hpp:89
Gecode::Int::IntVarImp::ranges_bwd
const RangeList * ranges_bwd(void) const
Return range list for backward iteration.
Definition int.hpp:310
Gecode::Int::IntVarImp::_lst
RangeList * _lst
Link the last element.
Definition var-imp.hpp:190
Gecode::Int::IntVarImp::lst
RangeList * lst(void) const
Return last element of rangelist.
Definition int.hpp:173
Gecode::Int::IntVarImp::width
unsigned int width(void) const
Return width of domain (distance between maximum and minimum).
Definition int.hpp:248
Gecode::Int::IntVarImp::eq
ModEvent eq(Space &home, int n)
Restrict domain values to be equal to n.
Definition int.hpp:386
Gecode::Int::IntVarImp::med
int med(void) const
Return median of domain (greatest element not greater than the median).
Definition int.cpp:46
Gecode::Int::IntVarImp::narrow_v
ModEvent narrow_v(Space &home, I &i, bool depends=true)
Replace domain by values described by i.
Definition int.hpp:835
Gecode::Int::IntVarImp::regret_max
unsigned int regret_max(void) const
Return regret of domain maximum (distance to next smaller value).
Definition int.hpp:268
Gecode::Int::IntVarImp::inter_v
ModEvent inter_v(Space &home, I &i, bool depends=true)
Intersect domain with values described by i.
Definition int.hpp:842
Gecode::Int::IntVarImp::in
bool in(int n) const
Test whether n is contained in domain.
Definition int.hpp:286
Gecode::Int::IntVarImp::copy
IntVarImp * copy(Space &home)
Return copy of this variable.
Definition int.hpp:991
Gecode::Int::IntVarImp::assigned
bool assigned(void) const
Test whether variable is assigned.
Definition int.hpp:242
Gecode::Int::IntVarImp::lq
ModEvent lq(Space &home, int n)
Restrict domain values to be less or equal than n.
Definition int.hpp:365
Gecode::Int::IntVarImp::nq
ModEvent nq(Space &home, int n)
Restrict domain values to be different from n.
Definition int.hpp:408
Gecode::Int::IntVarImp::max
int max(void) const
Return maximum of domain.
Definition int.hpp:228
Gecode::Int::IntVarImp::minus_v
ModEvent minus_v(Space &home, I &i, bool depends=true)
Remove from domain the values described by i.
Definition int.hpp:849
Gecode::Int::IntVarImp::val
int val(void) const
Return assigned value (only if assigned).
Definition int.hpp:232
Gecode::Int::IntVarImp::fst
RangeList * fst(void) const
Return first element of rangelist.
Definition int.hpp:163
Gecode::Int::IntVarImp::subscribe
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to variable.
Definition int.cpp:362
Gecode::Int::IntVarImp::size
unsigned int size(void) const
Return size (cardinality) of domain.
Definition int.hpp:253
Gecode::Int::IntVarImp::min
int min(void) const
Return minimum of domain.
Definition int.hpp:224
Gecode::Int::IntVarImp::regret_min
unsigned int regret_min(void) const
Return regret of domain minimum (distance to next larger value).
Definition int.hpp:258
Gecode::Int::IntVarImp::dom
RangeList dom
Domain information.
Definition var-imp.hpp:188
Gecode::Int::IntVarImp::holes
unsigned int holes
Size of holes in the domain.
Definition var-imp.hpp:200
Gecode::Int::IntVarImp::range
bool range(void) const
Test whether domain is a range.
Definition int.hpp:238
Gecode::Int::IntVarImp::narrow_r
ModEvent narrow_r(Space &home, I &i, bool depends=true)
Replace domain by ranges described by i.
Definition int.hpp:503
Gecode::Int::IntVarImp::IntVarImp
IntVarImp(Space &home, IntVarImp &x)
Constructor for cloning x.
Definition int.cpp:317
Gecode::Int::IntVarImp::IntVarImpBwd
friend class IntVarImpBwd
Definition var-imp.hpp:91
Gecode::Int::IntVarImp::reschedule
void reschedule(Space &home, Propagator &p, PropCond pc)
Re-schedule propagator p.
Definition int.cpp:368
Gecode::Int::IntVarImp::inter_r
ModEvent inter_r(Space &home, I &i, bool depends=true)
Intersect domain with ranges described by i.
Definition int.hpp:670
Gecode::Int::IntVarImp::IntVarImpFwd
friend class IntVarImpFwd
Definition var-imp.hpp:90
Gecode::Int::IntVarImp::minus_r
ModEvent minus_r(Space &home, I &i, bool depends=true)
Remove from domain the ranges described by i.
Definition int.hpp:678
Gecode::Int::IntVarImp::gq
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
Definition int.hpp:344
Gecode::Int::IntVarImp::ranges_fwd
const RangeList * ranges_fwd(void) const
Return range list for forward iteration.
Definition int.hpp:305
Gecode::Int::IntVarImp::any
static bool any(const Delta &d)
Test whether arbitrary values got pruned.
Definition int.hpp:333
Gecode::Propagator
Base-class for propagators.
Definition core.hpp:1064
Gecode::Space
Computation spaces.
Definition core.hpp:1742
Gecode::VarImp< Gecode::Int::IntVarImpConf >::fail
ModEvent fail(Space &home)
Definition core.hpp:4570
Gecode::VarImp< Gecode::Int::IntVarImpConf >::me
static ModEvent me(const ModEventDelta &med)
Definition core.hpp:4270
int.hpp
GECODE_INT_EXPORT
#define GECODE_INT_EXPORT
Definition int.hh:81
Gecode::ModEventDelta
int ModEventDelta
Modification event deltas.
Definition core.hpp:89
bool.hpp
delta.hpp
Gecode::Int
Finite domain integers.
Gecode::Int::BoolStatus
unsigned int BoolStatus
Type for status of a Boolean variable.
Definition var-imp.hpp:484
Gecode
Gecode toplevel namespace
Gecode::PropCond
int PropCond
Type for propagation conditions.
Definition core.hpp:72
Gecode::ModEvent
int ModEvent
Type for modification events.
Definition core.hpp:62