Generated on Mon Jul 6 18:09:27 2009 for Gecode by doxygen 1.5.9

Gecode Namespace Reference

Gecode toplevel namespace. More...


Namespaces

namespace  Support
 Support algorithms and datastructures
namespace  Kernel
 Kernel functionality.
namespace  Driver
 Script commandline driver.
namespace  Gist
 The Gecode Interactive Search Tool.
namespace  Int
 Finite domain integers.
namespace  Iter
 Range and value iterators.
namespace  MemoryConfig
 Parameters defining memory management policy for spaces.
namespace  Set
 Finite integer sets.
namespace  MiniModel
 Minimalistic modeling support.
namespace  Search
 Search engines

Classes

class  BaseOptions
 Base class for script options. More...
class  Options
 Options for scripts. More...
class  SizeOptions
 Options for scripts with additional size parameter. More...
class  ArrayTraits< IntVarArray >
 Traits of IntVarArray. More...
class  ArrayTraits< IntVarArgs >
 Traits of IntVarArgs. More...
class  ArrayTraits< IntArgs >
 Traits of IntArgs. More...
class  ArrayTraits< BoolVarArray >
 Traits of BoolVarArray. More...
class  ArrayTraits< BoolVarArgs >
 Traits of BoolVarArgs. More...
class  ViewValuesBranchingToString
class  TupleSet
 Data stored for a Table. More...
class  ViewArray< Int::Linear::NoView >
 View array for no view (empty). More...
class  ReUnaryPropagator
 Reified unary propagator. More...
class  ReBinaryPropagator
 Reified binary propagator. More...
class  ReMixBinaryPropagator
 Reified mixed binary propagator. More...
class  VarImpVarTraits< Int::IntVarImp >
 Traits class for variable implementations and variables. More...
class  VarImpVarTraits< Int::BoolVarImp >
 Traits class for variable implementations and variables. More...
class  ViewVarImpTraits< Int::IntView >
 Traits class for views and variable implementations. More...
class  VarViewTraits< IntVar >
 Traits class mapping variables to views. More...
class  ViewVarImpTraits< Int::MinusView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Int::OffsetView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Int::ScaleView< Val, UnsVal > >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Int::ConstIntView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Int::ZeroIntView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Int::BoolView >
 Traits class for views and variable implementations. More...
class  VarViewTraits< BoolVar >
 Traits class mapping variables to views. More...
class  ViewVarImpTraits< Int::NegBoolView >
 Traits class for views and variable implementations. More...
class  IntSet
 Integer sets. More...
class  IntSetRanges
 Range iterator for integer sets. More...
class  IntSetValues
 Value iterator for integer sets. More...
class  IntVar
 Integer variables. More...
class  IntVarRanges
 Range iterator for integer variables More...
class  IntVarValues
 Value iterator for integer variables. More...
class  BoolVar
 Boolean integer variables. More...
class  IntVarArray
 Integer variable array. More...
class  BoolVarArray
 Boolean variable array. More...
class  DFA
 Deterministic finite automaton (DFA). More...
class  ViewAdvisor
 Advisor storing a single view. More...
struct  space_allocator< void >
 Space allocator - specialization for void. More...
struct  space_allocator
 Allocator that allocates memory from a space heap. More...
struct  region_allocator< void >
 Region allocator - specialization for void. More...
struct  region_allocator
 Allocator that allocates memory from a region. More...
class  VarArray
 Variable arrays More...
class  ViewArray
 View arrays. More...
class  ArgArrayBase
 Base-class for argument arrays. More...
class  PrimArgArray
 Argument array for primtive types. More...
class  ArgArray
 Argument array for non-primitive types. More...
class  VarArgArray
 Argument array for variables. More...
class  ArrayTraits
 Traits of arrays in Gecode. More...
class  FunctionBranch
 Branching for calling a function. More...
class  VarBranchOptions
 Variable branch options. More...
class  ValBranchOptions
 Value branch options. More...
class  TieBreakVarBranch
 Combine variable selection criteria for tie-breaking. More...
class  TieBreakVarBranchOptions
 Combine variable branch options for tie-breaking. More...
class  ViewSelTieBreakStatic
 View selection class for static tie breaking. More...
class  DescVirtualBase
 Virtualized description baseclass. More...
class  ViewSelVirtualBase
 Virtualized view selection base class. More...
class  DescVirtual
 Virtualized description. More...
class  ViewSelVirtual
 Virtualized view selection. More...
class  ViewSelTieBreakDynamic
 View selection class for dynamic tie breaking. More...
class  EmptyValSelDesc
 Emty value selection description. More...
class  ValSelBase
 Base class for value selection. More...
class  EmptyViewSelDesc
 Emty view selection description. More...
class  ViewSelBase
 Base class for view selection. More...
class  ViewSelNone
 Select first not assigned view. More...
class  ViewSelDegreeMin
 View selection class for view with smallest degree. More...
class  ViewSelDegreeMax
 View selection class for view with largest degree. More...
class  ViewSelRnd
 View selection class for random selection. More...
class  Pos
 Position information. More...
class  ViewBranching
 Generic branching by view selection. More...
class  ViewValBranching
 Generic branching by view and value selection. More...
class  PosDesc
 Branching descriptions storing position More...
class  PosValDesc
 Branching descriptions storing position and value More...
class  CopiedHandle
 The copied handle. More...
class  SharedHandle
 The shared handle. More...
class  NoIdxVarImpConf
 Configuration class for variable implementations without index structure. More...
class  VarImpBase
 Base-class for variable implementations. More...
class  VarDisposerBase
 Base class for Variable type disposer. More...
class  VarDisposer
 Variable type disposer More...
class  Delta
 Generic domain change information to be supplied to advisors. More...
class  VarImp
 Base-class for variable implementations. More...
class  PropCost
 Propagation cost. More...
class  ActorLink
 Double-linked list for actors. More...
class  Actor
 Base-class for both propagators and branchings. More...
class  Propagator
 Base-class for propagators. More...
class  Council
 Council of advisors. More...
class  Advisors
 Class to iterate over advisors of a council. More...
class  Advisor
 Base-class for advisors. More...
class  BranchingDesc
 Branch description for batch recomputation. More...
class  Branching
 Base-class for branchings. More...
class  StatusStatistics
 Statistics for execution of status More...
class  CloneStatistics
 Statistics for execution of clone More...
class  CommitStatistics
 Statistics for execution of commit More...
class  Space
 Computation spaces. More...
class  SpaceFailed
 Exception: Operation on failed space invoked More...
class  SpaceNotStable
 Exception: Operation on not stable space invoked More...
class  SpaceNoBranching
 Exception: Commit when no branching present More...
class  SpaceIllegalAlternative
 Exception: Commit with illegal alternative More...
class  SpaceConstrainUndefined
 Exception: no constrain member function defined More...
class  TooManyBranchings
 Exception: too many branchings More...
class  MemoryChunk
 Memory chunk with size information. More...
class  HeapChunk
 Memory chunk allocated from heap with proper alignment. More...
class  SharedMemory
 Shared object for several memory areas. More...
class  FreeList
 Base-class for freelist-managed objects. More...
class  MemoryManager
 Manage memory for space. More...
class  UnaryPropagator
 Unary propagator. More...
class  BinaryPropagator
 Binary propagator. More...
class  TernaryPropagator
 Ternary propagator. More...
class  NaryPropagator
 n-ary propagator More...
class  NaryOnePropagator
 (n+1)-ary propagator More...
class  MixBinaryPropagator
 Mixed binary propagator. More...
class  MixTernaryPropagator
 Mixed ternary propagator. More...
class  MixNaryOnePropagator
 Mixed (n+1)-ary propagator. More...
class  Region
 Handle to region. More...
class  SharedArray
 Shared array with arbitrary number of elements. More...
class  VarViewTraits
 Traits class for mapping variables to views. More...
class  VarImpVarTraits
 Traits class for mapping variable implementations to variables. More...
class  ViewVarImpTraits
 Traits class for views and variable implementations. More...
class  AllVarConf
 Configuration for all variable implementations. More...
class  VarBase
 Base-class for variables. More...
class  ConstViewBase
 Base-class for constant views. More...
class  VarViewBase
 Base-class for variable views. More...
class  DerivedViewBase
 Base-class for derived views. More...
class  LinExpr
 Linear expressions. More...
class  LinRel
 Linear relations. More...
class  BoolExpr
 Boolean expressions. More...
class  BoolRel
 Boolean relations. More...
class  REG
 Regular expressions over integer values. More...
class  Matrix
 Matrix-interface for arrays. More...
class  DFS
 Depth-first search engine. More...
class  BAB
 Depth-first branch-and-bound search engine. More...
class  Restart
 Depth-first restart best solution search engine. More...
class  LDS
 Limited discrepancy search engine. More...
class  ArrayTraits< SetVarArray >
 Traits of SetVarArray. More...
class  ArrayTraits< SetVarArgs >
 Traits of SetVarArgs. More...
class  IntSetPropagator
 Set/Int connection propagator. More...
class  IntSetRePropagator
 Set/Int reified connection propagator. More...
class  VarImpVarTraits< Set::SetVarImp >
 Traits class for variable implementations and variables. More...
class  ViewVarImpTraits< Set::SetView >
 Traits class for views and variable implementations. More...
class  VarViewTraits< SetVar >
 Traits class mapping variables to views. More...
class  ViewVarImpTraits< Set::ConstantView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Set::EmptyView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Set::UniverseView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Set::SingletonView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Set::ComplementView< View > >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Set::OffsetSetView< View > >
 Traits class for views and variable implementations. More...
class  SetVar
 Set variables More...
class  SetVarGlbRanges
 Iterator for the greatest lower bound ranges of a set variable. More...
class  SetVarLubRanges
 Iterator for the least upper bound ranges of a set variable. More...
class  SetVarUnknownRanges
 Iterator for the unknown ranges of a set variable. More...
class  SetVarGlbValues
 Iterator for the values in the greatest lower bound of a set variable. More...
class  SetVarLubValues
 Iterator for the values in the least upper bound of a set variable. More...
class  SetVarUnknownValues
 Iterator for the values in the unknown set of a set variable. More...
class  SetVarArray
 Set variable array More...
class  Exception
 Exception: Base-class for exceptions More...
class  MemoryExhausted
 Exception: Memory exhausted More...
class  DynamicCastFailed
 Exception: dynamic cast failed More...
class  OperatingSystemError
 Exception: operating system error More...
class  Heap
 Heap memory management class. More...

Typedefs

typedef Driver::ScriptBase< SpaceScript
 Base-class for scripts.
typedef Driver::ScriptBase
< MinimizeSpace
MinimizeScript
 Base-class for scripts for finding solution of lowest cost.
typedef Driver::ScriptBase
< MaximizeSpace
MaximizeScript
 Base-class for scripts for finding solution of highest cost.
typedef PrimArgArray< int > IntArgs
 Passing integer arguments.
typedef VarArgArray< IntVarIntVarArgs
 Passing integer variables.
typedef VarArgArray< BoolVarBoolVarArgs
 Passing Boolean variables.
typedef ArgArray< IntSetIntSetArgs
 Passing set arguments.
typedef int ModEvent
 Type for modification events.
typedef int PropCond
 Type for propagation conditions.
typedef int ModEventDelta
 Modification event deltas.
typedef
MiniModel::OptimizeSpace
< IRT_LE > 
MinimizeSpace
 Class for minimizing cost.
typedef
MiniModel::OptimizeSpace
< IRT_GR > 
MaximizeSpace
 Class for maximizing cost.
typedef VarArgArray< SetVarSetVarArgs
 Passing set variables.

Enumerations

enum  ScriptMode { SM_SOLUTION, SM_TIME, SM_STAT, SM_GIST }
 Different modes for executing scripts. More...
enum  IntRelType {
  IRT_EQ, IRT_NQ, IRT_LQ, IRT_LE,
  IRT_GQ, IRT_GR
}
 Relation types for integers. More...
enum  BoolOpType {
  BOT_AND, BOT_OR, BOT_IMP, BOT_EQV,
  BOT_XOR
}
 Operation types for Booleans. More...
enum  IntConLevel { ICL_VAL, ICL_BND, ICL_DOM, ICL_DEF }
 Consistency levels for integer propagators. More...
enum  ExtensionalPropKind { EPK_DEF, EPK_SPEED, EPK_MEMORY }
 Extensional propagation kind. More...
enum  IntVarBranch {
  INT_VAR_NONE = 0, INT_VAR_RND, INT_VAR_DEGREE_MIN, INT_VAR_DEGREE_MAX,
  INT_VAR_MIN_MIN, INT_VAR_MIN_MAX, INT_VAR_MAX_MIN, INT_VAR_MAX_MAX,
  INT_VAR_SIZE_MIN, INT_VAR_SIZE_MAX, INT_VAR_SIZE_DEGREE_MIN, INT_VAR_SIZE_DEGREE_MAX,
  INT_VAR_REGRET_MIN_MIN, INT_VAR_REGRET_MIN_MAX, INT_VAR_REGRET_MAX_MIN, INT_VAR_REGRET_MAX_MAX
}
 Which variable to select for branching. More...
enum  IntValBranch {
  INT_VAL_MIN, INT_VAL_MED, INT_VAL_MAX, INT_VAL_RND,
  INT_VAL_SPLIT_MIN, INT_VAL_SPLIT_MAX, INT_VALUES_MIN, INT_VALUES_MAX
}
 Which values to select first for branching. More...
enum  IntAssign { INT_ASSIGN_MIN, INT_ASSIGN_MED, INT_ASSIGN_MAX, INT_ASSIGN_RND }
 Which value to select for assignment. More...
enum  ViewSelStatus { VSS_BEST, VSS_BETTER, VSS_TIE, VSS_WORSE }
 Status returned by member functions of view selection class. More...
enum  ExecStatus {
  __ES_SUBSUMED = -2, ES_FAILED = -1, ES_NOFIX = 0, ES_OK = 0,
  ES_FIX = 1, __ES_PARTIAL = 2
}
enum  ActorProperty { AP_DISPOSE = (1 << 0), AP_WEAKLY = (1 << 1) }
 Actor properties. More...
enum  SpaceStatus { SS_FAILED, SS_SOLVED, SS_BRANCH }
 Space status More...
enum  SetRelType {
  SRT_EQ, SRT_NQ, SRT_SUB, SRT_SUP,
  SRT_DISJ, SRT_CMPL
}
 Common relation types for sets. More...
enum  SetOpType { SOT_UNION, SOT_DUNION, SOT_INTER, SOT_MINUS }
 Common operations for sets. More...
enum  SetVarBranch {
  SET_VAR_NONE = 0, SET_VAR_RND, SET_VAR_DEGREE_MIN, SET_VAR_DEGREE_MAX,
  SET_VAR_MIN_MIN, SET_VAR_MIN_MAX, SET_VAR_MAX_MIN, SET_VAR_MAX_MAX,
  SET_VAR_SIZE_MIN, SET_VAR_SIZE_MAX, SET_VAR_SIZE_DEGREE_MIN, SET_VAR_SIZE_DEGREE_MAX
}
 Which variable to select for branching. More...
enum  SetValBranch {
  SET_VAL_MIN_INC, SET_VAL_MIN_EXC, SET_VAL_MED_INC, SET_VAL_MED_EXC,
  SET_VAL_MAX_INC, SET_VAL_MAX_EXC, SET_VAL_RND_INC, SET_VAL_RND_EXC
}
 Which values to select first for branching. More...
enum  SetAssign {
  SET_ASSIGN_MIN_INC, SET_ASSIGN_MIN_EXC, SET_ASSIGN_MED_INC, SET_ASSIGN_MED_EXC,
  SET_ASSIGN_MAX_INC, SET_ASSIGN_MAX_EXC, SET_ASSIGN_RND_INC, SET_ASSIGN_RND_EXC
}
 Which value to select for assignment. More...

Functions

void abs (Space &home, IntVar x0, IntVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for $ |x_0|=x_1$.
void max (Space &home, IntVar x0, IntVar x1, IntVar x2, IntConLevel icl=ICL_DEF)
 Post propagator for $ \max\{x_0,x_1\}=x_2$.
void max (Space &home, const IntVarArgs &x, IntVar y, IntConLevel icl=ICL_DEF)
 Post propagator for $ \max x=y$.
void min (Space &home, IntVar x0, IntVar x1, IntVar x2, IntConLevel icl=ICL_DEF)
 Post propagator for $ \min\{x_0,x_1\}=x_2$.
void min (Space &home, const IntVarArgs &x, IntVar y, IntConLevel icl=ICL_DEF)
 Post propagator for $ \min x=y$.
void mult (Space &home, IntVar x0, IntVar x1, IntVar x2, IntConLevel icl=ICL_DEF)
 Post propagator for $x_0\cdot x_1=x_2$.
void sqr (Space &home, IntVar x0, IntVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for $x_0\cdot x_0=x_1$.
void sqrt (Space &home, IntVar x0, IntVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for $\lfloor\sqrt{x_0}\rfloor=x_1$.
void divmod (Space &home, IntVar x0, IntVar x1, IntVar x2, IntVar x3, IntConLevel icl=ICL_DEF)
 Post propagator for $x_0\ \mathrm{div}\ x_1=x_2 \land x_0\ \mathrm{mod}\ x_1 = x_3$.
void div (Space &home, IntVar x0, IntVar x1, IntVar x2, IntConLevel icl=ICL_DEF)
 Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$.
void mod (Space &home, IntVar x0, IntVar x1, IntVar x2, IntConLevel icl=ICL_DEF)
 Post propagator for $x_0\ \mathrm{mod}\ x_1=x_2$.
void rel (Space &home, BoolVar x0, IntRelType r, BoolVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_0 \sim_r x_1$.
void rel (Space &home, BoolVar x, IntRelType r, int n, IntConLevel icl=ICL_DEF)
 Propagates $ x \sim_r n$.
void rel (Space &home, BoolVar x0, IntRelType r, BoolVar x1, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $(x_0 \sim_r x_1)\Leftrightarrow b$.
void rel (Space &home, BoolVar x, IntRelType r, int n, BoolVar b, IntConLevel icl=ICL_DEF)
 Propagates $(x \sim_r n)\Leftrightarrow b$.
void rel (Space &home, const BoolVarArgs &x, IntRelType r, BoolVar y, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_i \sim_r y $ for all $0\leq i<|x|$.
void rel (Space &home, const IntVarArgs &x, IntRelType r, int c, IntConLevel icl=ICL_DEF)
 Propagates $ x_i \sim_r c $ for all $0\leq i<|x|$.
void rel (Space &home, const IntVarArgs &x, IntRelType r, IntConLevel icl=ICL_DEF)
 Post propagator for pairwise relation on x.
void rel (Space &home, const IntVarArgs &x, IntRelType r, const IntVarArgs &y, IntConLevel icl=ICL_DEF)
 Post propagator for relation between x and y.
void rel (Space &home, BoolVar x0, BoolOpType o, BoolVar x1, BoolVar x2, IntConLevel icl=ICL_DEF)
 Post propagator for Boolean operation on x0 and x1.
void rel (Space &home, BoolVar x0, BoolOpType o, BoolVar x1, int n, IntConLevel icl=ICL_DEF)
 Post propagator for Boolean operation on x0 and x1.
void rel (Space &home, BoolOpType o, const BoolVarArgs &x, BoolVar y, IntConLevel icl=ICL_DEF)
 Post propagator for Boolean operation on x.
void rel (Space &home, BoolOpType o, const BoolVarArgs &x, int n, IntConLevel icl=ICL_DEF)
 Post propagator for Boolean operation on x.
void clause (Space &home, BoolOpType o, const BoolVarArgs &x, const BoolVarArgs &y, int n, IntConLevel icl=ICL_DEF)
 Post propagator for Boolean clause with positive variables x and negative variables y.
void clause (Space &home, BoolOpType o, const BoolVarArgs &x, const BoolVarArgs &y, BoolVar z, IntConLevel icl=ICL_DEF)
 Post propagator for Boolean clause with positive variables x and negative variables y.
void branch (Space &home, const IntVarArgs &x, IntVarBranch vars, IntValBranch vals, const VarBranchOptions &o_vars=VarBranchOptions::def, const ValBranchOptions &o_vals=ValBranchOptions::def)
 Branch over x with variable selection vars and value selection vals.
void branch (Space &home, const IntVarArgs &x, const TieBreakVarBranch< IntVarBranch > &vars, IntValBranch vals, const TieBreakVarBranchOptions &o_vars=TieBreakVarBranchOptions::def, const ValBranchOptions &o_vals=ValBranchOptions::def)
 Branch over x with tie-breaking variable selection vars and value selection vals.
void assign (Space &home, const IntVarArgs &x, IntAssign vals, const ValBranchOptions &o_vals=ValBranchOptions::def)
 Assign all x with value selection vals.
void channel (Space &home, const IntVarArgs &x, int xoff, const IntVarArgs &y, int yoff, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_i - \mathit{xoff} = j\leftrightarrow y_j - \mathit{yoff} = i$ for all $0\leq i<|x|$.
void 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 channel (Space &home, BoolVar x0, IntVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for channeling a Boolean and an integer variable $ x_0 = x_1$.
void channel (Space &home, const BoolVarArgs &x, IntVar y, int o=0, IntConLevel icl=ICL_DEF)
 Post propagator for channeling Boolean and integer variables $ x_i = 1\leftrightarrow y=i+o$.
void circuit (Space &home, const IntVarArgs &x, IntConLevel icl=ICL_DEF)
 Post propagator such that x forms a circuit.
void 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 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 count (Space &home, const IntVarArgs &x, const IntArgs &y, IntRelType r, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\sim_r m$.
void 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 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 count (Space &home, const IntVarArgs &x, const IntArgs &y, IntRelType r, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\sim_r z$.
void 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 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 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 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 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 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 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 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 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 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 dom (Space &home, IntVar x, int n, IntConLevel icl=ICL_DEF)
 Propagates $ x=n$.
void dom (Space &home, const IntVarArgs &x, int n, IntConLevel icl=ICL_DEF)
 Propagates $ x_i=n$ for all $0\leq i<|x|$.
void dom (Space &home, IntVar x, int l, int m, IntConLevel icl=ICL_DEF)
 Propagates $ l\leq x\leq m$.
void dom (Space &home, const IntVarArgs &x, int l, int m, IntConLevel icl=ICL_DEF)
 Propagates $ l\leq x_i\leq m$ for all $0\leq i<|x|$.
void dom (Space &home, IntVar x, const IntSet &s, IntConLevel icl=ICL_DEF)
 Propagates $ x\in s $.
void dom (Space &home, const IntVarArgs &x, const IntSet &s, IntConLevel icl=ICL_DEF)
 Propagates $ x_i\in s$ for all $0\leq i<|x|$.
void dom (Space &home, IntVar x, int n, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $ (x=n) \Leftrightarrow b$.
void dom (Space &home, IntVar x, int l, int m, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $ (l\leq x \leq m) \Leftrightarrow b$.
void dom (Space &home, IntVar x, const IntSet &s, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $ (x \in s) \Leftrightarrow b$.
void element (Space &home, const IntArgs &n, IntVar x0, IntVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for $ n_{x_0}=x_1$.
void element (Space &home, const IntArgs &n, IntVar x0, BoolVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for $ n_{x_0}=x_1$.
void element (Space &home, const IntArgs &n, IntVar x0, int x1, IntConLevel icl=ICL_DEF)
 Post propagator for $ n_{x_0}=x_1$.
void element (Space &home, const IntVarArgs &x, IntVar y0, IntVar y1, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_{y_0}=y_1$.
void element (Space &home, const IntVarArgs &x, IntVar y0, int y1, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_{y_0}=y_1$.
void element (Space &home, const BoolVarArgs &x, IntVar y0, BoolVar y1, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_{y_0}=y_1$.
void wait (Space &home, IntVar x, void(*c)(Space &home), IntConLevel icl=ICL_DEF)
 Execute c when x becomes assigned.
void wait (Space &home, BoolVar x, void(*c)(Space &home), IntConLevel icl=ICL_DEF)
 Execute c when x becomes assigned.
void wait (Space &home, const IntVarArgs &x, void(*c)(Space &home), IntConLevel icl=ICL_DEF)
 Execute c when all variables in x become assigned.
void when (Space &home, BoolVar x, void(*t)(Space &home), void(*e)(Space &home)=NULL, IntConLevel icl=ICL_DEF)
 Execute t (then) when x is assigned one, and e (else) otherwise.
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const DFA &d)
template<class Char , class Traits , class T >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const TupleSet &ts)
void extensional (Space &home, const IntVarArgs &x, DFA d, IntConLevel icl=ICL_DEF)
 Post propagator for extensional constraint described by a DFA.
void extensional (Space &home, const IntVarArgs &x, const TupleSet &t, ExtensionalPropKind epk=EPK_DEF, IntConLevel icl=ICL_DEF)
 Post propagator for $x\in t$.
void count (Space &home, const IntVarArgs &x, const IntVarArgs &c, const IntArgs &v, IntConLevel icl=ICL_DEF)
 Posts a global count (cardinality) constraint.
void count (Space &home, const IntVarArgs &x, const IntVarArgs &c, IntConLevel icl=ICL_DEF)
 Posts a global count (cardinality) constraint.
void count (Space &home, const IntVarArgs &x, const IntSetArgs &c, const IntArgs &v, IntConLevel icl=ICL_DEF)
 Posts a global count (cardinality) constraint.
void count (Space &home, const IntVarArgs &x, const IntSetArgs &c, IntConLevel icl=ICL_DEF)
 Posts a global count (cardinality) constraint.
void count (Space &home, const IntVarArgs &x, const IntSet &c, const IntArgs &v, IntConLevel icl=ICL_DEF)
 Posts a global count (cardinality) constraint.
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const IntSet &is)
void linear (Space &home, const IntVarArgs &x, IntRelType r, int c, IntConLevel icl=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_r c$.
void linear (Space &home, const IntVarArgs &x, IntRelType r, IntVar y, IntConLevel icl=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_r y$.
void linear (Space &home, const IntArgs &a, const IntVarArgs &x, IntRelType r, int c, IntConLevel icl=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r c$.
void linear (Space &home, const IntArgs &a, const IntVarArgs &x, IntRelType r, IntVar y, IntConLevel icl=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r y$.
void linear (Space &home, const IntVarArgs &x, IntRelType r, int c, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_r c\right)\Leftrightarrow b$.
void linear (Space &home, const IntVarArgs &x, IntRelType r, IntVar y, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_r y\right)\Leftrightarrow b$.
void linear (Space &home, const IntArgs &a, const IntVarArgs &x, IntRelType r, int c, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r c\right)\Leftrightarrow b$.
void linear (Space &home, const IntArgs &a, const IntVarArgs &x, IntRelType r, IntVar y, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r y\right)\Leftrightarrow b$.
void rel (Space &home, IntVar x, IntRelType r, int c, IntConLevel icl=ICL_DEF)
 Propagates $ x \sim_r c$.
void rel (Space &home, IntVar x0, IntRelType r, IntVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for $ x_0 \sim_r x_1$.
void rel (Space &home, const IntVarArgs &x, IntRelType r, IntVar y, IntConLevel icl=ICL_DEF)
 Post propagators for $ x_i \sim_r y $ for all $0\leq i<|x|$.
void 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 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 sorted (Space &, const IntVarArgs &x, const IntVarArgs &y, const IntVarArgs &z, IntConLevel icl=ICL_DEF)
 Post propagator that y is x sorted in increasing order.
void sorted (Space &home, const IntVarArgs &x, const IntVarArgs &y, IntConLevel icl=ICL_DEF)
 Post propagator that y is x sorted in increasing order.
void unshare (Space &home, IntVarArgs &x, IntConLevel icl=ICL_DEF)
 Replace multiple variable occurences in x by fresh variables.
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const IntVar &x)
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const BoolVar &x)
bool same (const Int::ConstIntView &x, const Int::ConstIntView &y)
bool same (const Int::IntView &, const Int::ConstIntView &)
bool same (const Int::BoolView &, const Int::ConstIntView &)
bool before (const Int::ConstIntView &x, const Int::ConstIntView &y)
bool same (const Int::MinusView &x, const Int::MinusView &y)
bool before (const Int::MinusView &x, const Int::MinusView &y)
bool same (const Int::NegBoolView &x, const Int::NegBoolView &y)
bool before (const Int::NegBoolView &x, const Int::NegBoolView &y)
bool same (const Int::OffsetView &x, const Int::OffsetView &y)
bool before (const Int::OffsetView &x, const Int::OffsetView &y)
template<class Val , class UnsVal >
bool same (const Int::ScaleView< Val, UnsVal > &x, const Int::ScaleView< Val, UnsVal > &y)
template<class Val , class UnsVal >
bool before (const Int::ScaleView< Val, UnsVal > &x, const Int::ScaleView< Val, UnsVal > &y)
bool same (const Int::ZeroIntView &, const Int::ZeroIntView &)
bool before (const Int::ZeroIntView &, const Int::ZeroIntView &)
void channel (Space &home, IntVar x0, BoolVar x1, IntConLevel icl=ICL_DEF)
 Post propagator for channeling an integer and a Boolean variable $ x_0 = x_1$.
template<class T1 , class T2 >
bool operator== (space_allocator< T1 > const &al1, space_allocator< T2 > const &al2) throw ()
 Tests two space allocators for equality.
template<class T1 , class T2 >
bool operator!= (space_allocator< T1 > const &al1, space_allocator< T2 > const &al2) throw ()
 Tests two space allocators for inequality.
template<class T1 , class T2 >
bool operator== (region_allocator< T1 > const &al1, region_allocator< T2 > const &al2) throw ()
template<class T1 , class T2 >
bool operator!= (region_allocator< T1 > const &al1, region_allocator< T2 > const &al2) throw ()
template<class View >
bool __before (const View &x, const View &y)
template<class X , class Y >
bool __same (const X &x, const Y &y)
template<class X , class Y >
bool __shared (const X &x, const Y &y)
template<class Char , class Traits , class Var >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const VarArray< Var > &x)
template<class Char , class Traits , class View >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const ViewArray< View > &x)
template<class Char , class Traits , class T >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const ArgArrayBase< T > &x)
void branch (Space &home, void(*f)(Space &home))
 Call the function f (with the current space as argument) for branching.
template<class VarBranch >
TieBreakVarBranch< VarBranch > tiebreak (VarBranch a, VarBranch b)
 Combine variable selection criteria a and b for tie-breaking.
template<class VarBranch >
TieBreakVarBranch< VarBranch > tiebreak (VarBranch a, VarBranch b, VarBranch c)
 Combine variable selection criteria a, b, and c for tie-breaking.
template<class VarBranch >
TieBreakVarBranch< VarBranch > tiebreak (VarBranch a, VarBranch b, VarBranch c, VarBranch d)
 Combine variable selection criteria a, b, c, and d for tie-breaking.
TieBreakVarBranchOptions tiebreak (VarBranchOptions a, VarBranchOptions b)
 Combine variable branch options a and b for tie-breaking.
TieBreakVarBranchOptions tiebreak (VarBranchOptions a, VarBranchOptions b, VarBranchOptions c)
 Combine variable branch options a, b, and c for tie-breaking.
TieBreakVarBranchOptions tiebreak (VarBranchOptions a, VarBranchOptions b, VarBranchOptions c, VarBranchOptions d)
 Combine variable branch options a, b, c, and d for tie-breaking.
ExecStatus ES_SUBSUMED (Propagator &p, size_t s)
 Propagator p is subsumed
ExecStatus ES_SUBSUMED (Propagator &p, Space &home)
 Propagator p is subsumed
ExecStatus ES_FIX_PARTIAL (Propagator &p, const ModEventDelta &med)
 Propagator p has computed partial fixpoint
ExecStatus ES_NOFIX_PARTIAL (Propagator &p, const ModEventDelta &med)
 Propagator p has not computed partial fixpoint
template<class A >
ExecStatus ES_SUBSUMED_FIX (A &a, Space &home, Council< A > &c)
 Advisor a is subsumed
template<class A >
ExecStatus ES_SUBSUMED_NOFIX (A &a, Space &home, Council< A > &c)
 Advisor a is subsumed
bool me_failed (ModEvent me)
 Check whether modification event me is failed.
bool me_modified (ModEvent me)
 Check whether modification event me describes variable modification.
template<class Char , class Traits , class T >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const SharedArray< T > &x)
template<class VarImp >
bool same (const VarBase< VarImp > &x, const VarBase< VarImp > &y)
template<class VarImp >
bool before (const VarBase< VarImp > &x, const VarBase< VarImp > &y)
bool shared (const ConstViewBase &, const ConstViewBase &)
 Test whether views share same variable.
template<class VarImp >
bool shared (const VarViewBase< VarImp > &, const ConstViewBase &)
 Test whether views share same variable.
template<class ViewA >
bool shared (const DerivedViewBase< ViewA > &, const ConstViewBase &)
 Test whether views share same variable.
template<class VarImp >
bool shared (const ConstViewBase &, const VarViewBase< VarImp > &)
 Test whether views share same variable.
template<class ViewA >
bool shared (const ConstViewBase &, const DerivedViewBase< ViewA > &)
 Test whether views share same variable.
template<class VarImpA , class VarImpB >
bool shared (const VarViewBase< VarImpA > &, const VarViewBase< VarImpB > &)
 Test whether views share same variable.
template<class VarImpA , class ViewB >
bool shared (const VarViewBase< VarImpA > &, const DerivedViewBase< ViewB > &)
 Test whether views share same variable.
template<class ViewA , class VarImpB >
bool shared (const DerivedViewBase< ViewA > &, const VarViewBase< VarImpB > &)
 Test whether views share same variable.
template<class ViewA , class ViewB >
bool shared (const DerivedViewBase< ViewA > &, const DerivedViewBase< ViewB > &)
 Test whether views share same variable.
template<class VarImp >
bool same (const VarViewBase< VarImp > &x, const VarViewBase< VarImp > &y)
template<class VarImp >
bool before (const VarViewBase< VarImp > &x, const VarViewBase< VarImp > &y)
template<class View >
bool shared (const DerivedViewBase< View > &, const ConstViewBase &)
template<class View >
bool shared (const ConstViewBase &, const DerivedViewBase< View > &)
IntVar abs (Space &home, IntVar x, IntConLevel icl=ICL_DEF)
 Return variable constrained to $|x|$.
IntVar min (Space &home, IntVar x, IntVar y, IntConLevel icl=ICL_DEF)
 Return variable constrained to $\min(x,y)$.
IntVar min (Space &home, const IntVarArgs &x, IntConLevel icl=ICL_DEF)
 Return variable constrained to $\min(x)$.
IntVar max (Space &home, IntVar x, IntVar y, IntConLevel icl=ICL_DEF)
 Return variable constrained to $\max(x,y)$.
IntVar max (Space &home, const IntVarArgs &x, IntConLevel icl=ICL_DEF)
 Return variable constrained to $\max(x)$.
IntVar mult (Space &home, IntVar x, IntVar y, IntConLevel icl=ICL_DEF)
 Return variable constrained to $x\cdot y$.
IntVar div (Space &home, IntVar x, IntVar y, IntConLevel icl=ICL_DEF)
 Return variable constrained to $x\ \mathrm{div}\ y$.
IntVar mod (Space &home, IntVar x, IntVar y, IntConLevel icl=ICL_DEF)
 Return variable constrained to $x\ \mathrm{mod}\ y$.
IntVar sqr (Space &home, IntVar x, IntConLevel icl=ICL_DEF)
 Return variable constrained to $x^2$.
IntVar sqrt (Space &home, IntVar x, IntConLevel icl=ICL_DEF)
 Return variable constrained to $\lfloor\sqrt{x}\rfloor$.
IntVar plus (Space &home, IntVar x, IntVar y, IntConLevel icl=ICL_DEF)
 Return variable constrained to $x+y$.
IntVar minus (Space &home, IntVar x, IntVar y, IntConLevel icl)
BoolExpr operator&& (const BoolExpr &, const BoolExpr &)
 Conjunction of Boolean expressions.
BoolExpr operator|| (const BoolExpr &, const BoolExpr &)
 Disjunction of Boolean expressions.
BoolExpr operator^ (const BoolExpr &, const BoolExpr &)
 Exclusive-or of Boolean expressions.
template<class Var >
BoolExpr operator~ (const LinRel< Var > &)
 Reification of linear relations.
BoolExpr operator! (const BoolExpr &)
 Negated Boolean expression.
BoolExpr eqv (const BoolExpr &, const BoolExpr &)
 Equivalence of Boolean expressions.
BoolExpr imp (const BoolExpr &, const BoolExpr &)
 Implication of Boolean expressions.
BoolVar post (Space &home, const BoolExpr &e, IntConLevel icl=ICL_DEF)
 Post Boolean expression and return its value.
BoolVar post (Space &home, const BoolVar &b, IntConLevel icl=ICL_DEF)
 Post Boolean expression (special case for variable) and return its value.
BoolRel tt (const BoolExpr &)
 State that Boolean expression must be true.
BoolRel ff (const BoolExpr &)
 State that Boolean expression must be false.
void post (Space &home, const BoolRel &r, IntConLevel icl=ICL_DEF)
 Post Boolean relation.
LinExpr< IntVaroperator+ (int, const IntVar &)
 Construct linear expression as sum of variable and integer.
LinExpr< IntVaroperator+ (int, const LinExpr< IntVar > &)
 Construct linear expression as sum of linear expression and integer.
LinExpr< IntVaroperator+ (const IntVar &, int)
 Construct linear expression as sum of integer and linear expression.
LinExpr< IntVaroperator+ (const LinExpr< IntVar > &, int)
 Construct linear expression as sum of integer and variable.
LinExpr< IntVaroperator+ (const IntVar &, const IntVar &)
 Construct linear expression as sum of variables.
LinExpr< IntVaroperator+ (const IntVar &, const LinExpr< IntVar > &)
 Construct linear expression as sum of variable and linear expression.
LinExpr< IntVaroperator+ (const LinExpr< IntVar > &, const IntVar &)
 Construct linear expression as sum of linear expression and variable.
LinExpr< IntVaroperator+ (const LinExpr< IntVar > &, const LinExpr< IntVar > &)
 Construct linear expression as sum of linear expressions.
LinExpr< IntVaroperator- (int, const IntVar &)
 Construct linear expression as sum of variable and integer.
LinExpr< IntVaroperator- (int, const LinExpr< IntVar > &)
 Construct linear expression as sum of linear expression and integer.
LinExpr< IntVaroperator- (const IntVar &, int)
 Construct linear expression as sum of integer and linear expression.
LinExpr< IntVaroperator- (const LinExpr< IntVar > &, int)
 Construct linear expression as sum of integer and variable.
LinExpr< IntVaroperator- (const IntVar &, const IntVar &)
 Construct linear expression as sum of variables.
LinExpr< IntVaroperator- (const IntVar &, const LinExpr< IntVar > &)
 Construct linear expression as sum of variable and linear expression.
LinExpr< IntVaroperator- (const LinExpr< IntVar > &, const IntVar &)
 Construct linear expression as sum of linear expression and variable.
LinExpr< IntVaroperator- (const LinExpr< IntVar > &, const LinExpr< IntVar > &)
 Construct linear expression as sum of linear expressions.
LinExpr< IntVaroperator- (const IntVar &)
 Construct linear expression as negative of variable.
LinExpr< IntVaroperator- (const LinExpr< IntVar > &)
 Construct linear expression as negative of linear expression.
LinExpr< IntVaroperator* (int, const IntVar &)
 Construct linear expression as product of integer coefficient and integer variable.
LinExpr< IntVaroperator* (const IntVar &, int)
 Construct linear expression as product of integer coefficient and integer variable.
LinExpr< IntVaroperator* (const LinExpr< IntVar > &, int)
 Construct linear expression as product of integer coefficient and linear expression.
LinExpr< IntVaroperator* (int, const LinExpr< IntVar > &)
 Construct linear expression as product of integer coefficient and linear expression.
LinExpr< BoolVaroperator+ (int, const BoolVar &)
 Construct linear expression as sum of variable and integer.
LinExpr< BoolVaroperator+ (int, const LinExpr< BoolVar > &)
 Construct linear expression as sum of linear expression and integer.
LinExpr< BoolVaroperator+ (const BoolVar &, int)
 Construct linear expression as sum of integer and linear expression.
LinExpr< BoolVaroperator+ (const LinExpr< BoolVar > &, int)
 Construct linear expression as sum of integer and variable.
LinExpr< BoolVaroperator+ (const BoolVar &, const BoolVar &)
 Construct linear expression as sum of variables.
LinExpr< BoolVaroperator+ (const BoolVar &, const LinExpr< BoolVar > &)
 Construct linear expression as sum of variable and linear expression.
LinExpr< BoolVaroperator+ (const LinExpr< BoolVar > &, const BoolVar &)
 Construct linear expression as sum of linear expression and variable.
LinExpr< BoolVaroperator+ (const LinExpr< BoolVar > &, const LinExpr< BoolVar > &)
 Construct linear expression as sum of linear expressions.
LinExpr< BoolVaroperator- (int, const BoolVar &)
 Construct linear expression as sum of variable and integer.
LinExpr< BoolVaroperator- (int, const LinExpr< BoolVar > &)
 Construct linear expression as sum of linear expression and integer.
LinExpr< BoolVaroperator- (const BoolVar &, int)
 Construct linear expression as sum of integer and linear expression.
LinExpr< BoolVaroperator- (const LinExpr< BoolVar > &, int)
 Construct linear expression as sum of integer and variable.
LinExpr< BoolVaroperator- (const BoolVar &, const BoolVar &)
 Construct linear expression as sum of variables.
LinExpr< BoolVaroperator- (const BoolVar &, const LinExpr< BoolVar > &)
 Construct linear expression as sum of variable and linear expression.
LinExpr< BoolVaroperator- (const LinExpr< BoolVar > &, const BoolVar &)
 Construct linear expression as sum of linear expression and variable.
LinExpr< BoolVaroperator- (const LinExpr< BoolVar > &, const LinExpr< BoolVar > &)
 Construct linear expression as sum of linear expressions.
LinExpr< BoolVaroperator- (const BoolVar &)
 Construct linear expression as negative of variable.
LinExpr< BoolVaroperator- (const LinExpr< BoolVar > &)
 Construct linear expression as negative of linear expression.
LinExpr< BoolVaroperator* (int, const BoolVar &)
 Construct linear expression as product of integer coefficient and integer variable.
LinExpr< BoolVaroperator* (const BoolVar &, int)
 Construct linear expression as product of integer coefficient and integer variable.
LinExpr< BoolVaroperator* (const LinExpr< BoolVar > &, int)
 Construct linear expression as product of integer coefficient and linear expression.
LinExpr< BoolVaroperator* (int, const LinExpr< BoolVar > &)
 Construct linear expression as product of integer coefficient and linear expression.
IntVar post (Space &home, const IntVar &x, IntConLevel icl=ICL_DEF)
 Post linear expression (special case for integer variable) and return its value.
IntVar post (Space &home, int n, IntConLevel icl=ICL_DEF)
 Post linear expression (special case for constant) and return its value.
template<class Var >
IntVar post (Space &home, const LinExpr< Var > &e, IntConLevel icl=ICL_DEF)
 Post linear expression and return its value.
LinRel< IntVaroperator== (int l, const IntVar &r)
 Construct linear equality relation.
LinRel< IntVaroperator== (int l, const LinExpr< IntVar > &r)
 Construct linear equality relation.
LinRel< IntVaroperator== (const IntVar &l, int r)
 Construct linear equality relation.
LinRel< IntVaroperator== (const LinExpr< IntVar > &l, int r)
 Construct linear equality relation.
LinRel< IntVaroperator== (const IntVar &l, const IntVar &r)
 Construct linear equality relation.
LinRel< IntVaroperator== (const IntVar &l, const LinExpr< IntVar > &r)
 Construct linear equality relation.
LinRel< IntVaroperator== (const LinExpr< IntVar > &l, const IntVar &r)
 Construct linear equality relation.
LinRel< IntVaroperator== (const LinExpr< IntVar > &l, const LinExpr< IntVar > &r)
 Construct linear equality relation.
LinRel< IntVaroperator!= (int l, const IntVar &r)
 Construct linear disequality relation.
LinRel< IntVaroperator!= (int l, const LinExpr< IntVar > &r)
 Construct linear disequality relation.
LinRel< IntVaroperator!= (const IntVar &l, int r)
 Construct linear disequality relation.
LinRel< IntVaroperator!= (const LinExpr< IntVar > &l, int r)
 Construct linear disequality relation.
LinRel< IntVaroperator!= (const IntVar &l, const IntVar &r)
 Construct linear disequality relation.
LinRel< IntVaroperator!= (const IntVar &l, const LinExpr< IntVar > &r)
 Construct linear disequality relation.
LinRel< IntVaroperator!= (const LinExpr< IntVar > &l, const IntVar &r)
 Construct linear disequality relation.
LinRel< IntVaroperator!= (const LinExpr< IntVar > &l, const LinExpr< IntVar > &r)
 Construct linear disequality relation.
LinRel< IntVaroperator< (int l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator< (int l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator< (const IntVar &l, int r)
 Construct linear inequality relation.
LinRel< IntVaroperator< (const LinExpr< IntVar > &l, int r)
 Construct linear inequality relation.
LinRel< IntVaroperator< (const IntVar &l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator< (const IntVar &l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator< (const LinExpr< IntVar > &l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator< (const LinExpr< IntVar > &l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator<= (int l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator<= (int l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator<= (const IntVar &l, int r)
 Construct linear inequality relation.
LinRel< IntVaroperator<= (const LinExpr< IntVar > &l, int r)
 Construct linear inequality relation.
LinRel< IntVaroperator<= (const IntVar &l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator<= (const IntVar &l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator<= (const LinExpr< IntVar > &l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator<= (const LinExpr< IntVar > &l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator> (int l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator> (int l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator> (const IntVar &l, int r)
 Construct linear inequality relation.
LinRel< IntVaroperator> (const LinExpr< IntVar > &l, int r)
 Construct linear inequality relation.
LinRel< IntVaroperator> (const IntVar &l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator> (const IntVar &l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator> (const LinExpr< IntVar > &l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator> (const LinExpr< IntVar > &l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator>= (int l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator>= (int l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator>= (const IntVar &l, int r)
 Construct linear inequality relation.
LinRel< IntVaroperator>= (const LinExpr< IntVar > &l, int r)
 Construct linear inequality relation.
LinRel< IntVaroperator>= (const IntVar &l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator>= (const IntVar &l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< IntVaroperator>= (const LinExpr< IntVar > &l, const IntVar &r)
 Construct linear inequality relation.
LinRel< IntVaroperator>= (const LinExpr< IntVar > &l, const LinExpr< IntVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator== (int l, const BoolVar &r)
 Construct linear equality relation.
LinRel< BoolVaroperator== (int l, const LinExpr< BoolVar > &r)
 Construct linear equality relation.
LinRel< BoolVaroperator== (const BoolVar &l, int r)
 Construct linear equality relation.
LinRel< BoolVaroperator== (const LinExpr< BoolVar > &l, int r)
 Construct linear equality relation.
LinRel< BoolVaroperator== (const BoolVar &l, const BoolVar &r)
 Construct linear equality relation.
LinRel< BoolVaroperator== (const BoolVar &l, const LinExpr< BoolVar > &r)
 Construct linear equality relation.
LinRel< BoolVaroperator== (const LinExpr< BoolVar > &l, const BoolVar &r)
 Construct linear equality relation.
LinRel< BoolVaroperator== (const LinExpr< BoolVar > &l, const LinExpr< BoolVar > &r)
 Construct linear equality relation.
LinRel< BoolVaroperator!= (int l, const BoolVar &r)
 Construct linear disequality relation.
LinRel< BoolVaroperator!= (int l, const LinExpr< BoolVar > &r)
 Construct linear disequality relation.
LinRel< BoolVaroperator!= (const BoolVar &l, int r)
 Construct linear disequality relation.
LinRel< BoolVaroperator!= (const LinExpr< BoolVar > &l, int r)
 Construct linear disequality relation.
LinRel< BoolVaroperator!= (const BoolVar &l, const BoolVar &r)
 Construct linear disequality relation.
LinRel< BoolVaroperator!= (const BoolVar &l, const LinExpr< BoolVar > &r)
 Construct linear disequality relation.
LinRel< BoolVaroperator!= (const LinExpr< BoolVar > &l, const BoolVar &r)
 Construct linear disequality relation.
LinRel< BoolVaroperator!= (const LinExpr< BoolVar > &l, const LinExpr< BoolVar > &r)
 Construct linear disequality relation.
LinRel< BoolVaroperator< (int l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator< (int l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator< (const BoolVar &l, int r)
 Construct linear inequality relation.
LinRel< BoolVaroperator< (const LinExpr< BoolVar > &l, int r)
 Construct linear inequality relation.
LinRel< BoolVaroperator< (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator< (const BoolVar &l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator< (const LinExpr< BoolVar > &l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator< (const LinExpr< BoolVar > &l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator<= (int l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator<= (int l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator<= (const BoolVar &l, int r)
 Construct linear inequality relation.
LinRel< BoolVaroperator<= (const LinExpr< BoolVar > &l, int r)
 Construct linear inequality relation.
LinRel< BoolVaroperator<= (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator<= (const BoolVar &l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator<= (const LinExpr< BoolVar > &l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator<= (const LinExpr< BoolVar > &l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator> (int l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator> (int l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator> (const BoolVar &l, int r)
 Construct linear inequality relation.
LinRel< BoolVaroperator> (const LinExpr< BoolVar > &l, int r)
 Construct linear inequality relation.
LinRel< BoolVaroperator> (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator> (const BoolVar &l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator> (const LinExpr< BoolVar > &l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator> (const LinExpr< BoolVar > &l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator>= (int l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator>= (int l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator>= (const BoolVar &l, int r)
 Construct linear inequality relation.
LinRel< BoolVaroperator>= (const LinExpr< BoolVar > &l, int r)
 Construct linear inequality relation.
LinRel< BoolVaroperator>= (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator>= (const BoolVar &l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator>= (const LinExpr< BoolVar > &l, const BoolVar &r)
 Construct linear inequality relation.
LinRel< BoolVaroperator>= (const LinExpr< BoolVar > &l, const LinExpr< BoolVar > &r)
 Construct linear inequality relation.
template<class Var >
void post (Space &home, const LinRel< Var > &r, IntConLevel icl=ICL_DEF)
 Post linear relation.
void post (Space &home, bool r, IntConLevel icl=ICL_DEF)
 Make it work for special integer only-case.
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const REG &r)
BoolVar channel (Space &home, IntVar x, IntConLevel icl=ICL_DEF)
 Return Boolean variable equal to $x$.
IntVar channel (Space &home, BoolVar b, IntConLevel icl=ICL_DEF)
 Return integer variable equal to $b$.
void atmost (Space &home, const IntVarArgs &x, int n, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\leq m$.
void atmost (Space &home, const IntVarArgs &x, IntVar y, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\leq m$.
void atmost (Space &home, const IntVarArgs &x, const IntArgs &y, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\leq m$.
void atmost (Space &home, const IntVarArgs &x, int n, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\leq z$.
void atmost (Space &home, const IntVarArgs &x, IntVar y, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\leq z$.
void atmost (Space &home, const IntVarArgs &x, const IntArgs &y, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\leq z$.
void atleast (Space &home, const IntVarArgs &x, int n, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\geq m$.
void atleast (Space &home, const IntVarArgs &x, IntVar y, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\geq m$.
void atleast (Space &home, const IntVarArgs &x, const IntArgs &y, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\geq m$.
void atleast (Space &home, const IntVarArgs &x, int n, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\geq z$.
void atleast (Space &home, const IntVarArgs &x, IntVar y, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\geq z$.
void atleast (Space &home, const IntVarArgs &x, const IntArgs &y, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\geq z$.
void exactly (Space &home, const IntVarArgs &x, int n, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}=m$.
void exactly (Space &home, const IntVarArgs &x, IntVar y, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}=m$.
void exactly (Space &home, const IntVarArgs &x, const IntArgs &y, int m, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}=m$.
void exactly (Space &home, const IntVarArgs &x, int n, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}=z$.
void exactly (Space &home, const IntVarArgs &x, IntVar y, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}=z$.
void exactly (Space &home, const IntVarArgs &x, const IntArgs &y, IntVar z, IntConLevel icl=ICL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}=z$.
void lex (Space &home, const IntVarArgs &x, IntRelType r, const IntVarArgs &y, IntConLevel icl=ICL_DEF)
 Post propagator for lexical order between x and y.
template<class T >
T * bab (T *s, const Search::Options &o=Search::Options::def)
 Perform depth-first branch-and-bound search for subclass T of space s and options o.
template<class T >
T * dfs (T *s, const Search::Options &o=Search::Options::def)
 Invoke depth-first search engine for subclass T of space s with options o.
template<class T >
T * lds (T *s, const Search::Options &o=Search::Options::def)
 Invoke limited-discrepancy search for s as root node and optionso.
template<class T >
T * restart (T *s, const Search::Options &o=Search::Options::def)
 Perform depth-first restart best solution search for subclass T of space s and options o.
void branch (Space &home, const SetVarArgs &x, SetVarBranch vars, SetValBranch vals, const VarBranchOptions &o_vars=VarBranchOptions::def, const ValBranchOptions &o_vals=ValBranchOptions::def)
 Branch over x with variable selection vars and value selection vals.
void branch (Space &home, const SetVarArgs &x, const TieBreakVarBranch< SetVarBranch > &vars, SetValBranch vals, const TieBreakVarBranchOptions &o_vars=TieBreakVarBranchOptions::def, const ValBranchOptions &o_vals=ValBranchOptions::def)
 Branch over x with tie-breaking variable selection vars and value selection vals.
void assign (Space &home, const SetVarArgs &x, SetAssign vals, const ValBranchOptions &o_vals=ValBranchOptions::def)
 Assign all x with value selection vals.
void cardinality (Space &home, SetVar x, unsigned int i, unsigned int j)
 Propagates $ i \leq |s| \leq j $.
void cardinality (Space &home, SetVar s, IntVar x)
 Post propagator for $ |s|=x $.
void convex (Space &home, SetVar x)
 Post propagator that propagates that x is convex.
void convex (Space &home, SetVar x, SetVar y)
 Post propagator that propagates that y is the convex hull of x.
void atmostOne (Space &home, const SetVarArgs &x, unsigned int c)
 Post propagator for $\forall 0\leq i\leq |x| : |x_i|=c$ and $\forall 0\leq i<j\leq |x| : |x_i\cap x_j|\leq 1$.
void dom (Space &home, SetVar x, SetRelType r, int i)
 Propagates $ x \sim_r \{i\}$.
void dom (Space &home, SetVar x, SetRelType r, int i, int j)
 Propagates $ x \sim_r \{i,\dots,j\}$.
void dom (Space &home, SetVar x, SetRelType r, const IntSet &s)
 Propagates $ x \sim_r s$.
void dom (Space &home, SetVar x, SetRelType r, int i, BoolVar b)
 Post propagator for $ (x \sim_r \{i\}) \Leftrightarrow b $.
void dom (Space &home, SetVar x, SetRelType r, int i, int j, BoolVar b)
 Post propagator for $ (x \sim_r \{i,\dots,j\}) \Leftrightarrow b $.
void dom (Space &home, SetVar x, SetRelType r, const IntSet &s, BoolVar b)
 Post propagator for $ (x \sim_r s) \Leftrightarrow b $.
void element (Space &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] $.
void element (Space &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] $.
void element (Space &home, const SetVarArgs &x, IntVar y, SetVar z)
 Post propagator for $ z=\langle x_0,\dots,x_{n-1}\rangle[y] $.
void element (Space &home, const IntSetArgs &s, IntVar y, SetVar z)
 Post propagator for $ z=\langle s_0,\dots,s_{n-1}\rangle[y] $.
void wait (Space &home, SetVar x, void(*c)(Space &home))
 Execute c when x becomes assigned.
void wait (Space &home, const SetVarArgs &x, void(*c)(Space &home))
 Execute c when all variables in x become assigned.
void rel (Space &home, SetVar s, IntRelType r, IntVar x)
 Post propagator for $|s|\geq 1 \land \forall i\in s:\ i \sim_r x$.
void rel (Space &home, IntVar x, IntRelType r, SetVar s)
 Post propagator for $|s|\geq 1 \land \forall i\in s:\ x \sim_r i$.
void min (Space &home, SetVar s, IntVar x)
 Post propagator that propagates that x is the minimal element of s, and that s is not empty.
void notMin (Space &home, SetVar s, IntVar x)
 Post propagator that propagates that x is not the minimal element of s.
void min (Space &home, SetVar s, IntVar x, BoolVar b)
 Post reified propagator for b iff x is the minimal element of s.
void max (Space &home, SetVar s, IntVar x)
 Post propagator that propagates that x is the maximal element of s, and that s is not empty.
void notMax (Space &home, SetVar s, IntVar x)
 Post propagator that propagates that x is not the maximal element of s.
void max (Space &home, SetVar s, IntVar x, BoolVar b)
 Post reified propagator for b iff x is the maximal element of s.
void channel (Space &home, const IntVarArgs &x, SetVar y)
 Post propagator for $\{x_0,\dots,x_{n-1}\}=y$ and $x_i<x_{i+1}$.
void channel (Space &home, const IntVarArgs &x, const SetVarArgs &y)
 Post propagator for $x_i=j \Leftrightarrow i\in y_j$.
void weights (Space &home, const IntArgs &elements, const IntArgs &weights, SetVar x, IntVar y)
 Post propagator for $y = \mathrm{weight}(x)$.
template<class View0 , class View1 >
bool viewarrayshared (const Space &home, const ViewArray< View0 > &va, const View1 &y)
template<>
bool viewarrayshared< Set::SingletonView, Set::SetView > (const Space &, const ViewArray< Set::SingletonView > &, const Set::SetView &)
void rel (Space &home, const IntSet &x, SetOpType op, SetVar y, SetRelType r, SetVar z)
 Post propagator for $ (x \diamond_{\mathit{op}} y) \sim_r z $.
void rel (Space &home, SetVar x, SetOpType op, const IntSet &y, SetRelType r, SetVar z)
 Post propagator for $ (x \diamond_{\mathit{op}} y) \sim_r z $.
void rel (Space &home, SetVar x, SetOpType op, SetVar y, SetRelType r, const IntSet &z)
 Post propagator for $ (x \diamond_{\mathit{op}} y) \sim_r z $.
void rel (Space &home, const IntSet &x, SetOpType op, SetVar y, SetRelType r, const IntSet &z)
 Post propagator for $ (x \diamond_{\mathit{op}} y) \sim_r z $.
void rel (Space &home, SetVar x, SetOpType op, const IntSet &y, SetRelType r, const IntSet &z)
 Post propagator for $ (x \diamond_{\mathit{op}} y) \sim_r z $.
void rel (Space &home, SetVar x, SetOpType op, SetVar y, SetRelType r, SetVar z)
 Post propagator for $ (x \diamond_{\mathit{op}} y) \sim_r z $.
void rel (Space &home, SetOpType op, const SetVarArgs &x, SetVar y)
 Post propagator for $ y = \diamond_{\mathit{op}} x$.
void rel (Space &home, SetOpType op, const SetVarArgs &x, const IntSet &z, SetVar y)
 Post propagator for $ y = \diamond_{\mathit{op}} x \diamond_{\mathit{op}} z$.
template<class View0 , class View1 >
void rel_post (Space &home, View0 x0, SetRelType r, View1 x1)
template<class View0 , class View1 >
void rel_re (Space &home, View0 x, SetRelType r, View1 y, BoolVar b)
void rel (Space &home, SetVar x, SetRelType r, SetVar y)
 Post propagator for $ x \sim_r y$.
void rel (Space &home, SetVar s, SetRelType r, IntVar x)
 Post propagator for $ s \sim_r \{x\}$.
void rel (Space &home, IntVar x, SetRelType r, SetVar s)
 Post propagator for $ \{x\} \sim_r s$.
void rel (Space &home, SetVar x, SetRelType r, SetVar y, BoolVar b)
 Post propagator for $ (x \sim_r y) \Leftrightarrow b $.
void rel (Space &home, SetVar s, SetRelType r, IntVar x, BoolVar b)
 Post propagator for $ (s \sim_r \{x\}) \Leftrightarrow b $.
void rel (Space &home, IntVar x, SetRelType r, SetVar s, BoolVar b)
 Post propagator for $ (\{x\} \sim_r s) \Leftrightarrow b $.
void sequence (Space &home, const SetVarArgs &x)
 Post propagator for $\forall 0\leq i< |x|-1 : \max(x_i)<\min(x_{i+1})$.
void sequence (Space &home, const SetVarArgs &y, SetVar x)
 Post propagator for $\forall 0\leq i< |x|-1 : \max(x_i)<\min(x_{i+1})$ and $ x = \bigcup_{i\in\{0,\dots,n-1\}} y_i $.
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const SetVar &x)
template<class View >
bool same (const Set::ComplementView< View > &x, const Set::ComplementView< View > &y)
template<class View >
bool before (const Set::ComplementView< View > &x, const Set::ComplementView< View > &y)
template<class View >
bool same (const Set::ComplementView< Set::ComplementView< View > > &x, const Set::ComplementView< Set::ComplementView< View > > &y)
template<class View >
bool before (const Set::ComplementView< Set::ComplementView< View > > &x, const Set::ComplementView< Set::ComplementView< View > > &y)
bool same (const Set::ConstantView &x, const Set::ConstantView &y)
bool before (const Set::ConstantView &x, const Set::ConstantView &y)
bool same (const Set::EmptyView &, const Set::EmptyView &)
bool before (const Set::EmptyView &, const Set::EmptyView &)
bool same (const Set::UniverseView &, const Set::UniverseView &)
bool before (const Set::UniverseView &, const Set::UniverseView &)
template<class View >
bool same (const Set::OffsetSetView< View > &x, const Set::OffsetSetView< View > &y)
template<class View >
bool before (const Set::OffsetSetView< View > &x, const Set::OffsetSetView< View > &y)
bool same (const Set::SingletonView &x, const Set::SingletonView &y)
bool before (const Set::SingletonView &x, const Set::SingletonView &y)

Variables

const ModEvent ME_GEN_FAILED = -1
 Generic modification event: failed variable.
const ModEvent ME_GEN_NONE = 0
 Generic modification event: no modification.
const ModEvent ME_GEN_ASSIGNED = 1
 Generic modification event: variable is assigned a value.
const PropCond PC_GEN_NONE = -1
 Propagation condition to be ignored (convenience).
const PropCond PC_GEN_ASSIGNED = 0
 Propagation condition for an assigned variable.
Heap heap
 The single global heap.


Detailed Description

Gecode toplevel namespace.

The Gecode namespace contains nested namespaces for the various submodules (for example Int for the definition of integer propagator classes). Functionality that is used for interfacing (search engines, variables, and so on) or belongs to the Gecode Kernel is contained directly in the Gecode namespace.


Enumeration Type Documentation

Enumerator:
__ES_SUBSUMED  Internal: propagator is subsumed, do not use.
ES_FAILED  Execution has resulted in failure.
ES_NOFIX  Propagation has not computed fixpoint.
ES_OK  Execution is okay.
ES_FIX  Propagation has computed fixpoint.
__ES_PARTIAL  Internal: propagator has computed partial fixpoint, do not use.

Definition at line 553 of file core.hpp.


Function Documentation

template<class Char , class Traits >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const DFA &  d 
) [related]

Definition at line 249 of file dfa.hpp.

template<class Char , class Traits , class T >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const TupleSet &  ts 
) [related]

Definition at line 210 of file tuple-set.hpp.

template<class Char , class Traits >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const IntSet &  is 
) [related]

Definition at line 210 of file int-set-1.hpp.

template<class Char , class Traits >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const IntVar &  x 
) [related]

Definition at line 42 of file print.hpp.

template<class Char , class Traits >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const BoolVar &  x 
) [related]

Definition at line 49 of file print.hpp.

bool Gecode::same ( const Int::ConstIntView &  x,
const Int::ConstIntView &  y 
) [related]

Definition at line 372 of file constint.hpp.

bool Gecode::same ( const Int::IntView &  ,
const Int::ConstIntView &   
) [inline]

Definition at line 376 of file constint.hpp.

bool Gecode::same ( const Int::BoolView &  ,
const Int::ConstIntView &   
) [inline]

Definition at line 380 of file constint.hpp.

bool Gecode::before ( const Int::ConstIntView &  x,
const Int::ConstIntView &  y 
) [related]

Definition at line 384 of file constint.hpp.

bool Gecode::same ( const Int::MinusView &  x,
const Int::MinusView &  y 
) [related]

Definition at line 356 of file minus.hpp.

bool Gecode::before ( const Int::MinusView &  x,
const Int::MinusView &  y 
) [related]

Definition at line 360 of file minus.hpp.

bool Gecode::same ( const Int::NegBoolView &  x,
const Int::NegBoolView &  y 
) [related]

Definition at line 254 of file neg-bool.hpp.

bool Gecode::before ( const Int::NegBoolView &  x,
const Int::NegBoolView &  y 
) [related]

Definition at line 258 of file neg-bool.hpp.

bool Gecode::same ( const Int::OffsetView &  x,
const Int::OffsetView &  y 
) [related]

Definition at line 333 of file offset.hpp.

bool Gecode::before ( const Int::OffsetView &  x,
const Int::OffsetView &  y 
) [related]

Definition at line 337 of file offset.hpp.

template<class Val , class UnsVal >
bool Gecode::same ( const Int::ScaleView< Val, UnsVal > &  x,
const Int::ScaleView< Val, UnsVal > &  y 
) [related]

Definition at line 417 of file scale.hpp.

template<class Val , class UnsVal >
bool Gecode::before ( const Int::ScaleView< Val, UnsVal > &  x,
const Int::ScaleView< Val, UnsVal > &  y 
) [related]

Definition at line 423 of file scale.hpp.

bool Gecode::same ( const Int::ZeroIntView &  ,
const Int::ZeroIntView &   
) [related]

Definition at line 365 of file zero.hpp.

bool Gecode::before ( const Int::ZeroIntView &  ,
const Int::ZeroIntView &   
) [related]

Definition at line 369 of file zero.hpp.

template<class T1 , class T2 >
bool Gecode::operator== ( space_allocator< T1 > const &  al1,
space_allocator< T2 > const &  al2 
) throw () [inline]

Tests two space allocators for equality.

Two allocators are equal when each can release storage allocated from the other.

Definition at line 279 of file allocators.hpp.

template<class T1 , class T2 >
bool Gecode::operator!= ( space_allocator< T1 > const &  al1,
space_allocator< T2 > const &  al2 
) throw () [inline]

Tests two space allocators for inequality.

Two allocators are equal when each can release storage allocated from the other.

Definition at line 291 of file allocators.hpp.

template<class T1 , class T2 >
bool Gecode::operator== ( region_allocator< T1 > const &  al1,
region_allocator< T2 > const &  al2 
) throw () [inline]

Definition at line 443 of file allocators.hpp.

template<class T1 , class T2 >
bool Gecode::operator!= ( region_allocator< T1 > const &  al1,
region_allocator< T2 > const &  al2 
) throw () [inline]

Definition at line 455 of file allocators.hpp.

template<class View >
bool Gecode::__before ( const View &  x,
const View &  y 
) [inline]

Definition at line 905 of file array.hpp.

template<class X , class Y >
bool Gecode::__same ( const X &  x,
const Y &  y 
) [inline]

Definition at line 924 of file array.hpp.

template<class X , class Y >
bool Gecode::__shared ( const X &  x,
const Y &  y 
) [inline]

Definition at line 929 of file array.hpp.

template<class Char , class Traits , class Var >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const VarArray< Var > &  x 
) [related]

Definition at line 1288 of file array.hpp.

template<class Char , class Traits , class View >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const ViewArray< View > &  x 
) [related]

Definition at line 1304 of file array.hpp.

template<class Char , class Traits , class T >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const ArgArrayBase< T > &  x 
) [related]

Definition at line 1320 of file array.hpp.

template<class Char , class Traits , class T >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const SharedArray< T > &  x 
) [related]

Definition at line 217 of file shared-array.hpp.

template<class VarImp >
bool Gecode::same ( const VarBase< VarImp > &  x,
const VarBase< VarImp > &  y 
) [related]

Definition at line 104 of file var.hpp.

template<class VarImp >
bool Gecode::before ( const VarBase< VarImp > &  x,
const VarBase< VarImp > &  y 
) [related]

Definition at line 109 of file var.hpp.

template<class VarImp >
bool Gecode::same ( const VarViewBase< VarImp > &  x,
const VarViewBase< VarImp > &  y 
) [related]

Definition at line 302 of file view.hpp.

template<class VarImp >
bool Gecode::before ( const VarViewBase< VarImp > &  x,
const VarViewBase< VarImp > &  y 
) [related]

Definition at line 307 of file view.hpp.

template<class View >
bool Gecode::shared ( const DerivedViewBase< View > &  ,
const ConstViewBase &   
) [inline]

Definition at line 368 of file view.hpp.

template<class View >
bool Gecode::shared ( const ConstViewBase &  ,
const DerivedViewBase< View > &   
) [inline]

Definition at line 380 of file view.hpp.

template<class Char , class Traits >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const REG &  r 
) [related]

Definition at line 87 of file reg.hpp.

template<class T >
T * Gecode::dfs ( T *  s,
const Search::Options &  o 
) [inline]

Invoke depth-first search engine for subclass T of space s with options o.

Definition at line 77 of file dfs.hpp.

template<class View0 , class View1 >
bool Gecode::viewarrayshared ( const Space &  home,
const ViewArray< View0 > &  va,
const View1 &  y 
) [inline]

Definition at line 51 of file common.hpp.

template<>
bool Gecode::viewarrayshared< Set::SingletonView, Set::SetView > ( const Space &  ,
const ViewArray< Set::SingletonView > &  ,
const Set::SetView &   
) [inline]

template<class View0 , class View1 >
void Gecode::rel_post ( Space &  home,
View0  x0,
SetRelType  r,
View1  x1 
) [inline]

Definition at line 52 of file rel.cpp.

template<class View0 , class View1 >
void Gecode::rel_re ( Space &  home,
View0  x,
SetRelType  r,
View1  y,
BoolVar  b 
) [inline]

Definition at line 101 of file rel.cpp.

template<class Char , class Traits >
std::basic_ostream<Char,Traits>& Gecode::operator<< ( std::basic_ostream< Char, Traits > &  os,
const SetVar &  x 
) [related]

Definition at line 42 of file print.hpp.

template<class View >
bool Gecode::same ( const Set::ComplementView< View > &  x,
const Set::ComplementView< View > &  y 
) [related]

Definition at line 575 of file complement.hpp.

template<class View >
bool Gecode::before ( const Set::ComplementView< View > &  x,
const Set::ComplementView< View > &  y 
) [related]

Definition at line 581 of file complement.hpp.

template<class View >
bool Gecode::same ( const Set::ComplementView< Set::ComplementView< View > > &  x,
const Set::ComplementView< Set::ComplementView< View > > &  y 
) [inline]

Definition at line 587 of file complement.hpp.

template<class View >
bool Gecode::before ( const Set::ComplementView< Set::ComplementView< View > > &  x,
const Set::ComplementView< Set::ComplementView< View > > &  y 
) [inline]

Definition at line 593 of file complement.hpp.

bool Gecode::same ( const Set::ConstantView &  x,
const Set::ConstantView &  y 
) [related]

Definition at line 821 of file const.hpp.

bool Gecode::before ( const Set::ConstantView &  x,
const Set::ConstantView &  y 
) [related]

Definition at line 831 of file const.hpp.

bool Gecode::same ( const Set::EmptyView &  ,
const Set::EmptyView &   
) [related]

Definition at line 845 of file const.hpp.

bool Gecode::before ( const Set::EmptyView &  ,
const Set::EmptyView &   
) [related]

Definition at line 849 of file const.hpp.

bool Gecode::same ( const Set::UniverseView &  ,
const Set::UniverseView &   
) [related]

Definition at line 854 of file const.hpp.

bool Gecode::before ( const Set::UniverseView &  ,
const Set::UniverseView &   
) [related]

Definition at line 858 of file const.hpp.

template<class View >
bool Gecode::same ( const Set::OffsetSetView< View > &  x,
const Set::OffsetSetView< View > &  y 
) [related]

Definition at line 467 of file offset.hpp.

template<class View >
bool Gecode::before ( const Set::OffsetSetView< View > &  x,
const Set::OffsetSetView< View > &  y 
) [related]

Definition at line 473 of file offset.hpp.

bool Gecode::same ( const Set::SingletonView &  x,
const Set::SingletonView &  y 
) [related]

Definition at line 413 of file singleton.hpp.

bool Gecode::before ( const Set::SingletonView &  x,
const Set::SingletonView &  y 
) [related]

Definition at line 417 of file singleton.hpp.


Variable Documentation

The single global heap.

Definition at line 45 of file heap.cpp.