
Constructors and initialization 
 SetView (void) 
 Default constructor.

 SetView (const SetVar &x) 
 Initialize from set variable x.

 SetView (SetVarImp *x) 
 Initialize from set variable x.

 SetView (Space *home, const Reflection::VarMap &vars, Reflection::Arg *arg) 
 Initialize from specification.

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 (int n) const 
 Return nth 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  assigned (void) const 
 Test whether view is assigned.

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.

Cloning 
void  update (Space *home, bool share, SetView &x) 
 Update this view to be a clone of view x.

Reflection 
Reflection::Arg *  spec (const Space *home, Reflection::VarMap &m) const 
 Return specification for this view, using variable map m.

static Support::Symbol  type (void) 
 Return specification for this view, using variable map m.

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.

Related Functions 
(Note that these are not member functions.)

std::ostream &  operator<< (std::ostream &, const Gecode::Set::SetView &) 
 Print set variable view.
