Generated on Mon Aug 25 11:35:45 2008 for Gecode by doxygen 1.5.6

cpltset.hh File Reference

(Revision: 7494)

#include "gecode/kernel.hh"
#include "gecode/iter.hh"
#include "gecode/int.hh"
#include "gecode/set.hh"
#include "gecode/cpltset/exception.icc"
#include "gecode/cpltset/bddmanager.icc"
#include "gecode/cpltset/support.icc"
#include "gecode/cpltset/var-imp.icc"
#include "gecode/cpltset/view.icc"
#include "gecode/cpltset/array.icc"

Go to the source code of this file.

Namespaces

namespace  Gecode::CpltSet
namespace  Gecode

Classes

class  Gecode::CpltSetVar
 Finite set variable with complete domain representation. More...
class  Gecode::CpltSetVarGlbRanges
 Range iterator for the greatest lower bound of a bdd variable. More...
class  Gecode::CpltSetVarGlbValues
 Value iterator for the greatest lower bound of a bdd variable. More...
class  Gecode::CpltSetVarLubRanges
 Range iterator for the least upper bound of a bdd variable. More...
class  Gecode::CpltSetVarLubValues
 Value iterator for the least upper bound of a bdd variable. More...
class  Gecode::CpltSetVarUnknownRanges
 Range iterator for the unknown set of a bdd variable. More...
class  Gecode::CpltSetVarArray
 CpltSet variable array More...

Defines

#define GECODE_CPLTSET_EXPORT   __attribute__ ((visibility("default")))

Typedefs

typedef VarArgArray< CpltSetVar > Gecode::CpltSetVarArgs
 Passing set variables.

Enumerations

enum  Gecode::CpltSetRelType {
  Gecode::SRT_LE, Gecode::SRT_GR, Gecode::SRT_LQ, Gecode::SRT_GQ,
  Gecode::SRT_LE_REV, Gecode::SRT_GR_REV, Gecode::SRT_LQ_REV, Gecode::SRT_GQ_REV
}
 Common relation types for sets. More...
enum  Gecode::CpltSetOpType { Gecode::SOT_SYMDIFF }
 Common operations for sets. More...
enum  Gecode::CpltSetVarBranch {
  Gecode::CPLTSET_VAR_NONE, Gecode::CPLTSET_VAR_MIN_CARD, Gecode::CPLTSET_VAR_MAX_CARD, Gecode::CPLTSET_VAR_MIN_UNKNOWN_ELEM,
  Gecode::CPLTSET_VAR_MAX_UNKNOWN_ELEM
}
 Which variable to select for branching. More...
enum  Gecode::CpltSetValBranch { Gecode::CPLTSET_VAL_MIN_UNKNOWN, Gecode::CPLTSET_VAL_MAX_UNKNOWN, Gecode::CPLTSET_VAL_MIN_UNKNOWN_EX_FIRST, Gecode::CPLTSET_VAL_MAX_UNKNOWN_EX_FIRST }
 Which values to select first for branching. More...

Functions

void Gecode::dom (Space *home, CpltSetVar x, SetRelType r, int i)
 Propagates $ x \sim_r \{i\}$.
void Gecode::dom (Space *home, CpltSetVar x, SetRelType r, int i, int j)
 Propagates $ x \sim_r \{i,\dots,j\}$.
void Gecode::dom (Space *home, CpltSetVar x, SetRelType r, const IntSet &s)
 Propagates $ x \sim_r s$.
void Gecode::cardinality (Space *home, CpltSetVar x, unsigned int l, unsigned int u)
 Post propagator for $ l \leq |x| \leq u $.
void Gecode::cardinality (Space *home, CpltSetVar x, unsigned int c)
 Post propagator for $ l |x| = c $.
void Gecode::rel (Space *home, CpltSetVar x, CpltSetRelType r, CpltSetVar y)
 Post propagator for $ x \sim_r y$.
void Gecode::rel (Space *home, CpltSetVar x, SetRelType r, CpltSetVar y)
 Post propagator for $ x \sim_r y$.
void Gecode::rel (Space *home, CpltSetVar x, CpltSetOpType o, CpltSetVar y, CpltSetRelType r, CpltSetVar z)
 Post propagator for $ (x \diamond_{\mathit{o}} y) \sim_r z $.
void Gecode::rel (Space *home, CpltSetVar x, CpltSetOpType o, CpltSetVar y, SetRelType r, CpltSetVar z)
 Post propagator for $ (x \diamond_{\mathit{o}} y) \sim_r z $.
void Gecode::rel (Space *home, CpltSetVar x, SetOpType o, CpltSetVar y, CpltSetRelType r, CpltSetVar z)
 Post propagator for $ (x \diamond_{\mathit{o}} y) \sim_r z $.
void Gecode::rel (Space *home, CpltSetVar x, SetOpType o, CpltSetVar y, SetRelType r, CpltSetVar z)
 Post propagator for $ (x \diamond_{\mathit{o}} y) \sim_r z $.
void Gecode::singleton (Space *home, IntVar x, CpltSetVar s)
 Post propagator for $ s = \{x\} $.
void Gecode::exactly (Space *home, CpltSetVar x, IntSet &is, unsigned int c)
 Post propagator for $ |x \cap is| = c $.
void Gecode::atmost (Space *home, CpltSetVar x, IntSet &is, unsigned int c)
 Post propagator for $ 0 \leq |x \cap is| \leq c $.
void Gecode::atmost (Space *home, CpltSetVar x, CpltSetVar y, unsigned int c)
 Post propagator for $ 0 \leq |x \cap y| \leq c $.
void Gecode::atmostLex (Space *home, CpltSetVar x, CpltSetVar y, unsigned int c, CpltSetRelType lex)
 Post propagator for $ 0 \leq |x \cap y| \leq c \wedge x \sim_{lex} y$.
GECODE_CPLTSET_EXPORT void Gecode::atmostLexCard (Space *home, CpltSetVar x, CpltSetVar y, int c, CpltSetRelType lex, int d)
 Post propagator for $ 0 \leq |x \cap y| \leq c \wedge x \sim_{lex} y \wedge |x| = |y| = d$.
GECODE_CPLTSET_EXPORT void Gecode::atmostCard (Space *home, CpltSetVar x, CpltSetVar y, int c, int d)
 Post propagator for $ 0 \leq |x \cap y| \leq c \wedge |x| = |y| = d$.
GECODE_CPLTSET_EXPORT void Gecode::atmost (Space *home, CpltSetVar x, CpltSetVar y, CpltSetVar z, int c)
 Post propagator for $ x \cap y = z \wedge 0 \leq |z| \leq c $.
GECODE_CPLTSET_EXPORT void Gecode::atmostOne (Space *home, const CpltSetVarArgs &x, int c)
 Post propagator for $ |x_i \cap x_j| \leq 1 $ for all $0\leq i\neq j<|x| \wedge \forall i \in \{0, \dots, |x|-1\}: |x_i| = c $.
void Gecode::partition (Space *home, const CpltSetVarArgs &x)
 Post propagator for $ |\bigcup_{i=0}^{n-1} x_i = U $.
void Gecode::partition (Space *home, const CpltSetVarArgs &x, const CpltSetVar &y)
 Post propagator for $ |\bigcup_{i=0}^{n-1} x_i = U $.
void Gecode::partitionLex (Space *home, const CpltSetVarArgs &x, CpltSetRelType lex)
 Post propagator for $ |\bigcup_{i=0}^{n-1} x_i = U \wedge \forall i,j\in \{0, \dots, n-1\}, i\neq j: x_i \sim_{lex} x_j$.
void Gecode::partitionLexCard (Space *home, const CpltSetVarArgs &x, CpltSetRelType lex, unsigned int c)
 Post propagator for $ |\bigcup_{i=0}^{n-1} x_i = U \wedge \forall i,j\in \{0, \dots, n-1\}, i\neq j: x_i \sim_{lex} x_j \wedge \forall i \in \{0, \dots, n-1\}: |x_i| = c $.
void Gecode::partitionCard (Space *home, const CpltSetVarArgs &x, unsigned int c)
 Post propagator for $ |\bigcup_{i=0}^{n-1} x_i = U \wedge \forall i \in \{0, \dots, n-1\}: |x_i| = c $.
void Gecode::selectUnion (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t)
 Post propagator for $ t = \bigcup_{i\in s} x_i $.
void Gecode::selectNonEmptySub (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t)
 Post propagator for $ s = \bigcup_{(x_i \subseteq t) \wedge x_i \neq \emptyset } i $.
void Gecode::range (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t)
 Post propagator for $ t = \bigcup_{i\subseteq s} x_i $.
void Gecode::roots (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t, const CpltSetVarArgs &allvars)
 Post propagator for $ s = \bigcup_{x_i \subseteq t} i $.
void Gecode::alldifferent (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t, const CpltSetVarArgs &allvars)
 Post propagator for $ x_i\neq x_j$ for all $0\leq i\neq j<|x| \wedge t = \bigcup_{i\subseteq s} x_i $.
void Gecode::nvalue (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t, unsigned int n, const CpltSetVarArgs &allvars)
 Post propagator for $ |\displaystyle\bigcup_{i = 0}^{|x| - 1} x_i| = n \wedge t = \bigcup_{i\subseteq s} x_i $.
void Gecode::uses (Space *home, const IntVarArgs &x, CpltSetVar s, CpltSetVar t, const CpltSetVarArgs &y, CpltSetVar u, CpltSetVar v)
 Post propagator for $ t = \bigcup_{i\in s} x_i \wedge v = \bigcup_{i\in u} y_i \wedge v \subseteq t $.
void Gecode::branch (Space *home, const CpltSetVarArgs &x, CpltSetVarBranch vars, CpltSetValBranch vals)
 Branch on x with variable selection vars and value selection vals.


Define Documentation

#define GECODE_CPLTSET_EXPORT   __attribute__ ((visibility("default")))

Definition at line 62 of file cpltset.hh.