Generated on Tue Jan 26 2021 00:00:00 for Gecode by doxygen 1.9.1
set.hh File Reference

Go to the source code of this file.

Classes

class  Gecode::SetVar
 Set variables More...
 
class  Gecode::SetVarGlbRanges
 Iterator for the greatest lower bound ranges of a set variable. More...
 
class  Gecode::SetVarLubRanges
 Iterator for the least upper bound ranges of a set variable. More...
 
class  Gecode::SetVarUnknownRanges
 Iterator for the unknown ranges of a set variable. More...
 
class  Gecode::SetVarGlbValues
 Iterator for the values in the greatest lower bound of a set variable. More...
 
class  Gecode::SetVarLubValues
 Iterator for the values in the least upper bound of a set variable. More...
 
class  Gecode::SetVarUnknownValues
 Iterator for the values in the unknown set of a set variable. More...
 
class  Gecode::SetVarArgs
 Passing set variables. More...
 
class  Gecode::SetVarArray
 Set variable array More...
 
class  Gecode::SetAFC
 Recording AFC information for set variables. More...
 
class  Gecode::SetAction
 Recording actions for set variables. More...
 
class  Gecode::SetCHB
 Recording CHB for set variables. More...
 
class  Gecode::SetVarBranch
 Which variable to select for branching. More...
 
class  Gecode::SetValBranch
 Which values to select for branching first. More...
 
class  Gecode::SetAssign
 Which value to select for assignment. More...
 
class  Gecode::SetTraceDelta
 Trace delta information for set variables. More...
 
class  Gecode::SetTraceDelta::Glb
 Delta for the greatest lower bound. More...
 
class  Gecode::SetTraceDelta::Lub
 Delta for the least upper bound. More...
 
class  Gecode::StdSetTracer
 Standard set variable tracer. More...
 

Namespaces

 Gecode::Set
 Finite integer sets.
 
 Gecode::Set::Limits
 Numerical limits for set variables.
 

Macros

#define GECODE_SET_EXPORT
 
#define GECODE_LIBRARY_NAME   "Set"
 

Typedefs

typedef std::function< bool(const Space &home, SetVar x, int i)> Gecode::SetBranchFilter
 Branch filter function type for set variables. More...
 
typedef std::function< double(const Space &home, SetVar x, int i)> Gecode::SetBranchMerit
 Branch merit function type for set variables. More...
 
typedef std::function< int(const Space &home, SetVar x, int i)> Gecode::SetBranchVal
 Branch value function type for set variables. More...
 
typedef std::function< void(Space &home, unsigned int a, SetVar x, int i, int n)> Gecode::SetBranchCommit
 Branch commit function type for set variables. More...
 
typedef ViewTracer< Set::SetView > Gecode::SetTracer
 Tracer for set variables. More...
 
typedef ViewTraceRecorder< Set::SetView > Gecode::SetTraceRecorder
 Trace recorder for set variables. More...
 

Enumerations

enum  Gecode::SetRelType {
  Gecode::SRT_EQ , Gecode::SRT_NQ , Gecode::SRT_SUB , Gecode::SRT_SUP ,
  Gecode::SRT_DISJ , Gecode::SRT_CMPL , Gecode::SRT_LQ , Gecode::SRT_LE ,
  Gecode::SRT_GQ , Gecode::SRT_GR
}
 Common relation types for sets. More...
 
enum  Gecode::SetOpType { Gecode::SOT_UNION , Gecode::SOT_DUNION , Gecode::SOT_INTER , Gecode::SOT_MINUS }
 Common operations for sets. More...
 

Functions

void Gecode::Set::Limits::check (int n, const char *l)
 Check whether integer n is in range, otherwise throw overflow exception with information l. More...
 
void Gecode::Set::Limits::check (unsigned int n, const char *l)
 Check whether unsigned int n is in range for cardinality, otherwise throw overflow exception with information l. More...
 
void Gecode::Set::Limits::check (const IntSet &s, const char *l)
 Check whether minimum and maximum of IntSet s is in range, otherwise throw overflow exception with information l. More...
 
void Gecode::dom (Home home, SetVar x, SetRelType r, int i)
 Propagates $ x \sim_r \{i\}$. More...
 
void Gecode::dom (Home home, const SetVarArgs &x, SetRelType r, int i)
 Propagates $ x_i \sim_r \{i\}$ for all $0\leq i<|x|$. More...
 
void Gecode::dom (Home home, SetVar x, SetRelType r, int i, int j)
 Propagates $ x \sim_r \{i,\dots,j\}$. More...
 
void Gecode::dom (Home home, const SetVarArgs &x, SetRelType r, int i, int j)
 Propagates $ x \sim_r \{i,\dots,j\}$ for all $0\leq i<|x|$. More...
 
void Gecode::dom (Home home, SetVar x, SetRelType r, const IntSet &s)
 Propagates $ x \sim_r s$. More...
 
void Gecode::dom (Home home, const SetVarArgs &x, SetRelType r, const IntSet &s)
 Propagates $ x \sim_r s$ for all $0\leq i<|x|$. More...
 
void Gecode::cardinality (Home home, SetVar x, unsigned int i, unsigned int j)
 Propagates $ i \leq |s| \leq j $. More...
 
void Gecode::cardinality (Home home, const SetVarArgs &x, unsigned int i, unsigned int j)
 Propagates $ i \leq |s| \leq j $ for all $0\leq i<|x|$. More...
 
void Gecode::dom (Home home, SetVar x, SetRelType rt, int i, Reify r)
 Post propagator for $ (x \sim_{rt} \{i\}) \equiv r $. More...
 
void Gecode::dom (Home home, SetVar x, SetRelType rt, int i, int j, Reify r)
 Post propagator for $ (x \sim_{rt} \{i,\dots,j\}) \equiv r $. More...
 
void Gecode::dom (Home home, SetVar x, SetRelType rt, const IntSet &s, Reify r)
 Post propagator for $ (x \sim_{rt} s) \equiv r $. More...
 
void Gecode::dom (Home home, SetVar x, SetVar d)
 Constrain domain of x according to domain of d. More...
 
void Gecode::dom (Home home, const SetVarArgs &x, const SetVarArgs &d)
 Constrain domain of $ x_i $ according to domain of $ d_i $ for all $0\leq i<|x|$. More...
 
void Gecode::rel (Home home, SetVar x, SetRelType r, SetVar y)
 Post propagator for $ x \sim_r y$. More...
 
void Gecode::rel (Home home, SetVar x, SetRelType rt, SetVar y, Reify r)
 Post propagator for $ (x \sim_{rt} y) \equiv r$. More...
 
void Gecode::rel (Home home, SetVar s, SetRelType r, IntVar x)
 Post propagator for $ s \sim_r \{x\}$. More...
 
void Gecode::rel (Home home, IntVar x, SetRelType r, SetVar s)
 Post propagator for $ \{x\} \sim_r s$. More...
 
void Gecode::rel (Home home, SetVar s, SetRelType rt, IntVar x, Reify r)
 Post propagator for $ (s \sim_{rt} \{x\}) \equiv r$. More...
 
void Gecode::rel (Home home, IntVar x, SetRelType rt, SetVar s, Reify r)
 Post propagator for $ (\{x\} \sim_{rt} s) \equiv r $. More...
 
void Gecode::rel (Home home, SetVar s, IntRelType rt, IntVar x)
 Post propagator for $|s|\geq 1 \land \forall i\in s:\ i \sim_{rt} x$. More...
 
void Gecode::rel (Home home, IntVar x, IntRelType rt, SetVar s)
 Post propagator for $|s|\geq 1 \land \forall i\in s:\ x \sim_{rt} i$. More...
 
void Gecode::rel (Home home, SetVar s, IntRelType rt, IntVar x, Reify r)
 Post reified propagator for $\left(|s|\geq 1 \land \forall i\in s:\ i \sim_{rt} x\right)\equiv r$. More...
 
void Gecode::rel (Home home, IntVar x, IntRelType rt, SetVar s, Reify r)
 Post reified propagator for. More...
 
Post propagator for Gecode::f (x \diamond_{\mathit{op}} y) \sim_r z \f$ void rel(Home home
 
void Gecode::ite (Home home, BoolVar b, SetVar x, SetVar y, SetVar z)
 Post propagator for if-then-else constraint. More...
 
void Gecode::convex (Home home, SetVar x)
 
void Gecode::convex (Home home, SetVar x, SetVar y)
 
SetVarBranch Gecode::SET_VAR_NONE (void)
 
Select random Gecode::variable (uniform distribution, for tie breaking) SetVarBranch SET_VAR_RND(Rnd r)
 
SetVarBranch Gecode::SET_VAR_MERIT_MIN (SetBranchMerit bm, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_MERIT_MAX (SetBranchMerit bm, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_DEGREE_MIN (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_DEGREE_MAX (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_AFC_MIN (double d, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_AFC_MIN (SetAFC a, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_AFC_MAX (double d, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_AFC_MAX (SetAFC a, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_ACTION_MIN (double d, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_ACTION_MIN (SetAction a, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_ACTION_MAX (double d, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_ACTION_MAX (SetAction a, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_CHB_MIN (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_CHB_MIN (SetCHB c, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_CHB_MAX (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_CHB_MAX (SetCHB c, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_MIN_MIN (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_MIN_MAX (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_MAX_MIN (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_MAX_MAX (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_SIZE_MIN (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_SIZE_MAX (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_DEGREE_SIZE_MIN (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_DEGREE_SIZE_MAX (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_AFC_SIZE_MIN (double d, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_AFC_SIZE_MIN (SetAFC a, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_AFC_SIZE_MAX (double d, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_AFC_SIZE_MAX (SetAFC a, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MIN (double d, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MIN (SetAction a, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MAX (double d, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MAX (SetAction a, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_CHB_SIZE_MIN (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_CHB_SIZE_MIN (SetCHB c, BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_CHB_SIZE_MAX (BranchTbl tbl)
 
SetVarBranch Gecode::SET_VAR_CHB_SIZE_MAX (SetCHB c, BranchTbl tbl)
 
SetValBranch Gecode::SET_VAL_MIN_INC (void)
 
SetValBranch Gecode::SET_VAL_MIN_EXC (void)
 
Include median Gecode::element (rounding downwards) SetValBranch SET_VAL_MED_INC(void)
 
SetValBranch Gecode::SET_VAL_MAX_INC (void)
 
SetValBranch Gecode::SET_VAL_MAX_EXC (void)
 
SetValBranch Gecode::SET_VAL_RND_INC (Rnd r)
 
SetValBranch Gecode::SET_VAL_RND_EXC (Rnd r)
 
SetValBranch Gecode::SET_VAL (SetBranchVal v, SetBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c. More...
 
SetAssign Gecode::SET_ASSIGN_MIN_INC (void)
 
SetAssign Gecode::SET_ASSIGN_MIN_EXC (void)
 
SetAssign Gecode::SET_ASSIGN_MAX_INC (void)
 
SetAssign Gecode::SET_ASSIGN_MAX_EXC (void)
 
SetAssign Gecode::SET_ASSIGN_RND_INC (Rnd r)
 
SetAssign Gecode::SET_ASSIGN_RND_EXC (Rnd r)
 
SetAssign Gecode::SET_ASSIGN (SetBranchVal v, SetBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c. More...
 
void Gecode::branch (Home home, const SetVarArgs &x, SetVarBranch vars, SetValBranch vals, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals. More...
 
void Gecode::branch (Home home, const SetVarArgs &x, TieBreak< SetVarBranch > vars, SetValBranch vals, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Branch over x with tie-breaking variable selection vars and value selection vals. More...
 
void Gecode::branch (Home home, SetVar x, SetValBranch vals, SetVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void Gecode::assign (Home home, const SetVarArgs &x, SetVarBranch vars, SetAssign vals, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Assign all x with variable selection vars and value selection vals. More...
 
void Gecode::assign (Home home, const SetVarArgs &x, TieBreak< SetVarBranch > vars, SetAssign vals, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Assign all x with tie-breaking variable selection vars and value selection vals. More...
 
void Gecode::assign (Home home, SetVar x, SetAssign vals, SetVarValPrint vvp=nullptr)
 Assign x with value selection vals. More...
 
void Gecode::branch (Home home, const SetVarArgs &x, SetValBranch vals, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void Gecode::assign (Home home, const SetVarArgs &x, SetAssign vals, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Assign all x with value selection vals. More...
 
SymmetryHandle Gecode::VariableSymmetry (const SetVarArgs &x)
 
SymmetryHandle Gecode::VariableSequenceSymmetry (const SetVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable. More...
 
void Gecode::branch (Home home, const SetVarArgs &x, SetVarBranch vars, SetValBranch vals, const Symmetries &syms, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals with symmetry breaking. More...
 
void Gecode::branch (Home home, const SetVarArgs &x, TieBreak< SetVarBranch > vars, SetValBranch vals, const Symmetries &syms, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Branch over x with tie-breaking variable selection vars and value selection vals with symmetry breaking. More...
 
void Gecode::relax (Home home, const SetVarArgs &x, const SetVarArgs &sx, Rnd r, double p)
 
void Gecode::trace (Home home, const SetVarArgs &x, TraceFilter tf, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), SetTracer &t=StdSetTracer::def)
 Create a tracer for set variables. More...
 
void Gecode::trace (Home home, const SetVarArgs &x, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), SetTracer &t=StdSetTracer::def)
 Create a tracer for set variables. More...
 

Variables

Function type for printing branching alternatives for set variables typedef std::function< void(const Space &home, const Brancher &b, unsigned int a, SetVar x, int i, const int &n, std::ostream &o)> Gecode::SetVarValPrint
 
const int Gecode::Set::Limits::max = (Gecode::Int::Limits::max / 2) - 1
 Largest allowed integer in integer set. More...
 
const int Gecode::Set::Limits::min = -max
 Smallest allowed integer in integer set. More...
 
const unsigned int Gecode::Set::Limits::card = max-min+1
 Maximum cardinality of an integer set. More...
 
Post propagator for SetVar Gecode::x
 
Post propagator for SetVar SetOpType Gecode::op
 
Post propagator for SetVar SetOpType SetVar Gecode::y
 
Post propagator for SetVar SetOpType SetVar SetRelType Gecode::r
 
Post propagator for SetVar SetOpType SetVar SetRelType SetVar Gecode::z
 

Macro Definition Documentation

◆ GECODE_SET_EXPORT

#define GECODE_SET_EXPORT

Definition at line 67 of file set.hh.

◆ GECODE_LIBRARY_NAME

#define GECODE_LIBRARY_NAME   "Set"

Definition at line 74 of file set.hh.

Function Documentation

◆ dom() [1/11]

void Gecode::dom ( Home  home,
SetVar  s,
SetRelType  r,
int  i 
)

Propagates $ x \sim_r \{i\}$.

Definition at line 43 of file dom.cpp.

◆ dom() [2/11]

void Gecode::dom ( Home  home,
const SetVarArgs s,
SetRelType  r,
int  i 
)

Propagates $ x_i \sim_r \{i\}$ for all $0\leq i<|x|$.

Definition at line 50 of file dom.cpp.

◆ dom() [3/11]

void Gecode::dom ( Home  home,
SetVar  s,
SetRelType  r,
int  i,
int  j 
)

Propagates $ x \sim_r \{i,\dots,j\}$.

Definition at line 57 of file dom.cpp.

◆ dom() [4/11]

void Gecode::dom ( Home  home,
const SetVarArgs s,
SetRelType  r,
int  i,
int  j 
)

Propagates $ x \sim_r \{i,\dots,j\}$ for all $0\leq i<|x|$.

Definition at line 65 of file dom.cpp.

◆ dom() [5/11]

void Gecode::dom ( Home  home,
SetVar  s,
SetRelType  r,
const IntSet is 
)

Propagates $ x \sim_r s$.

Definition at line 73 of file dom.cpp.

◆ dom() [6/11]

void Gecode::dom ( Home  home,
const SetVarArgs s,
SetRelType  r,
const IntSet is 
)

Propagates $ x \sim_r s$ for all $0\leq i<|x|$.

Definition at line 190 of file dom.cpp.

◆ cardinality() [1/2]

void Gecode::cardinality ( Home  home,
SetVar  x,
unsigned int  i,
unsigned int  j 
)

Propagates $ i \leq |s| \leq j $.

Definition at line 44 of file cardinality.cpp.

◆ cardinality() [2/2]

void Gecode::cardinality ( Home  home,
const SetVarArgs x,
unsigned int  i,
unsigned int  j 
)

Propagates $ i \leq |s| \leq j $ for all $0\leq i<|x|$.

Definition at line 54 of file cardinality.cpp.

◆ dom() [7/11]

void Gecode::dom ( Home  home,
SetVar  s,
SetRelType  rt,
int  i,
Reify  r 
)

Post propagator for $ (x \sim_{rt} \{i\}) \equiv r $.

Definition at line 343 of file dom.cpp.

◆ dom() [8/11]

void Gecode::dom ( Home  home,
SetVar  s,
SetRelType  rt,
int  i,
int  j,
Reify  r 
)

Post propagator for $ (x \sim_{rt} \{i,\dots,j\}) \equiv r $.

Definition at line 350 of file dom.cpp.

◆ dom() [9/11]

void Gecode::dom ( Home  home,
SetVar  s,
SetRelType  rt,
const IntSet is,
Reify  r 
)

Post propagator for $ (x \sim_{rt} s) \equiv r $.

Definition at line 358 of file dom.cpp.

◆ dom() [10/11]

void Gecode::dom ( Home  home,
SetVar  x,
SetVar  d 
)

Constrain domain of x according to domain of d.

Definition at line 630 of file dom.cpp.

◆ dom() [11/11]

void Gecode::dom ( Home  home,
const SetVarArgs x,
const SetVarArgs d 
)

Constrain domain of $ x_i $ according to domain of $ d_i $ for all $0\leq i<|x|$.

Definition at line 645 of file dom.cpp.

◆ rel() [1/10]

void Gecode::rel ( Home  home,
SetVar  x,
SetRelType  r,
SetVar  y 
)

Post propagator for $ x \sim_r y$.

Definition at line 171 of file rel.cpp.

◆ rel() [2/10]

void Gecode::rel ( Home  home,
SetVar  x,
SetRelType  rt,
SetVar  y,
Reify  r 
)

Post propagator for $ (x \sim_{rt} y) \equiv r$.

Definition at line 200 of file rel.cpp.

◆ rel() [3/10]

void Gecode::rel ( Home  home,
SetVar  s,
SetRelType  r,
IntVar  x 
)

Post propagator for $ s \sim_r \{x\}$.

Definition at line 177 of file rel.cpp.

◆ rel() [4/10]

void Gecode::rel ( Home  home,
IntVar  x,
SetRelType  r,
SetVar  s 
)

Post propagator for $ \{x\} \sim_r s$.

Definition at line 185 of file rel.cpp.

◆ rel() [5/10]

void Gecode::rel ( Home  home,
SetVar  s,
SetRelType  rt,
IntVar  x,
Reify  r 
)

Post propagator for $ (s \sim_{rt} \{x\}) \equiv r$.

Definition at line 217 of file rel.cpp.

◆ rel() [6/10]

void Gecode::rel ( Home  home,
IntVar  x,
SetRelType  rt,
SetVar  s,
Reify  r 
)

Post propagator for $ (\{x\} \sim_{rt} s) \equiv r $.

Definition at line 236 of file rel.cpp.

◆ rel() [7/10]

void Gecode::rel ( Home  home,
SetVar  s,
IntRelType  rt,
IntVar  x 
)

Post propagator for $|s|\geq 1 \land \forall i\in s:\ i \sim_{rt} x$.

Definition at line 44 of file int.cpp.

◆ rel() [8/10]

void Gecode::rel ( Home  home,
IntVar  x,
IntRelType  rt,
SetVar  s 
)
inline

Post propagator for $|s|\geq 1 \land \forall i\in s:\ x \sim_{rt} i$.

Definition at line 37 of file int.hpp.

◆ rel() [9/10]

void Gecode::rel ( Home  home,
SetVar  s,
IntRelType  rt,
IntVar  x,
Reify  r 
)

Post reified propagator for $\left(|s|\geq 1 \land \forall i\in s:\ i \sim_{rt} x\right)\equiv r$.

Definition at line 136 of file int.cpp.

◆ rel() [10/10]

void Gecode::rel ( Home  home,
IntVar  x,
IntRelType  rt,
SetVar  s,
Reify  r 
)
inline

Post reified propagator for.

Definition at line 42 of file int.hpp.

◆ f()

Post propagator for Gecode::f ( x \diamond_{\mathit{op}}  y)

◆ ite()

void Gecode::ite ( Home  home,
BoolVar  b,
SetVar  x,
SetVar  y,
SetVar  z 
)

Post propagator for if-then-else constraint.

Posts propagator for $ z = b ? x : y $

Definition at line 39 of file bool.cpp.

◆ convex() [1/2]

Post propagator that propagates that a x is convex void Gecode::convex ( Home  home,
SetVar  x 
)

Definition at line 41 of file convex.cpp.

◆ convex() [2/2]

Post propagator that propagates that a y is the convex hull of a x void Gecode::convex ( Home  home,
SetVar  x,
SetVar  y 
)

Definition at line 48 of file convex.cpp.

◆ SET_VAR_NONE()

Select first unassigned variable SetVarBranch Gecode::SET_VAR_NONE ( void  )
inline

Definition at line 96 of file var.hpp.

◆ variable()

Select random Gecode::variable ( uniform  distribution,
for tie  breaking 
)

◆ SET_VAR_MERIT_MIN()

Select variable with least merit according to branch merit function a bm SetVarBranch Gecode::SET_VAR_MERIT_MIN ( SetBranchMerit  bm,
BranchTbl  tbl 
)
inline

Definition at line 106 of file var.hpp.

◆ SET_VAR_MERIT_MAX()

Select variable with highest merit according to branch merit function a bm SetVarBranch Gecode::SET_VAR_MERIT_MAX ( SetBranchMerit  bm,
BranchTbl  tbl 
)
inline

Definition at line 111 of file var.hpp.

◆ SET_VAR_DEGREE_MIN()

Select variable with smallest degree SetVarBranch Gecode::SET_VAR_DEGREE_MIN ( BranchTbl  tbl)
inline

Definition at line 116 of file var.hpp.

◆ SET_VAR_DEGREE_MAX()

Select variable with largest degree SetVarBranch Gecode::SET_VAR_DEGREE_MAX ( BranchTbl  tbl)
inline

Definition at line 121 of file var.hpp.

◆ SET_VAR_AFC_MIN() [1/2]

Select variable with smallest accumulated failure count with decay factor a d SetVarBranch Gecode::SET_VAR_AFC_MIN ( double  d,
BranchTbl  tbl 
)
inline

Definition at line 126 of file var.hpp.

◆ SET_VAR_AFC_MIN() [2/2]

Select variable with smallest accumulated failure count SetVarBranch Gecode::SET_VAR_AFC_MIN ( SetAFC  a,
BranchTbl  tbl 
)
inline

Definition at line 131 of file var.hpp.

◆ SET_VAR_AFC_MAX() [1/2]

Select variable with largest accumulated failure count with decay factor a d SetVarBranch Gecode::SET_VAR_AFC_MAX ( double  d,
BranchTbl  tbl 
)
inline

Definition at line 136 of file var.hpp.

◆ SET_VAR_AFC_MAX() [2/2]

Select variable with largest accumulated failure count SetVarBranch Gecode::SET_VAR_AFC_MAX ( SetAFC  a,
BranchTbl  tbl 
)
inline

Definition at line 141 of file var.hpp.

◆ SET_VAR_ACTION_MIN() [1/2]

Select variable with lowest action with decay factor a d SetVarBranch Gecode::SET_VAR_ACTION_MIN ( double  d,
BranchTbl  tbl 
)
inline

Definition at line 146 of file var.hpp.

◆ SET_VAR_ACTION_MIN() [2/2]

Select variable with lowest action SetVarBranch Gecode::SET_VAR_ACTION_MIN ( SetAction  a,
BranchTbl  tbl 
)
inline

Definition at line 151 of file var.hpp.

◆ SET_VAR_ACTION_MAX() [1/2]

Select variable with highest action with decay factor a d SetVarBranch Gecode::SET_VAR_ACTION_MAX ( double  d,
BranchTbl  tbl 
)
inline

Definition at line 156 of file var.hpp.

◆ SET_VAR_ACTION_MAX() [2/2]

Select variable with highest action SetVarBranch Gecode::SET_VAR_ACTION_MAX ( SetAction  a,
BranchTbl  tbl 
)
inline

Definition at line 161 of file var.hpp.

◆ SET_VAR_CHB_MIN() [1/2]

Select variable with lowest CHB Q score SetVarBranch Gecode::SET_VAR_CHB_MIN ( BranchTbl  tbl)
inline

Definition at line 166 of file var.hpp.

◆ SET_VAR_CHB_MIN() [2/2]

Select variable with lowest CHB Q score SetVarBranch Gecode::SET_VAR_CHB_MIN ( SetCHB  c,
BranchTbl  tbl 
)
inline

Definition at line 171 of file var.hpp.

◆ SET_VAR_CHB_MAX() [1/2]

Select variable with highest CHB Q score SetVarBranch Gecode::SET_VAR_CHB_MAX ( BranchTbl  tbl)
inline

Definition at line 176 of file var.hpp.

◆ SET_VAR_CHB_MAX() [2/2]

Select variable with highest CHB Q score SetVarBranch Gecode::SET_VAR_CHB_MAX ( SetCHB  c,
BranchTbl  tbl 
)
inline

Definition at line 181 of file var.hpp.

◆ SET_VAR_MIN_MIN()

Select variable with smallest minimum unknown element SetVarBranch Gecode::SET_VAR_MIN_MIN ( BranchTbl  tbl)
inline

Definition at line 186 of file var.hpp.

◆ SET_VAR_MIN_MAX()

Select variable with largest minimum unknown element SetVarBranch Gecode::SET_VAR_MIN_MAX ( BranchTbl  tbl)
inline

Definition at line 191 of file var.hpp.

◆ SET_VAR_MAX_MIN()

Select variable with smallest maximum unknown element SetVarBranch Gecode::SET_VAR_MAX_MIN ( BranchTbl  tbl)
inline

Definition at line 196 of file var.hpp.

◆ SET_VAR_MAX_MAX()

Select variable with largest maximum unknown element SetVarBranch Gecode::SET_VAR_MAX_MAX ( BranchTbl  tbl)
inline

Definition at line 201 of file var.hpp.

◆ SET_VAR_SIZE_MIN()

Select variable with smallest unknown set SetVarBranch Gecode::SET_VAR_SIZE_MIN ( BranchTbl  tbl)
inline

Definition at line 206 of file var.hpp.

◆ SET_VAR_SIZE_MAX()

Select variable with largest unknown set SetVarBranch Gecode::SET_VAR_SIZE_MAX ( BranchTbl  tbl)
inline

Definition at line 211 of file var.hpp.

◆ SET_VAR_DEGREE_SIZE_MIN()

Select variable with smallest degree divided by domain size SetVarBranch Gecode::SET_VAR_DEGREE_SIZE_MIN ( BranchTbl  tbl)
inline

Definition at line 216 of file var.hpp.

◆ SET_VAR_DEGREE_SIZE_MAX()

Select variable with largest degree divided by domain size SetVarBranch Gecode::SET_VAR_DEGREE_SIZE_MAX ( BranchTbl  tbl)
inline

Definition at line 221 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MIN() [1/2]

Select variable with smallest accumulated failure count divided by domain size with decay factor a d SetVarBranch Gecode::SET_VAR_AFC_SIZE_MIN ( double  d,
BranchTbl  tbl 
)
inline

Definition at line 226 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MIN() [2/2]

Select variable with smallest accumulated failure count divided by domain size SetVarBranch Gecode::SET_VAR_AFC_SIZE_MIN ( SetAFC  a,
BranchTbl  tbl 
)
inline

Definition at line 231 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MAX() [1/2]

Select variable with largest accumulated failure count divided by domain size with decay factor a d SetVarBranch Gecode::SET_VAR_AFC_SIZE_MAX ( double  d,
BranchTbl  tbl 
)
inline

Definition at line 236 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MAX() [2/2]

Select variable with largest accumulated failure count divided by domain size SetVarBranch Gecode::SET_VAR_AFC_SIZE_MAX ( SetAFC  a,
BranchTbl  tbl 
)
inline

Definition at line 241 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MIN() [1/2]

Select variable with smallest action divided by domain size with decay factor a d SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MIN ( double  d,
BranchTbl  tbl 
)
inline

Definition at line 246 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MIN() [2/2]

Select variable with smallest action divided by domain size SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MIN ( SetAction  a,
BranchTbl  tbl 
)
inline

Definition at line 251 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MAX() [1/2]

Select variable with largest action divided by domain size with decay factor a d SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MAX ( double  d,
BranchTbl  tbl 
)
inline

Definition at line 256 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MAX() [2/2]

Select variable with largest action divided by domain size SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MAX ( SetAction  a,
BranchTbl  tbl 
)
inline

Definition at line 261 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MIN() [1/2]

Select variable with smallest CHB Q score divided by domain size SetVarBranch Gecode::SET_VAR_CHB_SIZE_MIN ( BranchTbl  tbl)
inline

Definition at line 266 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MIN() [2/2]

Select variable with smallest CHB Q score divided by domain size SetVarBranch Gecode::SET_VAR_CHB_SIZE_MIN ( SetCHB  c,
BranchTbl  tbl 
)
inline

Definition at line 271 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MAX() [1/2]

Select variable with largest CHB Q score divided by domain size SetVarBranch Gecode::SET_VAR_CHB_SIZE_MAX ( BranchTbl  tbl)
inline

Definition at line 276 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MAX() [2/2]

Select variable with largest CHB Q score divided by domain size SetVarBranch Gecode::SET_VAR_CHB_SIZE_MAX ( SetCHB  c,
BranchTbl  tbl 
)
inline

Definition at line 281 of file var.hpp.

◆ SET_VAL_MIN_INC()

Include smallest element SetValBranch Gecode::SET_VAL_MIN_INC ( void  )
inline

Definition at line 55 of file val.hpp.

◆ SET_VAL_MIN_EXC()

Exclude smallest element SetValBranch Gecode::SET_VAL_MIN_EXC ( void  )
inline

Definition at line 60 of file val.hpp.

◆ element()

Exclude median Gecode::element ( rounding  downwards)

◆ SET_VAL_MAX_INC()

Include largest element SetValBranch Gecode::SET_VAL_MAX_INC ( void  )
inline

Definition at line 75 of file val.hpp.

◆ SET_VAL_MAX_EXC()

Exclude largest element SetValBranch Gecode::SET_VAL_MAX_EXC ( void  )
inline

Definition at line 80 of file val.hpp.

◆ SET_VAL_RND_INC()

Include random element SetValBranch Gecode::SET_VAL_RND_INC ( Rnd  r)
inline

Definition at line 85 of file val.hpp.

◆ SET_VAL_RND_EXC()

Exclude random element SetValBranch Gecode::SET_VAL_RND_EXC ( Rnd  r)
inline

Definition at line 90 of file val.hpp.

◆ SET_VAL()

SetValBranch Gecode::SET_VAL ( SetBranchVal  v,
SetBranchCommit  c = nullptr 
)
inline

Select value as defined by the value function v and commit function c.

The default commit function posts the constraint that the value n must be included in the set variable x for the first alternative, and that n must be excluded from x otherwise.

Definition at line 95 of file val.hpp.

◆ SET_ASSIGN_MIN_INC()

Include smallest element SetAssign Gecode::SET_ASSIGN_MIN_INC ( void  )
inline

Definition at line 55 of file assign.hpp.

◆ SET_ASSIGN_MIN_EXC()

Exclude smallest element SetAssign Gecode::SET_ASSIGN_MIN_EXC ( void  )
inline

Definition at line 60 of file assign.hpp.

◆ SET_ASSIGN_MAX_INC()

Include largest element SetAssign Gecode::SET_ASSIGN_MAX_INC ( void  )
inline

Definition at line 75 of file assign.hpp.

◆ SET_ASSIGN_MAX_EXC()

Exclude largest element SetAssign Gecode::SET_ASSIGN_MAX_EXC ( void  )
inline

Definition at line 80 of file assign.hpp.

◆ SET_ASSIGN_RND_INC()

Include random element SetAssign Gecode::SET_ASSIGN_RND_INC ( Rnd  r)
inline

Definition at line 85 of file assign.hpp.

◆ SET_ASSIGN_RND_EXC()

Exclude random element SetAssign Gecode::SET_ASSIGN_RND_EXC ( Rnd  r)
inline

Definition at line 90 of file assign.hpp.

◆ SET_ASSIGN()

SetAssign Gecode::SET_ASSIGN ( SetBranchVal  v,
SetBranchCommit  c = nullptr 
)
inline

Select value as defined by the value function v and commit function c.

The default commit function posts the constraint that the value n must be included in the set variable x.

Definition at line 95 of file assign.hpp.

◆ VariableSymmetry()

Variables in a x are interchangeable SymmetryHandle Gecode::VariableSymmetry ( const SetVarArgs x)

Definition at line 44 of file ldsb.cpp.

◆ VariableSequenceSymmetry()

SymmetryHandle Gecode::VariableSequenceSymmetry ( const SetVarArgs x,
int  ss 
)

Variable sequences in x of size ss are interchangeable.

The size of x must be a multiple of ss.

Definition at line 50 of file ldsb.cpp.

◆ relax()

void Gecode::relax ( Home  home,
const SetVarArgs x,
const SetVarArgs sx,
Rnd  r,
double  p 
)

Definition at line 62 of file relax.cpp.

Variable Documentation

◆ SetVarValPrint

Function type for printing branching alternatives for set variables typedef std::function<void(const Space &home, const Brancher& b, unsigned int a, SetVar x, int i, const int& n, std::ostream& o)> Gecode::SetVarValPrint

Definition at line 1285 of file set.hh.

◆ x

Post propagator for SetVar Gecode::x

Definition at line 767 of file set.hh.

◆ op

Post propagator for SetVar SetOpType Gecode::op

Definition at line 767 of file set.hh.

◆ y

Post propagator for SetVar SetOpType const IntSet & Gecode::y
Initial value:
= \diamond_{\mathit{op}} x\f$
void
rel(Home home, SetOpType op, const SetVarArgs& x, SetVar y)
Post propagator for SetVar SetOpType op
Definition: set.hh:767
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
Definition: rel.cpp:43
SetOpType
Common operations for sets.
Definition: set.hh:660

Definition at line 767 of file set.hh.

◆ r

Post propagator for SetVar SetOpType const IntSet SetRelType Gecode::r

Definition at line 767 of file set.hh.

◆ z

Post propagator for SetVar SetOpType const IntSet SetRelType const IntSet & Gecode::z

Definition at line 767 of file set.hh.