Generated on Wed Nov 1 15:05:15 2006 for Gecode by doxygen 1.4.5

Gecode::Int::IntVarImp Class Reference
[Other available functionality]

Inherits Gecode::Int::IntVarImpBase.

List of all members.


Detailed Description

Integer variable implementation.

Definition at line 40 of file var.icc.

Value access

int min (void) const
 Return minimum of domain.
int max (void) const
 Return maximum of domain.
int val (void) const
 Return assigned value (only if assigned).
int med (void) const
 Return median of domain.
unsigned int size (void) const
 Return size (cardinality) of domain.
unsigned int width (void) const
 Return width of domain (distance between maximum and minimum).
unsigned int regret_min (void) const
 Return regret of domain minimum (distance to next larger value).
unsigned int regret_max (void) const
 Return regret of domain maximum (distance to next smaller value).

Domain tests

bool range (void) const
 Test whether domain is a range.
bool assigned (void) const
 Test whether variable is assigned.
bool in (int n) const
 Test whether n is contained in domain.
bool in (double n) const
 Test whether n is contained in domain.

Domain update by value

ModEvent lq (Space *home, int n)
 Restrict domain values to be less or equal than n.
ModEvent lq (Space *home, double n)
 Restrict domain values to be less or equal than n.
ModEvent gq (Space *home, int n)
 Restrict domain values to be greater or equal than n.
ModEvent gq (Space *home, double n)
 Restrict domain values to be greater or equal than n.
ModEvent nq (Space *home, int n)
 Restrict domain values to be different from n.
ModEvent nq (Space *home, double n)
 Restrict domain values to be different from n.
ModEvent eq (Space *home, int n)
 Restrict domain values to be equal to n.
ModEvent eq (Space *home, double n)
 Restrict domain values to be equal to n.

Domain update by range iterator

template<class I>
ModEvent narrow (Space *home, I &i)
 Replace domain by range sequence described by i.
template<class I>
ModEvent inter (Space *home, I &i)
 Intersect domain with range sequence described by i.
template<class I>
ModEvent minus (Space *home, I &i)
 Remove from domain the range sequence described by i.

Boolean update operations

void t_zero_none (Space *home)
 Assign unassigned variable to zero.
void t_one_none (Space *home)
 Assign unassigned variable to one.

Dependencies

void subscribe (Space *home, Propagator *p, PropCond pc, bool process=true)
 Subscribe propagator p with propagation condition pc to variable.

Cloning

IntVarImpcopy (Space *home, bool share)
 Return copy of this variable.
IntVarImpcopy_bool (Space *home, bool share)
 Return copy of this variable (Boolean).

Range list access for iteration

const RangeListranges_fwd (void) const
 Return range list for forward iteration.
const RangeListranges_bwd (void) const
 Return range list for backward iteration.

Public Member Functions

 IntVarImp (Space *home, int min, int max)
 Initialize with range domain.
 IntVarImp (Space *home, const IntSet &d)
 Initialize with domain specified by d.

Protected Member Functions

RangeListfst (void) const
 Return first element of rangelist.
void fst (RangeList *f)
 Set first element of rangelist.
RangeListlst (void) const
 Return last element of rangelist.
void lst (RangeList *l)
 Set last element of rangelist.
 IntVarImp (Space *home, bool share, IntVarImp &x, bool is_bool)
 Constructor for cloning x (is_bool whether this is a Boolean variable).

Protected Attributes

RangeList dom
 Domain information.
RangeList_lst
 Link the last element.
unsigned int holes
 Size of holes in the domain.

Classes

class  RangeList
 Lists of ranges (intervals). More...


Constructor & Destructor Documentation

Gecode::Int::IntVarImp::IntVarImp Space home,
bool  share,
IntVarImp x,
bool  is_bool
[inline, protected]
 

Constructor for cloning x (is_bool whether this is a Boolean variable).

Definition at line 310 of file imp.cc.

Gecode::Int::IntVarImp::IntVarImp Space home,
int  min,
int  max
[inline]
 

Initialize with range domain.

Definition at line 168 of file imp.icc.

Gecode::Int::IntVarImp::IntVarImp Space home,
const IntSet d
[inline]
 

Initialize with domain specified by d.

Definition at line 172 of file imp.icc.


Member Function Documentation

IntVarImp::RangeList * Gecode::Int::IntVarImp::fst void   )  const [inline, protected]
 

Return first element of rangelist.

Definition at line 143 of file imp.icc.

void Gecode::Int::IntVarImp::fst RangeList f  )  [inline, protected]
 

Set first element of rangelist.

Definition at line 148 of file imp.icc.

IntVarImp::RangeList * Gecode::Int::IntVarImp::lst void   )  const [inline, protected]
 

Return last element of rangelist.

Definition at line 153 of file imp.icc.

void Gecode::Int::IntVarImp::lst RangeList l  )  [inline, protected]
 

Set last element of rangelist.

Definition at line 158 of file imp.icc.

int Gecode::Int::IntVarImp::min void   )  const [inline]
 

Return minimum of domain.

Definition at line 200 of file imp.icc.

int Gecode::Int::IntVarImp::max void   )  const [inline]
 

Return maximum of domain.

Definition at line 204 of file imp.icc.

int Gecode::Int::IntVarImp::val void   )  const [inline]
 

Return assigned value (only if assigned).

Definition at line 208 of file imp.icc.

int Gecode::Int::IntVarImp::med void   )  const
 

Return median of domain.

Definition at line 38 of file imp.cc.

unsigned int Gecode::Int::IntVarImp::size void   )  const [inline]
 

Return size (cardinality) of domain.

Definition at line 229 of file imp.icc.

unsigned int Gecode::Int::IntVarImp::width void   )  const [inline]
 

Return width of domain (distance between maximum and minimum).

Definition at line 224 of file imp.icc.

unsigned int Gecode::Int::IntVarImp::regret_min void   )  const [inline]
 

Return regret of domain minimum (distance to next larger value).

Definition at line 234 of file imp.icc.

unsigned int Gecode::Int::IntVarImp::regret_max void   )  const [inline]
 

Return regret of domain maximum (distance to next smaller value).

Definition at line 244 of file imp.icc.

bool Gecode::Int::IntVarImp::range void   )  const [inline]
 

Test whether domain is a range.

Definition at line 214 of file imp.icc.

bool Gecode::Int::IntVarImp::assigned void   )  const [inline]
 

Test whether variable is assigned.

Definition at line 218 of file imp.icc.

bool Gecode::Int::IntVarImp::in int  n  )  const [inline]
 

Test whether n is contained in domain.

Definition at line 262 of file imp.icc.

bool Gecode::Int::IntVarImp::in double  n  )  const [inline]
 

Test whether n is contained in domain.

Definition at line 268 of file imp.icc.

const IntVarImp::RangeList * Gecode::Int::IntVarImp::ranges_fwd void   )  const [inline, protected]
 

Return range list for forward iteration.

Definition at line 281 of file imp.icc.

const IntVarImp::RangeList * Gecode::Int::IntVarImp::ranges_bwd void   )  const [inline, protected]
 

Return range list for backward iteration.

Definition at line 286 of file imp.icc.

ModEvent Gecode::Int::IntVarImp::lq Space home,
int  n
[inline]
 

Restrict domain values to be less or equal than n.

Definition at line 318 of file imp.icc.

ModEvent Gecode::Int::IntVarImp::lq Space home,
double  n
[inline]
 

Restrict domain values to be less or equal than n.

Definition at line 327 of file imp.icc.

ModEvent Gecode::Int::IntVarImp::gq Space home,
int  n
[inline]
 

Restrict domain values to be greater or equal than n.

Definition at line 298 of file imp.icc.

ModEvent Gecode::Int::IntVarImp::gq Space home,
double  n
[inline]
 

Restrict domain values to be greater or equal than n.

Definition at line 307 of file imp.icc.

ModEvent Gecode::Int::IntVarImp::nq Space home,
int  n
[inline]
 

Restrict domain values to be different from n.

Definition at line 362 of file imp.icc.

ModEvent Gecode::Int::IntVarImp::nq Space home,
double  n
[inline]
 

Restrict domain values to be different from n.

Definition at line 367 of file imp.icc.

ModEvent Gecode::Int::IntVarImp::eq Space home,
int  n
[inline]
 

Restrict domain values to be equal to n.

Definition at line 338 of file imp.icc.

ModEvent Gecode::Int::IntVarImp::eq Space home,
double  n
[inline]
 

Restrict domain values to be equal to n.

Definition at line 349 of file imp.icc.

template<class I>
ModEvent Gecode::Int::IntVarImp::narrow Space home,
I &  i
[inline]
 

Replace domain by range sequence described by i.

Definition at line 380 of file imp.icc.

template<class I>
ModEvent Gecode::Int::IntVarImp::inter Space home,
I &  i
[inline]
 

Intersect domain with range sequence described by i.

Definition at line 553 of file imp.icc.

template<class I>
ModEvent Gecode::Int::IntVarImp::minus Space home,
I &  i
[inline]
 

Remove from domain the range sequence described by i.

Definition at line 561 of file imp.icc.

void Gecode::Int::IntVarImp::t_zero_none Space home  )  [inline]
 

Assign unassigned variable to zero.

Definition at line 457 of file imp.icc.

void Gecode::Int::IntVarImp::t_one_none Space home  )  [inline]
 

Assign unassigned variable to one.

Definition at line 464 of file imp.icc.

void Gecode::Int::IntVarImp::subscribe Space home,
Propagator p,
PropCond  pc,
bool  process = true
[inline]
 

Subscribe propagator p with propagation condition pc to variable.

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

Definition at line 572 of file imp.icc.

IntVarImp * Gecode::Int::IntVarImp::copy Space home,
bool  share
[inline]
 

Return copy of this variable.

Definition at line 439 of file imp.icc.

IntVarImp * Gecode::Int::IntVarImp::copy_bool Space home,
bool  share
[inline]
 

Return copy of this variable (Boolean).

Definition at line 444 of file imp.icc.


Member Data Documentation

RangeList Gecode::Int::IntVarImp::dom [protected]
 

Domain information.

Provides fast access to minimum and maximum of the entire domain and links to the first element of a RangeList defining the domain.

Definition at line 135 of file var.icc.

RangeList* Gecode::Int::IntVarImp::_lst [protected]
 

Link the last element.

Definition at line 137 of file var.icc.

unsigned int Gecode::Int::IntVarImp::holes [protected]
 

Size of holes in the domain.

Definition at line 147 of file var.icc.


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