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

int.hh File Reference

(Revision: 3579)

#include "gecode/limits.hh"
#include "gecode/kernel.hh"
#include <iostream>
#include "gecode/iter.hh"
#include "gecode/support/shared-array.hh"
#include "gecode/int/exception.icc"
#include "gecode/int/int-set.icc"
#include "gecode/int/var.icc"
#include "gecode/int/view.icc"
#include "gecode/int/propagator.icc"
#include "gecode/int/array.icc"
#include "gecode/int/regular/dfa.icc"

Go to the source code of this file.

Namespaces

namespace  Gecode
namespace  Gecode::Int

Classes

class  Gecode::IntSet
 Integer sets. More...
class  Gecode::IntSetRanges
 Range iterator for integer sets. More...
class  Gecode::IntSetValues
 Value iterator for integer sets. More...
class  Gecode::REG
 Regular expressions More...
class  Gecode::DFA
 Deterministic finite automaton. More...
class  Gecode::DFA::Transition
 Specification of a DFA transition. More...

Defines

#define GECODE_INT_EXPORT

Enumerations

enum  Gecode::IntRelType {
  Gecode::IRT_EQ, Gecode::IRT_NQ, Gecode::IRT_LQ, Gecode::IRT_LE,
  Gecode::IRT_GQ, Gecode::IRT_GR
}
 Common relation types for integers. More...
enum  Gecode::IntConLevel { Gecode::ICL_VAL, Gecode::ICL_BND, Gecode::ICL_DOM, Gecode::ICL_DEF }
 Consistency levels for integer propagators. More...
enum  Gecode::BvarSel {
  Gecode::BVAR_NONE, Gecode::BVAR_MIN_MIN, Gecode::BVAR_MIN_MAX, Gecode::BVAR_MAX_MIN,
  Gecode::BVAR_MAX_MAX, Gecode::BVAR_SIZE_MIN, Gecode::BVAR_SIZE_MAX, Gecode::BVAR_DEGREE_MIN,
  Gecode::BVAR_DEGREE_MAX, Gecode::BVAR_REGRET_MIN_MIN, Gecode::BVAR_REGRET_MIN_MAX, Gecode::BVAR_REGRET_MAX_MIN,
  Gecode::BVAR_REGRET_MAX_MAX
}
 Which variable to select for branching. More...
enum  Gecode::BvalSel {
  Gecode::BVAL_MIN, Gecode::BVAL_MED, Gecode::BVAL_MAX, Gecode::BVAL_SPLIT_MIN,
  Gecode::BVAL_SPLIT_MAX
}
 Which values to select first for branching. More...
enum  Gecode::AvalSel { Gecode::AVAL_MIN, Gecode::AVAL_MED, Gecode::AVAL_MAX }
 Which value to select for assignment. More...

Functions

void Gecode::dom (Space *home, IntVar x, int l, int m, IntConLevel=ICL_DEF)
 Propagates $ l\leq x\leq m$.
void Gecode::dom (Space *home, IntVarArgs &x, int l, int m, IntConLevel=ICL_DEF)
 Propagates $ l\leq x_i\leq m$ for all $0\leq i<|x|$.
void Gecode::dom (Space *home, IntVar x, const IntSet &s, IntConLevel=ICL_DEF)
 Propagates $ x\in s $.
void Gecode::dom (Space *home, IntVarArgs &x, const IntSet &s, IntConLevel=ICL_DEF)
 Propagates $ x_i\in s$ for all $0\leq i<|x|$.
void Gecode::dom (Space *home, IntVar x, int l, int m, BoolVar b, IntConLevel=ICL_DEF)
 Post propagator for $ (l\leq x \leq m) \Leftrightarrow b$.
void Gecode::dom (Space *home, IntVar x, const IntSet &s, BoolVar b, IntConLevel=ICL_DEF)
 Post propagator for $ (x \in s) \Leftrightarrow b$.
void Gecode::rel (Space *home, IntVar x0, IntRelType r, IntVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_0 \sim_r x_1$.
void Gecode::rel (Space *home, IntVar x, IntRelType r, int c, IntConLevel icl=ICL_DEF)
 Propagates $ x \sim_r c$.
void Gecode::rel (Space *home, IntVar x0, IntRelType r, IntVar x1, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $ (x_0 \sim_r x_1)\Leftrightarrow b$.
void Gecode::rel (Space *home, IntVar x, IntRelType r, int c, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $(x \sim_r c)\Leftrightarrow b$.
void Gecode::rel (Space *home, const IntVarArgs &x, IntRelType r, const IntVarArgs &y, IntConLevel icl=ICL_DEF)
 Post propagator for relation between x and y.
void Gecode::eq (Space *home, IntVar x0, IntVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_0 = x_1$.
void Gecode::eq (Space *home, IntVar x, int n, IntConLevel=ICL_DEF)
 Propagates $ x = n$.
void Gecode::eq (Space *home, IntVar x0, IntVar x1, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $ (x_0 = x_1)\Leftrightarrow b$.
void Gecode::eq (Space *home, IntVar x, int n, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $ (x=n)\Leftrightarrow b$.
void Gecode::eq (Space *home, const IntVarArgs &x, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_0 = x_1=\ldots =x_{|x|-1}$.
void Gecode::element (Space *home, const IntArgs &n, IntVar x0, IntVar x1, IntConLevel=ICL_DEF)
 Post propagator for $ n_{x_0}=x_1$.
void Gecode::element (Space *home, const IntVarArgs &x, IntVar y0, IntVar y1, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_{y_0}=y_1$.
void Gecode::distinct (Space *home, const IntVarArgs &x, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_i\neq x_j$ for all $0\leq i\neq j<|x|$.
void Gecode::distinct (Space *home, const IntArgs &n, const IntVarArgs &x, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_i+n_i\neq x_j+n_j$ for all $0\leq i\neq j<|x|$.
void Gecode::channel (Space *home, const IntVarArgs &x, const IntVarArgs &y, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_i = j\leftrightarrow y_j=i$ for all $0\leq i<|x|$.
void Gecode::cumulatives (Space *home, const IntVarArgs &machine, const IntVarArgs &start, const IntVarArgs &duration, const IntVarArgs &end, const IntVarArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Space *home, const IntArgs &machine, const IntVarArgs &start, const IntVarArgs &duration, const IntVarArgs &end, const IntVarArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Space *home, const IntVarArgs &machine, const IntVarArgs &start, const IntArgs &duration, const IntVarArgs &end, const IntVarArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Space *home, const IntArgs &machine, const IntVarArgs &start, const IntArgs &duration, const IntVarArgs &end, const IntVarArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Space *home, const IntVarArgs &machine, const IntVarArgs &start, const IntVarArgs &duration, const IntVarArgs &end, const IntArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Space *home, const IntArgs &machine, const IntVarArgs &start, const IntVarArgs &duration, const IntVarArgs &end, const IntArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Space *home, const IntVarArgs &machine, const IntVarArgs &start, const IntArgs &duration, const IntVarArgs &end, const IntArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Space *home, const IntArgs &machine, const IntVarArgs &start, const IntArgs &duration, const IntVarArgs &end, const IntArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::regular (Space *home, const IntVarArgs &x, DFA &d, IntConLevel=ICL_DEF)
 Post propagator for regular constraint.
void Gecode::sortedness (Space *home, const IntVarArgs &x, const IntVarArgs &y, IntConLevel icl=ICL_DEF)
 Post propagator $\exists\pi:\forall i\in\{0,\dots,|x|-1\}: y_0 \leq\dots\leq y_{|x|-1} \wedge x_i=y_{\pi(i)}$.
void Gecode::sortedness (Space *, const IntVarArgs &x, const IntVarArgs &y, const IntVarArgs &z, IntConLevel icl=ICL_DEF)
 Post propagator $\forall i\in\{0,\dots,|x|-1\}: y_0 \leq\dots\leq y_{|x|-1} \wedge x_i=y_{z_i} $
.
void Gecode::count (Space *home, const IntVarArgs &x, int n, IntRelType r, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\sim_r m$.
void Gecode::count (Space *home, const IntVarArgs &x, IntVar y, IntRelType r, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_r m$.
void Gecode::count (Space *home, const IntVarArgs &x, int n, IntRelType r, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\sim_r z$.
void Gecode::count (Space *home, const IntVarArgs &x, IntVar y, IntRelType r, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_r z$.
void Gecode::gcc (Space *home, const IntVarArgs &x, const IntArgs &c, int m, int unspec_low, int unspec_up, int min, int max, IntConLevel icl)
 Post propagator for

\begin{eqnarray*} \forall t=(v, lb, ub) \in c: & & lb \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq ub \\ \forall t=(v, unspec_{low}, unspec_{up}) \not\in c: & & unspec_{low} \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq unspec_{up} \end{eqnarray*}

.

void Gecode::gcc (Space *home, const IntVarArgs &x, const IntArgs &c, int m, int unspec, int min, int max, IntConLevel icl)
 Post propagator for

\begin{eqnarray*} \forall t=(v, lb, ub) \in c: & & lb \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq ub \\ \forall t=(v, 0, unspec) \not\in c: & & 0 \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq unspec \end{eqnarray*}

.

void Gecode::gcc (Space *home, const IntVarArgs &x, int lb, int ub, IntConLevel icl)
 Post propagator for $ \forall v \in \displaystyle \bigcup_{i\in\{0, \dots, |x|-1\}} dom(x_i): lb \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq ub $.
void Gecode::gcc (Space *home, const IntVarArgs &x, int ub, IntConLevel icl)
 Post propagator for $ \forall v \in \displaystyle \bigcup_{i\in\{0, \dots, |x|-1\}} dom(x_i): lb = \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} = ub $.
void Gecode::gcc (Space *home, const IntVarArgs &x, const IntVarArgs &c, int min, int max, IntConLevel icl)
 Post propagator for

\begin{eqnarray*} v_j \in I=[min;max] & & \\ \forall j \in \{0, \dots, |I| - 1\}: & & \#\{i\in\{0, \dots, |x| - 1\} | x_i = v_j\} = c_j \end{eqnarray*}

.

void Gecode::gcc (Space *home, const IntVarArgs &x, const IntArgs &v, const IntVarArgs &c, int m, int unspec_low, int unspec_up, bool all, int min, int max, IntConLevel icl)
 Post propagator for $ \forall j \in \{0, \dots, |v| - 1\}: \#\{i\in\{0, \dots, |x| - 1\} | x_i = v_j\} = c_j $.
void Gecode::gcc (Space *home, const IntVarArgs &x, const IntArgs &v, const IntVarArgs &c, int m, int unspec, bool all, int min, int max, IntConLevel icl)
 Post propagator for $ \forall j \in \{0, \dots, |v| - 1\}: \#\{i\in\{0, \dots, |x| - 1\} | x_i = v_j\} = c_j $.
void Gecode::bool_not (Space *home, BoolVar b0, BoolVar b1, IntConLevel=ICL_DEF)
 Post propagator for $ \lnot b_0 = b_1$.
void Gecode::bool_eq (Space *home, BoolVar b0, BoolVar b1, IntConLevel=ICL_DEF)
 Post propagator for $ b_0 = b_1$.
void Gecode::bool_and (Space *home, BoolVar b0, BoolVar b1, BoolVar b2, IntConLevel=ICL_DEF)
 Post propagator for $ b_0 \land b_1 = b_2 $.
void Gecode::bool_and (Space *home, BoolVar b0, BoolVar b1, bool b2, IntConLevel=ICL_DEF)
 Post propagator for $ b_0 \land b_1 = b_2 $.
void Gecode::bool_and (Space *home, const BoolVarArgs &b, BoolVar c, IntConLevel=ICL_DEF)
 Post propagator for $ \bigwedge_{i=0}^{|b|-1} b_i = c$.
void Gecode::bool_and (Space *home, const BoolVarArgs &b, bool c, IntConLevel=ICL_DEF)
 Post propagator for $ \bigwedge_{i=0}^{|b|-1} b_i = c$.
void Gecode::bool_or (Space *home, BoolVar b0, BoolVar b1, BoolVar b2, IntConLevel=ICL_DEF)
 Post propagator for $ b_0 \lor b_1 = b_2 $.
void Gecode::bool_or (Space *home, BoolVar b0, BoolVar b1, bool b2, IntConLevel=ICL_DEF)
 Post propagator for $ b_0 \lor b_1 = b_2 $.
void Gecode::bool_or (Space *home, const BoolVarArgs &b, BoolVar c, IntConLevel=ICL_DEF)
 Post propagator for $ \bigvee_{i=0}^{|b|-1} b_i = c$.
void Gecode::bool_or (Space *home, const BoolVarArgs &b, bool c, IntConLevel=ICL_DEF)
 Post propagator for $ \bigvee_{i=0}^{|b|-1} b_i = c$.
void Gecode::bool_imp (Space *home, BoolVar b0, BoolVar b1, BoolVar b2, IntConLevel=ICL_DEF)
 Post propagator for $ b_0 \Rightarrow b_1 = b_2 $ (implication).
void Gecode::bool_imp (Space *home, BoolVar b0, BoolVar b1, bool b2, IntConLevel=ICL_DEF)
 Post propagator for $ b_0 \Rightarrow b_1 = b_2 $ (implication).
void Gecode::bool_eqv (Space *home, BoolVar b0, BoolVar b1, BoolVar b2, IntConLevel=ICL_DEF)
 Post propagator for $ b_0 \Leftrightarrow b_1 = b_2 $ (equivalence).
void Gecode::bool_eqv (Space *home, BoolVar b0, BoolVar b1, bool b2, IntConLevel=ICL_DEF)
 Post propagator for $ b_0 \Leftrightarrow b_1 = b_2 $ (equivalence).
void Gecode::bool_xor (Space *home, BoolVar b0, BoolVar b1, BoolVar b2, IntConLevel=ICL_DEF)
 Post propagator for $ b_1 \otimes b_2 = b_3 $ (exclusive or).
void Gecode::bool_xor (Space *home, BoolVar b0, BoolVar b1, bool b2, IntConLevel=ICL_DEF)
 Post propagator for $ b_1 \otimes b_2 = b_3 $ (exclusive or).
void Gecode::min (Space *home, IntVar x0, IntVar x1, IntVar x2, IntConLevel=ICL_DEF)
 Post propagator for $ \min\{x_0,x_1\}=x_2$.
void Gecode::min (Space *home, const IntVarArgs &x, IntVar y, IntConLevel=ICL_DEF)
 Post propagator for $ \min x=y$.
void Gecode::max (Space *home, IntVar x0, IntVar x1, IntVar x2, IntConLevel=ICL_DEF)
 Post propagator for $ \max\{x_0,x_1\}=x_2$.
void Gecode::max (Space *home, const IntVarArgs &x, IntVar y, IntConLevel=ICL_DEF)
 Post propagator for $ \max x=y$.
void Gecode::abs (Space *home, IntVar x0, IntVar x1, IntConLevel=ICL_DEF)
 Post propagator for $ |x_0|=x_1$.
void Gecode::mult (Space *home, IntVar x0, IntVar x1, IntVar x2, IntConLevel=ICL_DEF)
 Post propagator for $x_0\cdot x_1=x_2$.
void Gecode::linear (Space *home, const IntVarArgs &x, IntRelType r, int c, IntConLevel=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_r c$.
void Gecode::linear (Space *home, const IntVarArgs &x, IntRelType r, IntVar y, IntConLevel=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_r y$.
void Gecode::linear (Space *home, const IntVarArgs &x, IntRelType r, int c, BoolVar b, IntConLevel=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_r c\right)\Leftrightarrow b$.
void Gecode::linear (Space *home, const IntVarArgs &x, IntRelType r, IntVar y, BoolVar b, IntConLevel=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_r y\right)\Leftrightarrow b$.
void Gecode::linear (Space *home, const IntArgs &a, const IntVarArgs &x, IntRelType r, int c, IntConLevel=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r c$.
void Gecode::linear (Space *home, const IntArgs &a, const IntVarArgs &x, IntRelType r, IntVar y, IntConLevel=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r y$.
void Gecode::linear (Space *home, const IntArgs &a, const IntVarArgs &x, IntRelType r, int c, BoolVar b, IntConLevel=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r c\right)\Leftrightarrow b$.
void Gecode::linear (Space *home, const IntArgs &a, const IntVarArgs &x, IntRelType r, IntVar y, BoolVar b, IntConLevel=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r y\right)\Leftrightarrow b$.
void Gecode::linear (Space *home, const BoolVarArgs &x, IntRelType r, int c, IntConLevel=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_r c$.
void Gecode::linear (Space *home, const BoolVarArgs &x, IntRelType r, IntVar y, IntConLevel=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_r y$.
void Gecode::branch (Space *home, const IntVarArgs &x, BvarSel vars, BvalSel vals)
 Branch over all x with variable selection vars and value selection vals.
void Gecode::assign (Space *home, const IntVarArgs &x, AvalSel vals)
 Assign all x with value selection vals.


Define Documentation

#define GECODE_INT_EXPORT
 

Definition at line 71 of file int.hh.