SetVarImp (Space &home)
Initialize with empty lower and full upper bound.
SetVarImp (Space &home, int glbMin , int glbMax , int lubMin , int lubMax , unsigned int cardMin =0, unsigned int cardMax =Limits::card )
Initialize with given bounds and cardinality.
SetVarImp (Space &home, const IntSet &glbD, int lubMin , int lubMax , unsigned int cardMin , unsigned int cardMax )
Initialize with given bounds and cardinality.
SetVarImp (Space &home, int glbMin , int glbMax , const IntSet &lubD, unsigned int cardMin , unsigned int cardMax )
Initialize with given bounds and cardinality.
SetVarImp (Space &home, const IntSet &glbD, const IntSet &lubD, unsigned int cardMin , unsigned int cardMax )
Initialize with given bounds and cardinality.
unsigned int cardMin (void) const
Return current cardinality minimum.
unsigned int cardMax (void) const
Return current cardinality maximum.
int lubMin (void) const
Return minimum of the least upper bound.
int lubMax (void) const
Return maximum of the least upper bound.
int lubMinN (unsigned int n) const
Return n -th smallest element in the least upper bound.
int glbMin (void) const
Return minimum of the greatest lower bound.
int glbMax (void) const
Return maximum of the greatest lower bound.
unsigned int glbSize (void) const
Return the size of the greatest lower bound.
unsigned int lubSize (void) const
Return the size of the least upper bound.
ModEvent include (Space &home, int n)
Include n in the greatest lower bound.
ModEvent include (Space &home, int i, int j)
Include the range in the greatest lower bound.
ModEvent exclude (Space &home, int n)
Exclude n from the least upper bound.
ModEvent exclude (Space &home, int i, int j)
Exclude the range from the least upper bound.
ModEvent intersect (Space &home, int n)
Exclude everything but n from the least upper bound.
ModEvent intersect (Space &home, int i, int j)
Exclude everything but the range from the least upper bound.
ModEvent cardMin (Space &home, unsigned int n)
Restrict cardinality to be at least n.
ModEvent cardMax (Space &home, unsigned int n)
Restrict cardinality to be at most n.
SetVarImpBase (void)
Constructor for creating static instance of variable.
SetVarImpBase (Gecode::Space &home)
Constructor for creating variable.
void subscribe (Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned, bool schedule )
Subscribe propagator p with propagation condition pc .
void subscribe (Gecode::Space &home, Gecode::Advisor &a, bool assigned, bool failed)
Subscribe advisor a if assigned is false.
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 information d .
void reschedule (Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned)
Re-schedule propagator p .
VarImp (Space &home)
Creation.
void subscribe (Space &home, Propagator &p, PropCond pc, bool assigned, ModEvent me , bool schedule )
Subscribe propagator p with propagation condition pc .
unsigned int degree (void) const
Return degree (number of subscribed propagators and advisors)
double afc (void) const
Return accumulated failure count (plus degree)
bool copied (void) const
Is variable already copied.
VarImp * forward (void) const
Use forward pointer if variable already copied.
unsigned int bits (void) const
Provide access to free bits.
static void schedule (Gecode::Space &home, Gecode::Propagator &p, Gecode::ModEvent me )
Schedule propagator p .
static void schedule (Space &home, Propagator &p, ModEvent me , bool force=false)
Schedule propagator p with modification event me .
static void reschedule (Space &home, Propagator &p, PropCond pc, bool assigned, ModEvent me )
Schedule propagator p .
static ModEvent me (const ModEventDelta &med )
Project modification event for this variable type from med .
static ModEventDelta med (ModEvent me )
Translate modification event me into modification event delta.
static ModEvent me_combine (ModEvent me1, ModEvent me2)
Combine modifications events me1 and me2 .
static ModEvent modevent (const Delta &d)
Return modification event.
static void * operator new (size_t, Space &)
Allocate memory from space.
static void operator delete (void *, Space &)
Return memory to space.
ActorLink ** base
Subscribed actors.
VarImp < Gecode::Set::SetVarImpConf > * fwd
Forwarding pointer.
unsigned int idx [pc_max+1]
Indices of subscribed actors.
VarImp < Gecode::Set::SetVarImpConf > * next
During cloning, points to the next copied variable.
Finite integer set variable implementation.
Definition at line 430 of file var-imp.hpp .