var-imp.hpp
Go to the documentation of this file.
/*
* CAUTION:
* This file has been automatically generated. Do not edit,
* edit the following files instead:
* - ./gecode/int/var-imp/int.vis
* - ./gecode/int/var-imp/bool.vis
* - ./gecode/set/var-imp/set.vis
* - ./gecode/float/var-imp/float.vis
*
* This file contains generated code fragments which are
* copyrighted as follows:
*
* Main author:
* Christian Schulte <schulte@gecode.org>
*
* Copyright:
* Christian Schulte, 2007
*
* The generated code fragments are 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.
*
*/
#ifdef GECODE_HAS_INT_VARS
namespace Gecode { namespace Int {
class IntVarImpBase : public Gecode::VarImp<Gecode::Int::IntVarImpConf> {
protected:
IntVarImpBase(Gecode::Space& home, IntVarImpBase& x);
public:
IntVarImpBase(void);
IntVarImpBase(Gecode::Space& home);
void subscribe(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned, bool schedule);
void subscribe(Gecode::Space& home, Gecode::Advisor& a, bool assigned, bool failed);
Gecode::ModEvent notify(Gecode::Space& home, Gecode::ModEvent me, Gecode::Delta& d);
static void schedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::ModEvent me);
void reschedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned);
};
}}
#endif
#ifdef GECODE_HAS_INT_VARS
namespace Gecode { namespace Int {
class BoolVarImpBase : public Gecode::VarImp<Gecode::Int::BoolVarImpConf> {
protected:
BoolVarImpBase(Gecode::Space& home, BoolVarImpBase& x);
public:
BoolVarImpBase(void);
BoolVarImpBase(Gecode::Space& home);
void subscribe(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned, bool schedule);
void subscribe(Gecode::Space& home, Gecode::Advisor& a, bool assigned, bool failed);
Gecode::ModEvent notify(Gecode::Space& home, Gecode::ModEvent me, Gecode::Delta& d);
static void schedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::ModEvent me);
void reschedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned);
};
}}
#endif
#ifdef GECODE_HAS_SET_VARS
namespace Gecode { namespace Set {
class SetVarImpBase : public Gecode::VarImp<Gecode::Set::SetVarImpConf> {
protected:
SetVarImpBase(Gecode::Space& home, SetVarImpBase& x);
public:
SetVarImpBase(void);
SetVarImpBase(Gecode::Space& home);
void subscribe(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned, bool schedule);
void subscribe(Gecode::Space& home, Gecode::Advisor& a, bool assigned, bool failed);
Gecode::ModEvent notify(Gecode::Space& home, Gecode::ModEvent me, Gecode::Delta& d);
static void schedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::ModEvent me);
void reschedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned);
};
}}
#endif
#ifdef GECODE_HAS_FLOAT_VARS
namespace Gecode { namespace Float {
class FloatVarImpBase : public Gecode::VarImp<Gecode::Float::FloatVarImpConf> {
protected:
FloatVarImpBase(Gecode::Space& home, FloatVarImpBase& x);
public:
FloatVarImpBase(void);
FloatVarImpBase(Gecode::Space& home);
void subscribe(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned, bool schedule);
void subscribe(Gecode::Space& home, Gecode::Advisor& a, bool assigned, bool failed);
Gecode::ModEvent notify(Gecode::Space& home, Gecode::ModEvent me, Gecode::Delta& d);
static void schedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::ModEvent me);
void reschedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned);
};
}}
#endif
#ifdef GECODE_HAS_INT_VARS
namespace Gecode { namespace Int {
forceinline
IntVarImpBase::IntVarImpBase(void) {}
forceinline
IntVarImpBase::IntVarImpBase(Gecode::Space& home)
: Gecode::VarImp<Gecode::Int::IntVarImpConf>(home) {}
forceinline
IntVarImpBase::IntVarImpBase(Gecode::Space& home, IntVarImpBase& x)
: Gecode::VarImp<Gecode::Int::IntVarImpConf>(home,x) {}
forceinline void
IntVarImpBase::subscribe(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned, bool schedule) {
Gecode::VarImp<Gecode::Int::IntVarImpConf>::subscribe(home,p,pc,assigned,ME_INT_BND,schedule);
}
forceinline void
IntVarImpBase::subscribe(Gecode::Space& home, Gecode::Advisor& a, bool assigned, bool failed) {
Gecode::VarImp<Gecode::Int::IntVarImpConf>::subscribe(home,a,assigned,failed);
}
forceinline void
IntVarImpBase::schedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::ModEvent me) {
Gecode::VarImp<Gecode::Int::IntVarImpConf>::schedule(home,p,me);
}
forceinline void
IntVarImpBase::reschedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned) {
Gecode::VarImp<Gecode::Int::IntVarImpConf>::reschedule(home,p,pc,assigned,ME_INT_BND);
}
forceinline Gecode::ModEvent
IntVarImpBase::notify(Gecode::Space& home, Gecode::ModEvent me, Gecode::Delta& d) {
switch (me) {
case ME_INT_VAL:
// Conditions: VAL, BND, DOM
Gecode::VarImp<Gecode::Int::IntVarImpConf>::schedule(home,PC_INT_VAL,PC_INT_DOM,ME_INT_VAL);
if (!Gecode::VarImp<Gecode::Int::IntVarImpConf>::advise(home,ME_INT_VAL,d))
return ME_INT_FAILED;
cancel(home);
break;
case ME_INT_BND:
// Conditions: BND, DOM
Gecode::VarImp<Gecode::Int::IntVarImpConf>::schedule(home,PC_INT_BND,PC_INT_DOM,ME_INT_BND);
if (!Gecode::VarImp<Gecode::Int::IntVarImpConf>::advise(home,ME_INT_BND,d))
return ME_INT_FAILED;
break;
case ME_INT_DOM:
// Conditions: DOM
Gecode::VarImp<Gecode::Int::IntVarImpConf>::schedule(home,PC_INT_DOM,PC_INT_DOM,ME_INT_DOM);
if (!Gecode::VarImp<Gecode::Int::IntVarImpConf>::advise(home,ME_INT_DOM,d))
return ME_INT_FAILED;
break;
default: GECODE_NEVER;
}
return me;
}
}}
#endif
#ifdef GECODE_HAS_INT_VARS
namespace Gecode { namespace Int {
forceinline
BoolVarImpBase::BoolVarImpBase(void) {}
forceinline
BoolVarImpBase::BoolVarImpBase(Gecode::Space& home)
: Gecode::VarImp<Gecode::Int::BoolVarImpConf>(home) {}
forceinline
BoolVarImpBase::BoolVarImpBase(Gecode::Space& home, BoolVarImpBase& x)
: Gecode::VarImp<Gecode::Int::BoolVarImpConf>(home,x) {}
forceinline void
BoolVarImpBase::subscribe(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned, bool schedule) {
Gecode::VarImp<Gecode::Int::BoolVarImpConf>::subscribe(home,p,pc,assigned,ME_BOOL_VAL,schedule);
}
forceinline void
BoolVarImpBase::subscribe(Gecode::Space& home, Gecode::Advisor& a, bool assigned, bool failed) {
Gecode::VarImp<Gecode::Int::BoolVarImpConf>::subscribe(home,a,assigned,failed);
}
forceinline void
BoolVarImpBase::schedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::ModEvent me) {
Gecode::VarImp<Gecode::Int::BoolVarImpConf>::schedule(home,p,me);
}
forceinline void
BoolVarImpBase::reschedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned) {
Gecode::VarImp<Gecode::Int::BoolVarImpConf>::reschedule(home,p,pc,assigned,ME_BOOL_VAL);
}
forceinline Gecode::ModEvent
BoolVarImpBase::notify(Gecode::Space& home, Gecode::ModEvent, Gecode::Delta& d) {
Gecode::VarImp<Gecode::Int::BoolVarImpConf>::schedule(home,PC_BOOL_VAL,PC_BOOL_VAL,ME_BOOL_VAL);
if (!Gecode::VarImp<Gecode::Int::BoolVarImpConf>::advise(home,ME_BOOL_VAL,d))
return ME_BOOL_FAILED;
cancel(home);
return ME_BOOL_VAL;
}
}}
#endif
#ifdef GECODE_HAS_SET_VARS
namespace Gecode { namespace Set {
forceinline
SetVarImpBase::SetVarImpBase(void) {}
forceinline
SetVarImpBase::SetVarImpBase(Gecode::Space& home)
: Gecode::VarImp<Gecode::Set::SetVarImpConf>(home) {}
forceinline
SetVarImpBase::SetVarImpBase(Gecode::Space& home, SetVarImpBase& x)
: Gecode::VarImp<Gecode::Set::SetVarImpConf>(home,x) {}
forceinline void
SetVarImpBase::subscribe(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned, bool schedule) {
Gecode::VarImp<Gecode::Set::SetVarImpConf>::subscribe(home,p,pc,assigned,ME_SET_CBB,schedule);
}
forceinline void
SetVarImpBase::subscribe(Gecode::Space& home, Gecode::Advisor& a, bool assigned, bool failed) {
Gecode::VarImp<Gecode::Set::SetVarImpConf>::subscribe(home,a,assigned,failed);
}
forceinline void
SetVarImpBase::schedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::ModEvent me) {
Gecode::VarImp<Gecode::Set::SetVarImpConf>::schedule(home,p,me);
}
forceinline void
SetVarImpBase::reschedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned) {
Gecode::VarImp<Gecode::Set::SetVarImpConf>::reschedule(home,p,pc,assigned,ME_SET_CBB);
}
forceinline Gecode::ModEvent
SetVarImpBase::notify(Gecode::Space& home, Gecode::ModEvent me, Gecode::Delta& d) {
switch (me) {
case ME_SET_VAL:
// Conditions: VAL, CARD, CLUB, CGLB, ANY
Gecode::VarImp<Gecode::Set::SetVarImpConf>::schedule(home,PC_SET_VAL,PC_SET_ANY,ME_SET_VAL);
if (!Gecode::VarImp<Gecode::Set::SetVarImpConf>::advise(home,ME_SET_VAL,d))
return ME_SET_FAILED;
cancel(home);
break;
case ME_SET_CARD:
// Conditions: CARD, CLUB, CGLB, ANY
Gecode::VarImp<Gecode::Set::SetVarImpConf>::schedule(home,PC_SET_CARD,PC_SET_ANY,ME_SET_CARD);
if (!Gecode::VarImp<Gecode::Set::SetVarImpConf>::advise(home,ME_SET_CARD,d))
return ME_SET_FAILED;
break;
case ME_SET_LUB:
// Conditions: CLUB, ANY
Gecode::VarImp<Gecode::Set::SetVarImpConf>::schedule(home,PC_SET_CLUB,PC_SET_CLUB,ME_SET_LUB);
Gecode::VarImp<Gecode::Set::SetVarImpConf>::schedule(home,PC_SET_ANY,PC_SET_ANY,ME_SET_LUB);
if (!Gecode::VarImp<Gecode::Set::SetVarImpConf>::advise(home,ME_SET_LUB,d))
return ME_SET_FAILED;
break;
case ME_SET_GLB:
// Conditions: CGLB, ANY
Gecode::VarImp<Gecode::Set::SetVarImpConf>::schedule(home,PC_SET_CGLB,PC_SET_ANY,ME_SET_GLB);
if (!Gecode::VarImp<Gecode::Set::SetVarImpConf>::advise(home,ME_SET_GLB,d))
return ME_SET_FAILED;
break;
case ME_SET_BB:
// Conditions: CLUB, CGLB, ANY
Gecode::VarImp<Gecode::Set::SetVarImpConf>::schedule(home,PC_SET_CLUB,PC_SET_ANY,ME_SET_BB);
if (!Gecode::VarImp<Gecode::Set::SetVarImpConf>::advise(home,ME_SET_BB,d))
return ME_SET_FAILED;
break;
case ME_SET_CLUB:
// Conditions: CARD, CLUB, CGLB, ANY
Gecode::VarImp<Gecode::Set::SetVarImpConf>::schedule(home,PC_SET_CARD,PC_SET_ANY,ME_SET_CLUB);
if (!Gecode::VarImp<Gecode::Set::SetVarImpConf>::advise(home,ME_SET_CLUB,d))
return ME_SET_FAILED;
break;
case ME_SET_CGLB:
// Conditions: CARD, CLUB, CGLB, ANY
Gecode::VarImp<Gecode::Set::SetVarImpConf>::schedule(home,PC_SET_CARD,PC_SET_ANY,ME_SET_CGLB);
if (!Gecode::VarImp<Gecode::Set::SetVarImpConf>::advise(home,ME_SET_CGLB,d))
return ME_SET_FAILED;
break;
case ME_SET_CBB:
// Conditions: CARD, CLUB, CGLB, ANY
Gecode::VarImp<Gecode::Set::SetVarImpConf>::schedule(home,PC_SET_CARD,PC_SET_ANY,ME_SET_CBB);
if (!Gecode::VarImp<Gecode::Set::SetVarImpConf>::advise(home,ME_SET_CBB,d))
return ME_SET_FAILED;
break;
default: GECODE_NEVER;
}
return me;
}
}}
#endif
#ifdef GECODE_HAS_FLOAT_VARS
namespace Gecode { namespace Float {
forceinline
FloatVarImpBase::FloatVarImpBase(void) {}
forceinline
FloatVarImpBase::FloatVarImpBase(Gecode::Space& home)
: Gecode::VarImp<Gecode::Float::FloatVarImpConf>(home) {}
forceinline
FloatVarImpBase::FloatVarImpBase(Gecode::Space& home, FloatVarImpBase& x)
: Gecode::VarImp<Gecode::Float::FloatVarImpConf>(home,x) {}
forceinline void
FloatVarImpBase::subscribe(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned, bool schedule) {
Gecode::VarImp<Gecode::Float::FloatVarImpConf>::subscribe(home,p,pc,assigned,ME_FLOAT_BND,schedule);
}
forceinline void
FloatVarImpBase::subscribe(Gecode::Space& home, Gecode::Advisor& a, bool assigned, bool failed) {
Gecode::VarImp<Gecode::Float::FloatVarImpConf>::subscribe(home,a,assigned,failed);
}
forceinline void
FloatVarImpBase::schedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::ModEvent me) {
Gecode::VarImp<Gecode::Float::FloatVarImpConf>::schedule(home,p,me);
}
forceinline void
FloatVarImpBase::reschedule(Gecode::Space& home, Gecode::Propagator& p, Gecode::PropCond pc, bool assigned) {
Gecode::VarImp<Gecode::Float::FloatVarImpConf>::reschedule(home,p,pc,assigned,ME_FLOAT_BND);
}
forceinline Gecode::ModEvent
FloatVarImpBase::notify(Gecode::Space& home, Gecode::ModEvent me, Gecode::Delta& d) {
switch (me) {
case ME_FLOAT_VAL:
// Conditions: VAL, BND
Gecode::VarImp<Gecode::Float::FloatVarImpConf>::schedule(home,PC_FLOAT_VAL,PC_FLOAT_BND,ME_FLOAT_VAL);
if (!Gecode::VarImp<Gecode::Float::FloatVarImpConf>::advise(home,ME_FLOAT_VAL,d))
return ME_FLOAT_FAILED;
cancel(home);
break;
case ME_FLOAT_BND:
// Conditions: BND
Gecode::VarImp<Gecode::Float::FloatVarImpConf>::schedule(home,PC_FLOAT_BND,PC_FLOAT_BND,ME_FLOAT_BND);
if (!Gecode::VarImp<Gecode::Float::FloatVarImpConf>::advise(home,ME_FLOAT_BND,d))
return ME_FLOAT_FAILED;
break;
default: GECODE_NEVER;
}
return me;
}
}}
#endif
namespace Gecode {
forceinline void
Space::update(ActorLink** sub) {
#ifdef GECODE_HAS_INT_VARS
Gecode::VarImp<Gecode::Int::IntVarImpConf>::update(*this,sub);
#endif
#ifdef GECODE_HAS_INT_VARS
Gecode::VarImp<Gecode::Int::BoolVarImpConf>::update(*this,sub);
#endif
#ifdef GECODE_HAS_SET_VARS
Gecode::VarImp<Gecode::Set::SetVarImpConf>::update(*this,sub);
#endif
#ifdef GECODE_HAS_FLOAT_VARS
Gecode::VarImp<Gecode::Float::FloatVarImpConf>::update(*this,sub);
#endif
}
}
// STATISTICS: kernel-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::Float::FloatVarImpBase::subscribe
void subscribe(Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned, bool schedule)
Subscribe propagator p with propagation condition pc.
Definition var-imp.hpp:439
Gecode::Float::FloatVarImpBase::FloatVarImpBase
FloatVarImpBase(Gecode::Space &home, FloatVarImpBase &x)
Constructor for cloning x.
Definition var-imp.hpp:435
Gecode::Float::FloatVarImpBase::FloatVarImpBase
FloatVarImpBase(void)
Constructor for creating static instance of variable.
Definition var-imp.hpp:428
Gecode::Float::FloatVarImpBase::schedule
static void schedule(Gecode::Space &home, Gecode::Propagator &p, Gecode::ModEvent me)
Schedule propagator p.
Definition var-imp.hpp:448
Gecode::Float::FloatVarImpBase::notify
Gecode::ModEvent notify(Gecode::Space &home, Gecode::ModEvent me, Gecode::Delta &d)
Notify that variable implementation has been modified with modification event me and delta informatio...
Definition var-imp.hpp:457
Gecode::Float::FloatVarImpBase::reschedule
void reschedule(Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned)
Re-schedule propagator p.
Definition var-imp.hpp:452
Gecode::Float::FloatVarImpConf
Configuration for Float-variable implementations.
Definition var-type.hpp:416
Gecode::Int::BoolVarImpBase::BoolVarImpBase
BoolVarImpBase(void)
Constructor for creating static instance of variable.
Definition var-imp.hpp:293
Gecode::Int::BoolVarImpBase::notify
Gecode::ModEvent notify(Gecode::Space &home, Gecode::ModEvent me, Gecode::Delta &d)
Notify that variable implementation has been modified with modification event me and delta informatio...
Definition var-imp.hpp:322
Gecode::Int::BoolVarImpBase::subscribe
void subscribe(Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned, bool schedule)
Subscribe propagator p with propagation condition pc.
Definition var-imp.hpp:304
Gecode::Int::BoolVarImpBase::BoolVarImpBase
BoolVarImpBase(Gecode::Space &home, BoolVarImpBase &x)
Constructor for cloning x.
Definition var-imp.hpp:300
Gecode::Int::BoolVarImpBase::schedule
static void schedule(Gecode::Space &home, Gecode::Propagator &p, Gecode::ModEvent me)
Schedule propagator p.
Definition var-imp.hpp:313
Gecode::Int::BoolVarImpBase::reschedule
void reschedule(Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned)
Re-schedule propagator p.
Definition var-imp.hpp:317
Gecode::Int::BoolVarImpConf
Configuration for Bool-variable implementations.
Definition var-type.hpp:338
Gecode::Int::IntVarImpBase::subscribe
void subscribe(Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned, bool schedule)
Subscribe propagator p with propagation condition pc.
Definition var-imp.hpp:243
Gecode::Int::IntVarImpBase::IntVarImpBase
IntVarImpBase(void)
Constructor for creating static instance of variable.
Definition var-imp.hpp:232
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::IntVarImpBase::reschedule
void reschedule(Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned)
Re-schedule propagator p.
Definition var-imp.hpp:256
Gecode::Int::IntVarImpBase::notify
Gecode::ModEvent notify(Gecode::Space &home, Gecode::ModEvent me, Gecode::Delta &d)
Notify that variable implementation has been modified with modification event me and delta informatio...
Definition var-imp.hpp:261
Gecode::Int::IntVarImpConf
Configuration for Int-variable implementations.
Definition var-type.hpp:299
Gecode::Propagator
Base-class for propagators.
Definition core.hpp:1064
Gecode::Set::SetVarImpBase::SetVarImpBase
SetVarImpBase(Gecode::Space &home, SetVarImpBase &x)
Constructor for cloning x.
Definition var-imp.hpp:343
Gecode::Set::SetVarImpBase::reschedule
void reschedule(Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned)
Re-schedule propagator p.
Definition var-imp.hpp:360
Gecode::Set::SetVarImpBase::notify
Gecode::ModEvent notify(Gecode::Space &home, Gecode::ModEvent me, Gecode::Delta &d)
Notify that variable implementation has been modified with modification event me and delta informatio...
Definition var-imp.hpp:365
Gecode::Set::SetVarImpBase::SetVarImpBase
SetVarImpBase(void)
Constructor for creating static instance of variable.
Definition var-imp.hpp:336
Gecode::Set::SetVarImpBase::subscribe
void subscribe(Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned, bool schedule)
Subscribe propagator p with propagation condition pc.
Definition var-imp.hpp:347
Gecode::Set::SetVarImpBase::schedule
static void schedule(Gecode::Space &home, Gecode::Propagator &p, Gecode::ModEvent me)
Schedule propagator p.
Definition var-imp.hpp:356
Gecode::Set::SetVarImpConf
Configuration for Set-variable implementations.
Definition var-type.hpp:377
Gecode::Space
Computation spaces.
Definition core.hpp:1742
Gecode::VarImp
Base-class for variable implementations.
Definition core.hpp:219
Gecode::VarImp::subscribe
void subscribe(Space &home, Propagator &p, PropCond pc, bool assigned, ModEvent me, bool schedule)
Subscribe propagator p with propagation condition pc.
Definition core.hpp:4382
Gecode::VarImp< Gecode::Int::IntVarImpConf >::cancel
void cancel(Space &home)
Definition core.hpp:4487
Gecode::VarImp::advise
bool advise(Space &home, ModEvent me, Delta &d)
Run advisors when variable implementation has been modified with modification event me and domain cha...
Definition core.hpp:4504
Gecode::VarImp::reschedule
static void reschedule(Space &home, Propagator &p, PropCond pc, bool assigned, ModEvent me)
Schedule propagator p.
Definition core.hpp:4407
Gecode::VarImp::schedule
static void schedule(Space &home, Propagator &p, ModEvent me, bool force=false)
Schedule propagator p with modification event me.
Definition core.hpp:4288
Gecode::VarImp< Gecode::Int::IntVarImpConf >::me
static ModEvent me(const ModEventDelta &med)
Definition core.hpp:4270
Gecode::VarImp< Gecode::Int::IntVarImpConf >::VarImp
VarImp(Space &home)
Definition core.hpp:4121
Gecode::Float
Floating point numbers.
Gecode::Float::ME_FLOAT_VAL
const Gecode::ModEvent ME_FLOAT_VAL
Domain operation has resulted in a value (assigned variable).
Definition var-type.hpp:264
Gecode::Float::PC_FLOAT_VAL
const Gecode::PropCond PC_FLOAT_VAL
Propagate when a view becomes assigned (single value).
Definition var-type.hpp:283
Gecode::Float::ME_FLOAT_BND
const Gecode::ModEvent ME_FLOAT_BND
Domain operation has changed the minimum or maximum of the domain.
Definition var-type.hpp:273
Gecode::Float::ME_FLOAT_FAILED
const Gecode::ModEvent ME_FLOAT_FAILED
Domain operation has resulted in failure.
Definition var-type.hpp:260
Gecode::Float::PC_FLOAT_BND
const Gecode::PropCond PC_FLOAT_BND
Propagate when minimum or maximum of a view changes.
Definition var-type.hpp:292
Gecode::Int
Finite domain integers.
Gecode::Int::ME_INT_BND
const Gecode::ModEvent ME_INT_BND
Domain operation has changed the minimum or maximum of the domain.
Definition var-type.hpp:65
Gecode::Int::PC_INT_VAL
const Gecode::PropCond PC_INT_VAL
Propagate when a view becomes assigned (single value).
Definition var-type.hpp:82
Gecode::Int::PC_INT_BND
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
Definition var-type.hpp:91
Gecode::Int::ME_BOOL_FAILED
const Gecode::ModEvent ME_BOOL_FAILED
Domain operation has resulted in failure.
Definition var-type.hpp:112
Gecode::Int::ME_INT_FAILED
const Gecode::ModEvent ME_INT_FAILED
Domain operation has resulted in failure.
Definition var-type.hpp:52
Gecode::Int::ME_BOOL_VAL
const Gecode::ModEvent ME_BOOL_VAL
Domain operation has resulted in a value (assigned variable).
Definition var-type.hpp:116
Gecode::Int::PC_BOOL_VAL
const Gecode::PropCond PC_BOOL_VAL
Propagate when a view becomes assigned (single value).
Definition var-type.hpp:126
Gecode::Int::PC_INT_DOM
const Gecode::PropCond PC_INT_DOM
Propagate when domain changes.
Definition var-type.hpp:100
Gecode::Int::ME_INT_VAL
const Gecode::ModEvent ME_INT_VAL
Domain operation has resulted in a value (assigned variable).
Definition var-type.hpp:56
Gecode::Int::ME_INT_DOM
const Gecode::ModEvent ME_INT_DOM
Domain operation has changed the domain.
Definition var-type.hpp:72
Gecode::Set
Finite integer sets.
Definition var-imp.hpp:137
Gecode::Set::ME_SET_CLUB
const Gecode::ModEvent ME_SET_CLUB
Domain operation has changed the least upper bound and the cardinality.
Definition var-type.hpp:179
Gecode::Set::ME_SET_VAL
const Gecode::ModEvent ME_SET_VAL
Domain operation has resulted in a value (assigned variable).
Definition var-type.hpp:142
Gecode::Set::ME_SET_GLB
const Gecode::ModEvent ME_SET_GLB
Domain operation has changed the greatest lower bound.
Definition var-type.hpp:164
Gecode::Set::ME_SET_CGLB
const Gecode::ModEvent ME_SET_CGLB
Domain operation has changed the greatest lower bound and the cardinality.
Definition var-type.hpp:186
Gecode::Set::PC_SET_CARD
const Gecode::PropCond PC_SET_CARD
Propagate when the cardinality of a view changes.
Definition var-type.hpp:216
Gecode::Set::PC_SET_CLUB
const Gecode::PropCond PC_SET_CLUB
Propagate when the cardinality or the least upper bound of a view changes.
Definition var-type.hpp:227
Gecode::Set::ME_SET_CARD
const Gecode::ModEvent ME_SET_CARD
Domain operation has changed the variable cardinality.
Definition var-type.hpp:148
Gecode::Set::PC_SET_VAL
const Gecode::PropCond PC_SET_VAL
Propagate when a view becomes assigned (single value).
Definition var-type.hpp:207
Gecode::Set::PC_SET_ANY
const Gecode::PropCond PC_SET_ANY
Propagate when any bound or the cardinality of a view changes.
Definition var-type.hpp:248
Gecode::Set::ME_SET_LUB
const Gecode::ModEvent ME_SET_LUB
Domain operation has changed the least upper bound.
Definition var-type.hpp:156
Gecode::Set::ME_SET_BB
const Gecode::ModEvent ME_SET_BB
Domain operation has changed both greatest lower and least upper bound.
Definition var-type.hpp:172
Gecode::Set::ME_SET_FAILED
const Gecode::ModEvent ME_SET_FAILED
Domain operation has resulted in failure.
Definition var-type.hpp:138
Gecode::Set::ME_SET_CBB
const Gecode::ModEvent ME_SET_CBB
Domain operation has changed both the greatest lower bound and the least upper bound,...
Definition var-type.hpp:197
Gecode::Set::PC_SET_CGLB
const Gecode::PropCond PC_SET_CGLB
Propagate when the cardinality or the greatest lower bound of a view changes.
Definition var-type.hpp:238
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
forceinline
#define forceinline
Definition config.hpp:187
GECODE_NEVER
#define GECODE_NEVER
Assert that this command is never executed.
Definition macros.hpp:56