Generated on Fri Oct 19 11:26:21 2018 for Gecode by doxygen 1.6.3

Gecode::Set::CachedView< View > Class Template Reference
[Set views]

Cached set view. More...

#include <view.hpp>

List of all members.

Public Member Functions

template<class I >
ModEvent excludeI (Space &home, I &iter)
template<class I >
ModEvent includeI (Space &home, I &iter)
template<class I >
ModEvent intersectI (Space &home, I &iter)

Protected Attributes

LUBndSet lubCache
 The cached least upper bound.
GLBndSet glbCache
 The cached greatest lower bound.

Constructors and initialization



 CachedView (void)
 Default constructor.
 CachedView (const View &y)
 Initialize with set view y.

Value access



unsigned int cardMin (void) const
 Return minimum cardinality.
unsigned int cardMax (void) const
 Return maximum cardinality.
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 of 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 number of elements in the greatest lower bound.
unsigned int lubSize (void) const
 Return the number of elements in the least upper bound.
unsigned int unknownSize (void) const
 Return the number of unknown elements.

Domain tests



bool contains (int i) const
 Test whether i is in the greatest lower bound.
bool notContains (int i) const
 Test whether i is not in the least upper bound.

Domain update by value



ModEvent cardMin (Space &home, unsigned int m)
 Restrict cardinality to be greater than or equal to m.
ModEvent cardMax (Space &home, unsigned int m)
 Restrict cardinality to be less than or equal to m.
ModEvent include (Space &home, int i, int j)
 Update greatest lower bound to include all elements between and including i and j.
ModEvent exclude (Space &home, int i, int j)
 Restrict least upper bound to not contain all elements between and including i and j.
ModEvent include (Space &home, int i)
 Update greatest lower bound to contain i.
ModEvent exclude (Space &home, int i)
 Restrict least upper bound to not contain i.
ModEvent intersect (Space &home, int i, int j)
 Update least upper bound to contain at most all elements between and including i and j.
ModEvent intersect (Space &home, int i)
 Update least upper bound to contain at most the element i.

Domain update by range iterator



template<class I >
ModEvent excludeI (Space &home, I &i)
 Remove range sequence described by i from least upper bound.
template<class I >
ModEvent includeI (Space &home, I &i)
 Include range sequence described by i in greatest lower bound.
template<class I >
ModEvent intersectI (Space &home, I &iter)
 Intersect least upper bound with range sequence described by i.

Dependencies



void subscribe (Space &home, Propagator &p, PropCond pc, bool schedule=true)
 Subscribe propagator p with propagation condition pc to view.
void cancel (Space &home, Propagator &p, PropCond pc)
 Cancel subscription of propagator p with propagation condition pc to view.
void subscribe (Space &home, Advisor &a)
 Subscribe advisor a to view.
void cancel (Space &home, Advisor &a)
 Cancel subscription of advisor a.

Delta information for advisors



int glbMin (const Delta &d) const
 Return minimum value just pruned from glb.
int glbMax (const Delta &d) const
 Return maximum value just pruned from glb.
bool glbAny (const Delta &d) const
 Test whether arbitrary values got pruned from glb.
int lubMin (const Delta &d) const
 Return minimum value just pruned from lub.
int lubMax (const Delta &d) const
 Return maximum value just pruned from lub.
bool lubAny (const Delta &d) const
 Test whether arbitrary values got pruned from lub.
static ModEvent modevent (const Delta &d)
 Return modification event.

Domain cache operations



void initCache (Space &home, const IntSet &glb, const IntSet &lub)
 Initialize cache to bounds glb and lub.
void cacheGlb (Space &home)
 Update greatest lower bound cache to current domain.
void cacheLub (Space &home)
 Update least upper bound cache to current domain.
bool glbModified (void) const
 Check whether greatest lower bound cache differs from current domain.
bool lubModified (void) const
 Check whether least upper bound cache differs from current domain.

Cloning



void update (Space &home, CachedView< View > &y)
 Update this view to be a clone of view y.

View-dependent propagator support



static void schedule (Space &home, Propagator &p, ModEvent me)
 Schedule propagator p with modification event me.
static ModEvent me (const ModEventDelta &med)
 Return modification event for view type in med.
static ModEventDelta med (ModEvent)
 Translate modification event me to modification event delta for view.

Detailed Description

template<class View>
class Gecode::Set::CachedView< View >

Cached set view.

A cached set view $s$ for a set view $t$ adds operations for cacheing the current domain of $t$ and comparing the current domain to the cached domain. Cached views make it easy to implement incremental propagation algorithms.

Definition at line 948 of file view.hpp.


Constructor & Destructor Documentation

template<class View >
Gecode::Set::CachedView< View >::CachedView ( void   ) 

Default constructor.

template<class View >
Gecode::Set::CachedView< View >::CachedView ( const View &  y  )  [explicit]

Initialize with set view y.


Member Function Documentation

template<class View >
unsigned int Gecode::Set::CachedView< View >::cardMin ( void   )  const

Return minimum cardinality.

template<class View >
unsigned int Gecode::Set::CachedView< View >::cardMax ( void   )  const

Return maximum cardinality.

template<class View >
int Gecode::Set::CachedView< View >::lubMin ( void   )  const

Return minimum of the least upper bound.

template<class View >
int Gecode::Set::CachedView< View >::lubMax ( void   )  const

Return maximum of the least upper bound.

template<class View >
int Gecode::Set::CachedView< View >::lubMinN ( unsigned int  n  )  const

Return n-th smallest element of the least upper bound.

template<class View >
int Gecode::Set::CachedView< View >::glbMin ( void   )  const

Return minimum of the greatest lower bound.

template<class View >
int Gecode::Set::CachedView< View >::glbMax ( void   )  const

Return maximum of the greatest lower bound.

template<class View >
unsigned int Gecode::Set::CachedView< View >::glbSize ( void   )  const

Return the number of elements in the greatest lower bound.

template<class View >
unsigned int Gecode::Set::CachedView< View >::lubSize ( void   )  const

Return the number of elements in the least upper bound.

template<class View >
unsigned int Gecode::Set::CachedView< View >::unknownSize ( void   )  const

Return the number of unknown elements.

template<class View >
bool Gecode::Set::CachedView< View >::contains ( int  i  )  const

Test whether i is in the greatest lower bound.

template<class View >
bool Gecode::Set::CachedView< View >::notContains ( int  i  )  const

Test whether i is not in the least upper bound.

template<class View >
ModEvent Gecode::Set::CachedView< View >::cardMin ( Space home,
unsigned int  m 
)

Restrict cardinality to be greater than or equal to m.

template<class View >
ModEvent Gecode::Set::CachedView< View >::cardMax ( Space home,
unsigned int  m 
)

Restrict cardinality to be less than or equal to m.

template<class View >
ModEvent Gecode::Set::CachedView< View >::include ( Space home,
int  i,
int  j 
)

Update greatest lower bound to include all elements between and including i and j.

template<class View >
ModEvent Gecode::Set::CachedView< View >::exclude ( Space home,
int  i,
int  j 
)

Restrict least upper bound to not contain all elements between and including i and j.

template<class View >
ModEvent Gecode::Set::CachedView< View >::include ( Space home,
int  i 
)

Update greatest lower bound to contain i.

template<class View >
ModEvent Gecode::Set::CachedView< View >::exclude ( Space home,
int  i 
)

Restrict least upper bound to not contain i.

template<class View >
ModEvent Gecode::Set::CachedView< View >::intersect ( Space home,
int  i,
int  j 
)

Update least upper bound to contain at most all elements between and including i and j.

template<class View >
ModEvent Gecode::Set::CachedView< View >::intersect ( Space home,
int  i 
)

Update least upper bound to contain at most the element i.

template<class View >
template<class I >
ModEvent Gecode::Set::CachedView< View >::excludeI ( Space home,
I &  i 
) [inline]

Remove range sequence described by i from least upper bound.

template<class View >
template<class I >
ModEvent Gecode::Set::CachedView< View >::includeI ( Space home,
I &  i 
) [inline]

Include range sequence described by i in greatest lower bound.

template<class View >
template<class I >
ModEvent Gecode::Set::CachedView< View >::intersectI ( Space home,
I &  iter 
) [inline]

Intersect least upper bound with range sequence described by i.

template<class View >
static void Gecode::Set::CachedView< View >::schedule ( Space home,
Propagator p,
ModEvent  me 
) [static]

Schedule propagator p with modification event me.

Reimplemented from Gecode::DerivedView< View >.

template<class View >
static ModEvent Gecode::Set::CachedView< View >::me ( const ModEventDelta med  )  [static]

Return modification event for view type in med.

Reimplemented from Gecode::DerivedView< View >.

template<class View >
static ModEventDelta Gecode::Set::CachedView< View >::med ( ModEvent   )  [static]

Translate modification event me to modification event delta for view.

Reimplemented from Gecode::DerivedView< View >.

template<class View >
void Gecode::Set::CachedView< View >::subscribe ( Space home,
Propagator p,
PropCond  pc,
bool  schedule = true 
)

Subscribe propagator p with propagation condition pc to view.

In case schedule is false, the propagator is just subscribed but not scheduled for execution (this must be used when creating subscriptions during propagation).

Reimplemented from Gecode::DerivedView< View >.

template<class View >
void Gecode::Set::CachedView< View >::cancel ( Space home,
Propagator p,
PropCond  pc 
)

Cancel subscription of propagator p with propagation condition pc to view.

Reimplemented from Gecode::DerivedView< View >.

template<class View >
void Gecode::Set::CachedView< View >::subscribe ( Space home,
Advisor a 
)

Subscribe advisor a to view.

template<class View >
void Gecode::Set::CachedView< View >::cancel ( Space home,
Advisor a 
)

Cancel subscription of advisor a.

template<class View >
static ModEvent Gecode::Set::CachedView< View >::modevent ( const Delta d  )  [static]

Return modification event.

Reimplemented from Gecode::DerivedView< View >.

template<class View >
int Gecode::Set::CachedView< View >::glbMin ( const Delta d  )  const

Return minimum value just pruned from glb.

template<class View >
int Gecode::Set::CachedView< View >::glbMax ( const Delta d  )  const

Return maximum value just pruned from glb.

template<class View >
bool Gecode::Set::CachedView< View >::glbAny ( const Delta d  )  const

Test whether arbitrary values got pruned from glb.

template<class View >
int Gecode::Set::CachedView< View >::lubMin ( const Delta d  )  const

Return minimum value just pruned from lub.

template<class View >
int Gecode::Set::CachedView< View >::lubMax ( const Delta d  )  const

Return maximum value just pruned from lub.

template<class View >
bool Gecode::Set::CachedView< View >::lubAny ( const Delta d  )  const

Test whether arbitrary values got pruned from lub.

template<class View >
void Gecode::Set::CachedView< View >::initCache ( Space home,
const IntSet glb,
const IntSet lub 
)

Initialize cache to bounds glb and lub.

template<class View >
void Gecode::Set::CachedView< View >::cacheGlb ( Space home  ) 

Update greatest lower bound cache to current domain.

template<class View >
void Gecode::Set::CachedView< View >::cacheLub ( Space home  ) 

Update least upper bound cache to current domain.

template<class View >
bool Gecode::Set::CachedView< View >::glbModified ( void   )  const

Check whether greatest lower bound cache differs from current domain.

template<class View >
bool Gecode::Set::CachedView< View >::lubModified ( void   )  const

Check whether least upper bound cache differs from current domain.

template<class View >
void Gecode::Set::CachedView< View >::update ( Space home,
CachedView< View > &  y 
)

Update this view to be a clone of view y.

template<class View >
template<class I >
ModEvent Gecode::Set::CachedView< View >::excludeI ( Space home,
I &  iter 
) [inline]

Definition at line 159 of file cached.hpp.

template<class View >
template<class I >
ModEvent Gecode::Set::CachedView< View >::includeI ( Space home,
I &  iter 
) [inline]

Definition at line 165 of file cached.hpp.

template<class View >
template<class I >
ModEvent Gecode::Set::CachedView< View >::intersectI ( Space home,
I &  iter 
) [inline]

Definition at line 171 of file cached.hpp.


Member Data Documentation

template<class View >
LUBndSet Gecode::Set::CachedView< View >::lubCache [protected]

The cached least upper bound.

Definition at line 955 of file view.hpp.

template<class View >
GLBndSet Gecode::Set::CachedView< View >::glbCache [protected]

The cached greatest lower bound.

Definition at line 957 of file view.hpp.


The documentation for this class was generated from the following files: