Generated on Sat Feb 7 2015 02:01:36 for Gecode by doxygen 1.8.9.1

Functions

void Gecode::element (Home home, SetOpType op, const SetVarArgs &x, SetVar y, SetVar z, const IntSet &u=IntSet(Set::Limits::min, Set::Limits::max))
 Post propagator for $ z=\diamond_{\mathit{op}}\langle x_0,\dots,x_{n-1}\rangle[y] $. More...
 
void Gecode::element (Home home, SetOpType op, const IntVarArgs &x, SetVar y, SetVar z, const IntSet &u=IntSet(Set::Limits::min, Set::Limits::max))
 Post propagator for $ z=\diamond_{\mathit{op}}\langle \{x_0\},\dots,\{x_{n-1}\}\rangle[y] $. More...
 
void Gecode::element (Home home, SetOpType op, const IntSetArgs &x, SetVar y, SetVar z, const IntSet &u=IntSet(Set::Limits::min, Set::Limits::max))
 Post propagator for $ z=\diamond_{\mathit{op}}\langle x_0,\dots,x_{n-1}\rangle[y] $. More...
 
void Gecode::element (Home home, SetOpType op, const IntArgs &x, SetVar y, SetVar z, const IntSet &u=IntSet(Set::Limits::min, Set::Limits::max))
 Post propagator for $ z=\diamond_{\mathit{op}}\langle \{x_0\},\dots,\{x_{n-1}\}\rangle[y] $. More...
 
void Gecode::element (Home home, const SetVarArgs &x, IntVar y, SetVar z)
 Post propagator for $ z=\langle x_0,\dots,x_{n-1}\rangle[y] $. More...
 
void Gecode::element (Home home, const IntSetArgs &s, IntVar y, SetVar z)
 Post propagator for $ z=\langle s_0,\dots,s_{n-1}\rangle[y] $. More...
 
void Gecode::element (Home home, const IntSetArgs &a, IntVar x, int w, IntVar y, int h, SetVar z)
 Post propagator for $ a_{x+w\cdot y}=z$. More...
 
void Gecode::element (Home home, const SetVarArgs &a, IntVar x, int w, IntVar y, int h, SetVar z)
 Post propagator for $ a_{x+w\cdot y}=z$. More...
 

Detailed Description

An element constraint selects zero, one or more elements out of a sequence. We write $ \langle x_0,\dots, x_{n-1} \rangle $ for the sequence, and $ [y] $ for the index variable.

Set element constraints are closely related to the element constraint on integer variables.

Function Documentation

void Gecode::element ( Home  home,
SetOpType  op,
const SetVarArgs x,
SetVar  y,
SetVar  z,
const IntSet u = IntSet(Set::Limits::minSet::Limits::max) 
)

Post propagator for $ z=\diamond_{\mathit{op}}\langle x_0,\dots,x_{n-1}\rangle[y] $.

If y is the empty set, the usual conventions for set operations apply: an empty union is empty, while an empty intersection is the universe, which can be given as the optional parameter u.

The indices for y start at 0.

Definition at line 56 of file element.cpp.

void Gecode::element ( Home  home,
SetOpType  op,
const IntVarArgs x,
SetVar  y,
SetVar  z,
const IntSet u = IntSet(Set::Limits::minSet::Limits::max) 
)

Post propagator for $ z=\diamond_{\mathit{op}}\langle \{x_0\},\dots,\{x_{n-1}\}\rangle[y] $.

If y is the empty set, the usual conventions for set operations apply: an empty union is empty, while an empty intersection is the universe, which can be given as the optional parameter u.

The indices for y start at 0.

Definition at line 96 of file element.cpp.

void Gecode::element ( Home  home,
SetOpType  op,
const IntSetArgs x,
SetVar  y,
SetVar  z,
const IntSet u = IntSet(Set::Limits::minSet::Limits::max) 
)

Post propagator for $ z=\diamond_{\mathit{op}}\langle x_0,\dots,x_{n-1}\rangle[y] $.

If y is the empty set, the usual conventions for set operations apply: an empty union is empty, while an empty intersection is the universe, which can be given as the optional parameter u.

The indices for y start at 0.

Definition at line 136 of file element.cpp.

void Gecode::element ( Home  home,
SetOpType  op,
const IntArgs x,
SetVar  y,
SetVar  z,
const IntSet u = IntSet(Set::Limits::minSet::Limits::max) 
)

Post propagator for $ z=\diamond_{\mathit{op}}\langle \{x_0\},\dots,\{x_{n-1}\}\rangle[y] $.

If y is the empty set, the usual conventions for set operations apply: an empty union is empty, while an empty intersection is the universe, which can be given as the optional parameter u.

The indices for y start at 0.

Definition at line 181 of file element.cpp.

void Gecode::element ( Home  home,
const SetVarArgs x,
IntVar  y,
SetVar  z 
)

Post propagator for $ z=\langle x_0,\dots,x_{n-1}\rangle[y] $.

The indices for y start at 0.

Definition at line 190 of file element.cpp.

void Gecode::element ( Home  home,
const IntSetArgs s,
IntVar  y,
SetVar  z 
)

Post propagator for $ z=\langle s_0,\dots,s_{n-1}\rangle[y] $.

The indices for y start at 0.

Definition at line 205 of file element.cpp.

void Gecode::element ( Home  home,
const IntSetArgs a,
IntVar  x,
int  w,
IntVar  y,
int  h,
SetVar  z 
)

Post propagator for $ a_{x+w\cdot y}=z$.

Throws an exception of type Set::ArgumentSizeMismatch, if $ w\cdot h\neq|a|$.

Definition at line 231 of file element.cpp.

void Gecode::element ( Home  home,
const SetVarArgs a,
IntVar  x,
int  w,
IntVar  y,
int  h,
SetVar  z 
)

Post propagator for $ a_{x+w\cdot y}=z$.

Throws an exception of type Set::ArgumentSizeMismatch, if $ w\cdot h\neq|a|$.

Definition at line 242 of file element.cpp.