Generated on Thu Apr 11 13:59:40 2019 for Gecode by doxygen 1.6.3

Gecode Namespace Reference
[Linear expressions and relations]

Gecode toplevel namespace More...

Namespaces

namespace  Support
 

Support algorithms and datastructures


namespace  Kernel
 

Kernel functionality


namespace  Search
 

Search engines


namespace  Driver
 

Script commandline driver.


namespace  FlatZinc
 

Interpreter for the FlatZinc language.


namespace  Float
 

Floating point numbers.


namespace  Gist
 

The Gecode Interactive Search Tool.


namespace  Int
 

Finite domain integers.


namespace  Iter
 

Range and value iterators.


namespace  Set
 

Finite integer sets.


namespace  MiniModel
 

Minimalistic modeling support.


namespace  CPProfiler
 

Code that is specific to the CPProfiler.


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  InstanceOptions
 Options for scripts with additional instance parameter More...
class  ArrayTraits< VarArgArray< FloatVar > >
 Traits of FloatVarArgs. More...
class  ArrayTraits< VarArray< FloatVar > >
 Traits of FloatVarArray. More...
class  ArrayTraits< ArgArray< FloatVal > >
 Traits of FloatValArgs. More...
class  ArrayTraits< FloatVarArray >
 Traits of FloatVarArray. More...
class  ArrayTraits< FloatVarArgs >
 Traits of FloatVarArgs. More...
class  ArrayTraits< FloatValArgs >
 Traits of FloatValArgs. More...
class  BranchTraits< FloatVar >
 Traits of FloatVar for branching. More...
class  TraceTraits< Float::FloatView >
 Trace traits for float views. More...
class  FloatVal
 Float value type. More...
class  FloatVar
 Float variables. More...
class  FloatValArgs
 Passing float arguments. More...
class  FloatVarArgs
 Passing float variables. More...
class  FloatVarArray
 Float variable array. More...
class  FloatNumBranch
 Value description class for branching. More...
class  FloatAFC
 Recording AFC information for float variables. More...
class  FloatAction
 Recording actions for float variables. More...
class  FloatCHB
 Recording CHB for float variables. More...
class  FloatVarBranch
 Which variable to select for branching. More...
class  FloatValBranch
 Which values to select for branching first. More...
class  FloatAssign
 Which values to select for assignment. More...
class  FloatTraceDelta
 Trace delta information for float variables. More...
class  StdFloatTracer
 Standard float variable tracer. More...
class  ArrayTraits< VarArgArray< IntVar > >
 Traits of IntVarArgs. More...
class  ArrayTraits< VarArray< IntVar > >
 Traits of IntVarArray. More...
class  ArrayTraits< VarArgArray< BoolVar > >
 Traits of BoolVarArgs. More...
class  ArrayTraits< VarArray< BoolVar > >
 Traits of BoolVarArray. More...
class  ArrayTraits< ArgArray< int > >
 Traits of IntArgs. More...
class  ArrayTraits< ArgArray< IntSet > >
 Traits of IntSetArgs. 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  BranchTraits< IntVar >
 Traits of IntVar for branching. More...
class  BranchTraits< BoolVar >
 Traits of BoolVar for branching. More...
class  IntSetInit
 Integer set initialization. More...
class  IntSetInit< IntSet >
 Initialize integer set with integer set. More...
class  IntSetInit< IntArgs >
 Initialize integer set with integer arguments. More...
class  ArrayTraits< ArgArray< VarImpBase * > >
 Traits of ArgArray<VarImpBase*> More...
class  ArrayTraits< LiteralArgs >
 Traits of LiteralArgs. More...
class  ViewArray< Int::Linear::NoView >
 View array for no view (empty). More...
class  TraceTraits< Int::IntView >
 Trace traits for integer views. More...
class  TraceTraits< Int::BoolView >
 Trace traits for Boolean views. 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  IntArgs
 Passing integer arguments. More...
class  IntVarArgs
 Passing integer variables. More...
class  BoolVarArgs
 Passing Boolean variables. More...
class  IntVarArray
 Integer variable array. More...
class  BoolVarArray
 Boolean variable array. More...
class  Reify
 Reification specification. More...
class  ArrayTraits< ArgArray< TaskType > >
 Traits of TaskTypeArgs. More...
class  DFA
 Deterministic finite automaton (DFA). More...
class  TupleSet
 Class represeting a set of tuples. More...
class  IntAFC
 Recording AFC information for integer variables. More...
class  BoolAFC
 Recording AFC information for Boolean variables. More...
class  IntAction
 Recording actions for integer variables. More...
class  BoolAction
 Recording actions for Boolean variables. More...
class  IntCHB
 Recording CHB for integer variables. More...
class  BoolCHB
 Recording CHB for Boolean variables. More...
class  IntVarBranch
 Which integer variable to select for branching. More...
class  BoolVarBranch
 Which Boolean variable to select for branching. More...
class  IntValBranch
 Which values to select for branching first. More...
class  BoolValBranch
 Which values to select for branching first. More...
class  IntAssign
 Which values to select for assignment. More...
class  BoolAssign
 Which values to select for assignment. More...
class  SymmetryHandle
 A reference-counted pointer to a SymmetryObject. More...
class  ArrayTraits< ArgArray< SymmetryHandle > >
 Traits of Symmetries. More...
class  Symmetries
 Collection of symmetries. More...
class  IntTraceDelta
 Trace delta information for integer variables. More...
class  BoolTraceDelta
 Trace delta information for Boolean variables. More...
class  StdIntTracer
 Standard integer variable tracer. More...
class  StdBoolTracer
 Standard Boolean variable tracer. More...
class  Archive
 Archive representation More...
class  Action
 Class for action management. More...
class  AFC
 Class for AFC (accumulated failure count) management. More...
class  CHB
 Class for CHB management. More...
class  BrancherFilter
 Class storing a branch filter function. More...
class  BrancherNoFilter
 Class withot a branch filter function. More...
class  MeritBase
 Base-class for merit class. More...
class  MeritFunction
 Merit class for user-defined merit function. More...
class  MeritDegree
 Merit class for degree. More...
class  MeritAFC
 Merit class for AFC. More...
class  MeritAction
 Merit class for action. More...
class  MeritCHB
 Merit class for CHB. More...
class  BrancherPrint
 Class storing a print function. More...
class  BrancherNoPrint
 Class without print function. More...
class  TieBreak
 Combine variable selection criteria for tie-breaking. More...
class  BranchTraits
 Traits for branching. More...
class  ValCommit
 Base class for value commit. More...
class  ValCommitFunction
 Class for user-defined value commit. More...
class  ValSelCommitBase
 Base class for value selection and commit. More...
class  ValSelCommit
 Class for value selection and commit. More...
class  ValSel
 Base class for value selection. More...
class  ValSelFunction
 User-defined value selection. More...
class  ValBranch
 Value branching information. More...
class  VarBranch
 Variable branching information. More...
class  ViewSel
 Abstract class for view selection. More...
class  ViewSelNone
 Select the first unassigned view. More...
class  ViewSelRnd
 Select a view randomly. More...
class  ChooseMin
 Choose views with smaller merit values. More...
class  ChooseMax
 Choose views with larger merit values. More...
class  ViewSelChoose
 Choose view according to merit. More...
class  ViewSelChooseTbl
 Choose view according to merit taking tie-break limit into account. More...
class  ViewSelMin
 Select view with least merit. More...
class  ViewSelMinTbl
 Select view with least merit taking tie-break limit into account. More...
class  ViewSelMax
 Select view with largest merit. More...
class  ViewSelMaxTbl
 Select view with largest merit taking tie-break limit into account. More...
class  PosValChoice
 Choice storing position and value More...
class  ViewValNGL
 View-value no-good literal. More...
class  ViewValBrancher
 Generic brancher by view and value selection. More...
class  Pos
 Position information. More...
class  PosChoice
 Choices storing position More...
class  ViewBrancher
 Generic brancher by view selection. More...
class  NoIdxVarImpConf
 Configuration class for variable implementations without index structure. More...
class  VarImpBase
 Base-class for variable implementations. More...
class  VarImpDisposerBase
 Base class for Variable type disposer. More...
class  VarImpDisposer
 Variable implementation 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 branchers. More...
class  Group
 Group baseclass for controlling actors. More...
class  PropagatorGroup
 Group of propagators. More...
class  BrancherGroup
 Group of branchers. More...
class  Home
 Home class for posting propagators More...
class  ViewTraceInfo
 View trace information. More...
class  PostInfo
 Class to set group information when a post function is executed. More...
class  PropagateTraceInfo
 Propagate trace information. More...
class  CommitTraceInfo
 Commit trace information. More...
class  PostTraceInfo
 Post trace information. 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  NGL
 No-good literal recorded during search. More...
class  Choice
 Choice for performing commit More...
class  Brancher
 Base-class for branchers. More...
class  LocalObject
 Local (space-shared) object. More...
class  LocalHandle
 Handles for local (space-shared) objects. More...
class  NoGoods
 No-goods recorded from restarts. More...
class  MetaInfo
 Information passed by meta search engines. 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  Propagators
 Class to iterate over propagators in a group. More...
class  Branchers
 Class to iterate over branchers in a group. More...
class  ArrayTraits
 Traits of arrays in Gecode. More...
class  VarArray
 Variable arrays More...
class  ViewArray
 View arrays. More...
class  ArgArrayBase
 Base-class for argument arrays. More...
class  ArgArray
 Argument array for non-primitive types. More...
class  VarArgArray
 Argument array for variables. More...
class  Rnd
 Random number generator. More...
class  SharedArray
 Shared array with arbitrary number of elements. More...
class  SharedData
 Class for sharing data between spaces. More...
class  SpaceFailed
 Exception: Operation on failed space invoked More...
class  SpaceNotStable
 Exception: Operation on not stable space invoked More...
class  SpaceNotCloned
 Exception: Copy constructor did not call base class copy constructor More...
class  SpaceNoBrancher
 Exception: Commit when no brancher present More...
class  SpaceIllegalAlternative
 Exception: Commit with illegal alternative More...
class  TooManyGroups
 Exception: too many groups More...
class  UnknownPropagator
 Exception: unknown propagator More...
class  TooManyBranchers
 Exception: too many branchers More...
class  UnknownBrancher
 Exception: unknown brancher More...
class  IllegalDecay
 Exception: illegal decay factor More...
class  InvalidFunction
 Exception: invalid function More...
class  UninitializedAFC
 Exception: uninitialized AFC More...
class  UninitializedAction
 Exception: uninitialized action More...
class  UninitializedCHB
 Exception: uninitialized CHB More...
class  UninitializedRnd
 Exception: uninitialized random number generator More...
class  MoreThanOneTracer
 Exception: action has wrong arity 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  FreeList
 Base-class for freelist-managed objects. More...
class  Region
 Handle to region. More...
class  ViewAdvisor
 Advisor storing a single view 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  SubscribedPropagators
 Iterator over subscribed propagators. More...
class  UnaryWait
 Wait propagator for single view. More...
class  NaryWait
 Wait propagator for several views. More...
class  RangeList
 Lists of ranges (intervals). More...
class  SharedHandle
 The shared handle. More...
class  TFE
 Trace filter expressions. More...
class  TraceFilter
 Trace filters. More...
class  ViewTraceRecorder
 Propagator for recording view trace information. More...
class  TraceRecorder
 Propagator for recording trace information. More...
class  TracerBase
 Class to provide synchronization. More...
class  ViewTracer
 Tracer that process view trace information. More...
class  Tracer
 Tracer. More...
class  StdTracer
 Default tracer. More...
class  TraceTraits
 Traits for tracing. More...
class  AllVarConf
 Configuration for all variable implementations. More...
class  Var
 Base class for variables. More...
class  VarImpVar
 Variables as interfaces to variable implementations. More...
class  ConstView
 Base-class for constant views. More...
class  VarImpView
 Base-class for variable implementation views. More...
class  DerivedView
 Base-class for derived views. More...
class  BElementExpr
 Boolean element expressions. More...
class  IntPropLevels
 Class for specifying integer propagation levels used by minimodel. More...
class  NonLinIntExpr
 Base class for non-linear expressions over integer variables. More...
class  LinIntExpr
 Linear expressions over integer variables. More...
class  LinIntRel
 Linear relations over integer variables. More...
class  NonLinFloatExpr
 Base class for non-linear float expressions. More...
class  LinFloatExpr
 Float expressions More...
class  LinFloatRel
 Linear relations. More...
class  SetExpr
 Set expressions More...
class  SetCmpRel
 Comparison relation (for two-sided comparisons). More...
class  SetRel
 Set relations More...
class  BoolExpr
 Boolean expressions. More...
class  REG
 Regular expressions over integer values. More...
class  Slice
 A slice of a matrix. More...
class  Matrix
 Matrix-interface for arrays. More...
class  IntMinimizeSpace
 Class for minimizing integer cost. More...
class  IntMaximizeSpace
 Class for maximizing integer cost. More...
class  IntLexMinimizeSpace
 Class for lexicographically minimizing integer costs. More...
class  IntLexMaximizeSpace
 Class for lexicographically maximizing integer costs. More...
class  FloatMinimizeSpace
 Class for minimizing float cost. More...
class  FloatMaximizeSpace
 Class for maximizing float cost. More...
class  ArrayTraits< ArgArray< SEB > >
 Traits of SEBs. More...
class  ArrayTraits< SEBs >
 Traits of SEBs. More...
class  SearchTracer
 Support for tracing search. More...
class  StdSearchTracer
class  CPProfilerSearchTracer
 Class to record search trace info for CPProfiler. More...
class  SEBs
 Passing search engine builder arguments. More...
class  DFS
 Depth-first search engine. More...
class  BAB
 Depth-first branch-and-bound search engine. More...
class  LDS
 Limited discrepancy search engine. More...
class  RBS
 Meta-engine performing restart-based search. More...
class  PBS
 Meta engine using a portfolio of search engines. More...
class  ArrayTraits< VarArgArray< SetVar > >
 Traits of VarArgArray<SetVar> More...
class  ArrayTraits< VarArray< SetVar > >
 Traits of VarArray<SetVar> More...
class  ArrayTraits< SetVarArray >
 Traits of SetVarArray. More...
class  ArrayTraits< SetVarArgs >
 Traits of SetVarArgs. More...
class  BranchTraits< SetVar >
 Traits of SetVar for branching. More...
class  TraceTraits< Set::SetView >
 Trace traits for set views. 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  SetVarArgs
 Passing set variables. More...
class  SetVarArray
 Set variable array More...
class  SetAFC
 Recording AFC information for set variables. More...
class  SetAction
 Recording actions for set variables. More...
class  SetCHB
 Recording CHB for set variables. More...
class  SetVarBranch
 Which variable to select for branching. More...
class  SetValBranch
 Which values to select for branching first. More...
class  SetAssign
 Which value to select for assignment. More...
class  SetTraceDelta
 Trace delta information for set variables. More...
class  StdSetTracer
 Standard set variable tracer. 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...
class  HeapAllocated
 Base class for heap allocated objects. More...

Typedefs

typedef Driver::ScriptBase
< Driver::IgnoreStepOption
< Space > > 
Script
 Base-class for scripts.
typedef Driver::ScriptBase
< Driver::IgnoreStepOption
< IntMinimizeSpace > > 
IntMinimizeScript
 Base-class for scripts for finding solution of lowest integer cost.
typedef Driver::ScriptBase
< Driver::IgnoreStepOption
< IntMaximizeSpace > > 
IntMaximizeScript
 Base-class for scripts for finding solution of highest integer cost.
typedef Driver::ScriptBase
< Driver::IgnoreStepOption
< IntLexMinimizeSpace > > 
IntLexMinimizeScript
 Base-class for scripts for finding solution of lexically lowest integer costs.
typedef Driver::ScriptBase
< Driver::IgnoreStepOption
< IntLexMaximizeSpace > > 
IntLexMaximizeScript
 Base-class for scripts for finding solution of lexically highest integer costs.
typedef Driver::ScriptBase
< Driver::ExtractStepOption
< FloatMinimizeSpace > > 
FloatMinimizeScript
 Base-class for scripts for finding solution of lowest float cost.
typedef Driver::ScriptBase
< Driver::ExtractStepOption
< FloatMaximizeSpace > > 
FloatMaximizeScript
 Base-class for scripts for finding solution of highest float cost.
typedef double FloatNum
 Floating point number base type.
typedef std::function< bool(const
Space &home, FloatVar x, int i)> 
FloatBranchFilter
 Branch filter function type for float variables.
typedef std::function< double(const
Space &home, FloatVar x, int i)> 
FloatBranchMerit
 Branch merit function type for float variables.
typedef std::function
< FloatNumBranch(const Space
&home, FloatVar x, int i)> 
FloatBranchVal
 Branch value function type for float variables.
typedef std::function< void(Space
&home, unsigned int a,
FloatVar x, int i,
FloatNumBranch nl)> 
FloatBranchCommit
 Branch commit function type for float variables.
typedef std::function< void(const
Space &home, const Brancher &b,
unsigned int a, FloatVar x,
int i, const FloatNumBranch &n,
std::ostream &o)> 
FloatVarValPrint
 Function type for explaining branching alternatives for float variables.
typedef ViewTracer
< Float::FloatView
FloatTracer
 Tracer for float variables.
typedef ViewTraceRecorder
< Float::FloatView
FloatTraceRecorder
 Trace recorder for float variables.
typedef ArgArray
< Int::LDSB::Literal
LiteralArgs
 An array of literals.
typedef ArgArray< IntSetIntSetArgs
 Passing set arguments.
typedef ArgArray< TaskTypeTaskTypeArgs
 Argument arrays for passing task type arguments.
typedef SharedArray< int > IntSharedArray
 Arrays of integers that can be shared among several element constraints.
typedef std::function< bool(const
Space &home, IntVar x, int i)> 
IntBranchFilter
 Branch filter function type for integer variables.
typedef std::function< bool(const
Space &home, BoolVar x, int i)> 
BoolBranchFilter
 Branch filter function type for Boolean variables.
typedef std::function< double(const
Space &home, IntVar x, int i)> 
IntBranchMerit
 Branch merit function type for integer variables.
typedef std::function< double(const
Space &home, BoolVar x, int i)> 
BoolBranchMerit
 Branch merit function type for Boolean variables.
typedef std::function< int(const
Space &home, IntVar x, int i)> 
IntBranchVal
 Branch value function type for integer variables.
typedef std::function< int(const
Space &home, BoolVar x, int i)> 
BoolBranchVal
 Branch value function type for Boolean variables.
typedef std::function< void(Space
&home, unsigned int a, IntVar
x, int i, int n)> 
IntBranchCommit
 Branch commit function type for integer variables.
typedef std::function< void(Space
&home, unsigned int a, BoolVar
x, int i, int n)> 
BoolBranchCommit
 Branch commit function type for Boolean variables.
typedef std::function< void(const
Space &home, const Brancher &b,
unsigned int a, IntVar x, int
i, const int &n, std::ostream
&o)> 
IntVarValPrint
 Function type for printing branching alternatives for integer variables.
typedef std::function< void(const
Space &home, const Brancher &b,
unsigned int a, BoolVar x, int
i, const int &n, std::ostream
&o)> 
BoolVarValPrint
 Function type for printing branching alternatives for Boolean variables.
typedef ViewTracer< Int::IntViewIntTracer
 Tracer for integer variables.
typedef ViewTraceRecorder
< Int::IntView
IntTraceRecorder
 Trace recorder for integer variables.
typedef ViewTracer< Int::BoolViewBoolTracer
 Tracer for Boolean variables.
typedef ViewTraceRecorder
< Int::BoolView
BoolTraceRecorder
 Trace recorder for Boolean variables.
typedef std::function< double(const
Space &home, double w, double
b)> 
BranchTbl
 Tie-break limit function.
typedef int ModEvent
 Type for modification events.
typedef int PropCond
 Type for propagation conditions.
typedef int ModEventDelta
 Modification event deltas.
typedef Search::BuilderSEB
 Type for a search engine builder.
typedef std::function< bool(const
Space &home, SetVar x, int i)> 
SetBranchFilter
 Branch filter function type for set variables.
typedef std::function< double(const
Space &home, SetVar x, int i)> 
SetBranchMerit
 Branch merit function type for set variables.
typedef std::function< int(const
Space &home, SetVar x, int i)> 
SetBranchVal
 Branch value function type for set variables.
typedef std::function< void(Space
&home, unsigned int a, SetVar
x, int i, int n)> 
SetBranchCommit
 Branch commit function type 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)> 
SetVarValPrint
 Function type for printing branching alternatives for set variables.
typedef ViewTracer< Set::SetViewSetTracer
 Tracer for set variables.
typedef ViewTraceRecorder
< Set::SetView
SetTraceRecorder
 Trace recorder for set variables.

Enumerations

enum  ScriptMode {
  SM_SOLUTION, SM_TIME, SM_STAT, SM_GIST,
  SM_CPPROFILER
}
 

Different modes for executing scripts.

More...
enum  RestartMode {
  RM_NONE, RM_CONSTANT, RM_LINEAR, RM_LUBY,
  RM_GEOMETRIC
}
 

Different modes for restart-based search.

More...
enum  FloatRelType {
  FRT_EQ, FRT_NQ, FRT_LQ, FRT_LE,
  FRT_GQ, FRT_GR
}
 

Relation types for floats.

More...
enum  ReifyMode { RM_EQV, RM_IMP, RM_PMI }
 

Mode for reification.

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  IntPropLevel {
  IPL_DEF = 0, IPL_VAL = 1, IPL_BND = 2, IPL_DOM = 3,
  IPL_BASIC = 4, IPL_ADVANCED = 8, IPL_BASIC_ADVANCED = IPL_BASIC | IPL_ADVANCED, _IPL_BITS = 4
}
 

Propagation levels for integer propagators.

More...
enum  TaskType { TT_FIXP, TT_FIXS, TT_FIXE }
 

Type of task for scheduling constraints.

More...
enum  ExecStatus {
  __ES_SUBSUMED = -2, ES_FAILED = -1, ES_NOFIX = 0, ES_OK = 0,
  ES_FIX = 1, ES_NOFIX_FORCE = 2, __ES_PARTIAL = 2
}
enum  ActorProperty { AP_DISPOSE = (1 << 0), AP_WEAKLY = (1 << 1), AP_VIEW_TRACE = (1 << 2), AP_TRACE = (1 << 3) }
 

Actor properties.

More...
enum  SpaceStatus { SS_FAILED, SS_SOLVED, SS_BRANCH }
 

Space status

More...
enum  TraceEvent {
  TE_INIT = 1 << 0, TE_PRUNE = 1 << 1, TE_FIX = 1 << 2, TE_FAIL = 1 << 3,
  TE_DONE = 1 << 4, TE_PROPAGATE = 1 << 5, TE_COMMIT = 1 << 6, TE_POST = 1 << 7
}
 

Which events to trace.

More...
enum  SetRelType {
  SRT_EQ, SRT_NQ, SRT_SUB, SRT_SUP,
  SRT_DISJ, SRT_CMPL, SRT_LQ, SRT_LE,
  SRT_GQ, SRT_GR
}
 

Common relation types for sets.

More...
enum  SetOpType { SOT_UNION, SOT_DUNION, SOT_INTER, SOT_MINUS }
 

Common operations for sets.

More...

Functions

void abs (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ |x_0|=x_1$.
void max (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $ \max\{x_0,x_1\}=x_2$.
void max (Home home, const FloatVarArgs &x, FloatVar y)
 Post propagator for $ \max x=y$ If x is empty, an exception of type Float::TooFewArguments is thrown.
void min (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $ \min\{x_0,x_1\}=x_2$.
void min (Home home, const FloatVarArgs &x, FloatVar y)
 Post propagator for $ \min x=y$ If x is empty, an exception of type Float::TooFewArguments is thrown.
void mult (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $x_0\cdot x_1=x_2$.
void sqr (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $x_0\cdot x_0=x_1$.
void sqrt (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $\sqrt{x_0}=x_1$.
void pow (Home home, FloatVar x0, int n, FloatVar x1)
 Post propagator for ${x_0}^{n}=x_1$ for $n 0$.
void nroot (Home home, FloatVar x0, int n, FloatVar x1)
 Post propagator for ${x_0}^{1/n}=x_1$ for $n 0$.
void div (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$.
void ite (Home home, BoolVar b, FloatVar x, FloatVar y, FloatVar z)
 Post propagator for if-then-else constraint.
FloatAssign FLOAT_ASSIGN_MIN (void)
 Select median value of the lower part.
FloatAssign FLOAT_ASSIGN_MAX (void)
 Select median value of the upper part.
FloatAssign FLOAT_ASSIGN_RND (Rnd r)
 Select median value of a randomly chosen part.
FloatAssign FLOAT_ASSIGN (FloatBranchVal v, FloatBranchCommit c)
Archiveoperator<< (Archive &e, FloatNumBranch nl)
Archiveoperator>> (Archive &e, FloatNumBranch &nl)
FloatValBranch FLOAT_VAL_SPLIT_MIN (void)
 Select values not greater than mean of smallest and largest value.
FloatValBranch FLOAT_VAL_SPLIT_MAX (void)
 Select values greater than mean of smallest and largest value.
FloatValBranch FLOAT_VAL_SPLIT_RND (Rnd r)
 Select values randomly which are not greater or not smaller than mean of largest and smallest value.
FloatValBranch FLOAT_VAL (FloatBranchVal v, FloatBranchCommit c)
FloatVarBranch FLOAT_VAR_NONE (void)
 Select first unassigned variable.
FloatVarBranch FLOAT_VAR_MERIT_MIN (FloatBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with least merit according to branch merit function bm.
FloatVarBranch FLOAT_VAR_MERIT_MAX (FloatBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with highest merit according to branch merit function bm.
FloatVarBranch FLOAT_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking).
FloatVarBranch FLOAT_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree.
FloatVarBranch FLOAT_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree.
FloatVarBranch FLOAT_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count with decay factor d.
FloatVarBranch FLOAT_VAR_AFC_MIN (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count.
FloatVarBranch FLOAT_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count with decay factor d.
FloatVarBranch FLOAT_VAR_AFC_MAX (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count.
FloatVarBranch FLOAT_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with lowest action with decay factor d.
FloatVarBranch FLOAT_VAR_ACTION_MIN (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with lowest action.
FloatVarBranch FLOAT_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with highest action with decay factor d.
FloatVarBranch FLOAT_VAR_ACTION_MAX (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with highest action.
FloatVarBranch FLOAT_VAR_CHB_MIN (BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score.
FloatVarBranch FLOAT_VAR_CHB_MIN (FloatCHB a, BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score.
FloatVarBranch FLOAT_VAR_CHB_MAX (BranchTbl tbl=nullptr)
 Select variable with highest CHB Q-score.
FloatVarBranch FLOAT_VAR_CHB_MAX (FloatCHB a, BranchTbl tbl=nullptr)
 Select variable with highest CHB Q-score.
FloatVarBranch FLOAT_VAR_MIN_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest min.
FloatVarBranch FLOAT_VAR_MIN_MAX (BranchTbl tbl=nullptr)
 Select variable with largest min.
FloatVarBranch FLOAT_VAR_MAX_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest max.
FloatVarBranch FLOAT_VAR_MAX_MAX (BranchTbl tbl=nullptr)
 Select variable with largest max.
FloatVarBranch FLOAT_VAR_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest domain size.
FloatVarBranch FLOAT_VAR_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest domain size.
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree divided by domain size.
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree divided by domain size.
FloatVarBranch FLOAT_VAR_AFC_SIZE_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smalllest accumulated failure count divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_AFC_SIZE_MIN (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count divided by domain size.
FloatVarBranch FLOAT_VAR_AFC_SIZE_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_AFC_SIZE_MAX (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size.
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MIN (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size.
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MAX (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size.
FloatVarBranch FLOAT_VAR_CHB_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size.
FloatVarBranch FLOAT_VAR_CHB_SIZE_MIN (FloatCHB c, BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size.
FloatVarBranch FLOAT_VAR_CHB_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size.
FloatVarBranch FLOAT_VAR_CHB_SIZE_MAX (FloatCHB a, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size.
void branch (Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals.
void branch (Home home, const FloatVarArgs &x, TieBreak< FloatVarBranch > vars, FloatValBranch vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Branch over x with tie-breaking variable selection vars and value selection vals.
void branch (Home home, FloatVar x, FloatValBranch vals, FloatVarValPrint vvp=nullptr)
 Branch over x with value selection vals.
void assign (Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatAssign vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Assign all x with variable selection vars and value selection vals.
void assign (Home home, const FloatVarArgs &x, TieBreak< FloatVarBranch > vars, FloatAssign vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Assign all x with tie-breaking variable selection vars and value selection vals.
void assign (Home home, FloatVar x, FloatAssign vals, FloatVarValPrint vvp=nullptr)
 Assign x with value selection vals.
void branch (Home home, const FloatVarArgs &x, FloatValBranch vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Branch over x with value selection vals.
void assign (Home home, const FloatVarArgs &x, FloatAssign vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Assign all x with value selection vals.
void channel (Home home, FloatVar x0, IntVar x1)
 Post propagator for channeling a float and an integer variable $ x_0 = x_1$.
void channel (Home home, FloatVar x0, BoolVar x1)
 Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$.
void channel (Home home, IntVar x0, FloatVar x1)
 Post propagator for channeling a float and an integer variable $ x_0 = x_1$.
void channel (Home home, BoolVar x0, FloatVar x1)
 Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$.
void dom (Home home, FloatVar x, FloatVal n)
 Propagates $x=n$.
void dom (Home home, const FloatVarArgs &x, FloatVal n)
 Propagates $ x_i=n$ for all $0\leq i<|x|$.
void dom (Home home, FloatVar x, FloatNum l, FloatNum m)
 Propagates $ l\leq x\leq u$.
void dom (Home home, const FloatVarArgs &x, FloatNum l, FloatNum u)
 Propagates $ l\leq x_i\leq u$ for all $0\leq i<|x|$.
void dom (Home home, FloatVar x, FloatVal n, Reify r)
 Post domain consistent propagator for $ (x=n) \equiv r$.
void dom (Home home, FloatVar x, FloatNum l, FloatNum u, Reify r)
 Post domain consistent propagator for $ (l\leq x \leq u) \equiv r$.
void dom (Home home, FloatVar x, FloatVar d)
 Constrain domain of x according to domain of d.
void dom (Home home, const FloatVarArgs &x, const FloatVarArgs &d)
 Constrain domain of $ x_i $ according to domain of $ d_i $ for all $0\leq i<|x|$.
void wait (Home home, FloatVar x, std::function< void(Space &home)> c)
 Execute c when x becomes assigned.
void wait (Home home, const FloatVarArgs &x, std::function< void(Space &home)> c)
 Execute c when all variables in x become assigned.
void linear (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVal c)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{frt} c$.
void linear (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVal c, Reify r)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_{frt} c\right)\equiv r$.
void linear (Home home, const FloatValArgs &a, const FloatVarArgs &x, FloatRelType frt, FloatVal c)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{frt} c$.
void linear (Home home, const FloatValArgs &a, const FloatVarArgs &x, FloatRelType frt, FloatVal c, Reify r)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{frt} c\right)\equiv r$.
void linear (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVar y)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{frt} y$.
void linear (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVar y, Reify r)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_{frt} y\right)\equiv r$.
void linear (Home home, const FloatValArgs &a, const FloatVarArgs &x, FloatRelType frt, FloatVar y)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{frt} y$.
void linear (Home home, const FloatValArgs &a, const FloatVarArgs &x, FloatRelType frt, FloatVar y, Reify r)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{frt} y\right)\equiv r$.
FloatNum pi_half_lower (void)
 Return lower bound of $\pi/2$.
FloatNum pi_half_upper (void)
 Return upper bound of $\pi/2$.
FloatNum pi_lower (void)
 Return lower bound of $\pi$.
FloatNum pi_upper (void)
 Return upper bound of $\pi$.
FloatNum pi_twice_lower (void)
 Return lower bound of $2\pi$.
FloatNum pi_twice_upper (void)
 Return upper bound of $2\pi$.
void rel (Home home, FloatVar x, FloatRelType frt, FloatVal c)
 Propagates $ x \sim_{frt} c$.
void rel (Home home, FloatVar x0, FloatRelType frt, FloatVar x1)
 Post propagator for $ x_0 \sim_{frt} x_1$.
void rel (Home home, FloatVar x0, FloatRelType frt, FloatVar x1, Reify r)
 Post propagator for $(x_0 \sim_{frt} x_1)\equiv r$.
void rel (Home home, FloatVar x, FloatRelType frt, FloatVal c, Reify r)
 Post propagator for $(x \sim_{frt} c)\equiv r$.
void rel (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVal c)
 Propagates $ x_i \sim_{frt} c $ for all $0\leq i<|x|$.
void rel (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVar y)
 Propagates $ x_i \sim_{frt} y $ for all $0\leq i<|x|$.
void relax (Home home, const FloatVarArgs &x, const FloatVarArgs &sx, Rnd r, double p)
void trace (Home home, const FloatVarArgs &x, TraceFilter tf, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), FloatTracer &t=StdFloatTracer::def)
 Create a tracer for float variables.
void trace (Home home, const FloatVarArgs &x, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), FloatTracer &t=StdFloatTracer::def)
 Create a tracer for float variables.
void exp (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{exp}(x_0)=x_1$.
void log (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{log}_e(x_0)=x_1$.
void log (Home home, FloatNum base, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{log}_{\mathit{base}}(x_0)=x_1$.
void pow (Home home, FloatNum base, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathit{base}^{x_0}=x_1$.
void asin (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{asin}(x_0)=x_1$.
void sin (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{sin}(x_0)=x_1$.
void acos (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{acos}(x_0)=x_1$.
void cos (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{cos}(x_0)=x_1$.
void atan (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{atan}(x_0)=x_1$.
void tan (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{tan}(x_0)=x_1$.
FloatVal operator+ (const FloatVal &x)
FloatVal operator- (const FloatVal &x)
FloatVal operator+ (const FloatVal &x, const FloatVal &y)
FloatVal operator+ (const FloatVal &x, const FloatNum &y)
FloatVal operator+ (const FloatNum &x, const FloatVal &y)
FloatVal operator- (const FloatVal &x, const FloatVal &y)
FloatVal operator- (const FloatVal &x, const FloatNum &y)
FloatVal operator- (const FloatNum &x, const FloatVal &y)
FloatVal operator* (const FloatVal &x, const FloatVal &y)
FloatVal operator* (const FloatVal &x, const FloatNum &y)
FloatVal operator* (const FloatNum &x, const FloatVal &y)
FloatVal operator/ (const FloatVal &x, const FloatVal &y)
FloatVal operator/ (const FloatVal &x, const FloatNum &y)
FloatVal operator/ (const FloatNum &x, const FloatVal &y)
bool operator< (const FloatVal &x, const FloatVal &y)
bool operator< (const FloatVal &x, const FloatNum &y)
bool operator<= (const FloatVal &x, const FloatVal &y)
bool operator<= (const FloatVal &x, const FloatNum &y)
bool operator> (const FloatVal &x, const FloatVal &y)
bool operator> (const FloatVal &x, const FloatNum &y)
bool operator>= (const FloatVal &x, const FloatVal &y)
bool operator>= (const FloatVal &x, const FloatNum &y)
bool operator== (const FloatVal &x, const FloatVal &y)
bool operator== (const FloatVal &x, const FloatNum &y)
bool operator!= (const FloatVal &x, const FloatVal &y)
bool operator!= (const FloatVal &x, const FloatNum &y)
bool operator< (const FloatNum &x, const FloatVal &y)
bool operator<= (const FloatNum &x, const FloatVal &y)
bool operator> (const FloatNum &x, const FloatVal &y)
bool operator>= (const FloatNum &x, const FloatVal &y)
bool operator== (const FloatNum &x, const FloatVal &y)
bool operator!= (const FloatNum &x, const FloatVal &y)
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const FloatVal &x)
FloatVal abs (const FloatVal &x)
FloatVal sqrt (const FloatVal &x)
FloatVal sqr (const FloatVal &x)
FloatVal pow (const FloatVal &x, int n)
FloatVal nroot (const FloatVal &x, int n)
FloatVal max (const FloatVal &x, const FloatVal &y)
FloatVal max (const FloatVal &x, const FloatNum &y)
FloatVal max (const FloatNum &x, const FloatVal &y)
FloatVal min (const FloatVal &x, const FloatVal &y)
FloatVal min (const FloatVal &x, const FloatNum &y)
FloatVal min (const FloatNum &x, const FloatVal &y)
FloatVal exp (const FloatVal &x)
FloatVal log (const FloatVal &x)
FloatVal fmod (const FloatVal &x, const FloatVal &y)
FloatVal fmod (const FloatVal &x, const FloatNum &y)
FloatVal fmod (const FloatNum &x, const FloatVal &y)
FloatVal sin (const FloatVal &x)
FloatVal cos (const FloatVal &x)
FloatVal tan (const FloatVal &x)
FloatVal asin (const FloatVal &x)
FloatVal acos (const FloatVal &x)
FloatVal atan (const FloatVal &x)
FloatVal sinh (const FloatVal &x)
FloatVal cosh (const FloatVal &x)
FloatVal tanh (const FloatVal &x)
FloatVal asinh (const FloatVal &x)
FloatVal acosh (const FloatVal &x)
FloatVal atanh (const FloatVal &x)
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const FloatVar &x)
void abs (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ |x_0|=x_1$.
void max (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \max\{x_0,x_1\}=x_2$.
void max (Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \max x=y$.
void min (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \min\{x_0,x_1\}=x_2$.
void min (Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \min x=y$.
void argmax (Home home, const IntVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)=y$.
void argmax (Home home, const IntVarArgs &x, int o, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)+o=y$.
void argmin (Home home, const IntVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)=y$.
void argmin (Home home, const IntVarArgs &x, int o, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)+o=y$.
void argmax (Home home, const BoolVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)=y$.
void argmax (Home home, const BoolVarArgs &x, int o, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)-o=y$.
void argmin (Home home, const BoolVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)=y$.
void argmin (Home home, const BoolVarArgs &x, int o, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)-o=y$.
void mult (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0\cdot x_1=x_2$.
void divmod (Home home, IntVar x0, IntVar x1, IntVar x2, IntVar x3, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0\ \mathrm{div}\ x_1=x_2 \land x_0\ \mathrm{mod}\ x_1 = x_3$.
void div (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$.
void mod (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0\ \mathrm{mod}\ x_1=x_2$.
void sqr (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0^2=x_1$.
void sqrt (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\lfloor\sqrt{x_0}\rfloor=x_1$.
void pow (Home home, IntVar x0, int n, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0^n=x_1$.
void nroot (Home home, IntVar x0, int n, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\lfloor\sqrt[n]{x_0}\rfloor=x_1$.
void binpacking (Home home, const IntVarArgs &l, const IntVarArgs &b, const IntArgs &s, IntPropLevel ipl=IPL_DEF)
 Post propagator for bin packing.
IntSet binpacking (Home home, int d, const IntVarArgs &l, const IntVarArgs &b, const IntArgs &s, const IntArgs &c, IntPropLevel)
void rel (Home home, BoolVar x0, IntRelType irt, BoolVar x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ x_0 \sim_{irt} x_1$.
void rel (Home home, BoolVar x, IntRelType irt, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $ x \sim_{irt} n$.
void rel (Home home, BoolVar x0, IntRelType irt, BoolVar x1, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $(x_0 \sim_{irt} x_1)\equiv r$.
void rel (Home home, BoolVar x, IntRelType irt, int n, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $(x \sim_{irt} n)\equiv r$.
void rel (Home home, const BoolVarArgs &x, IntRelType irt, BoolVar y, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ x_i \sim_{irt} y $ for all $0\leq i<|x|$.
void rel (Home home, const BoolVarArgs &x, IntRelType irt, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $ x_i \sim_{irt} n $ for all $0\leq i<|x|$.
void rel (Home home, const BoolVarArgs &x, IntRelType irt, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for relation between elements in x.
void rel (Home home, const BoolVarArgs &x, IntRelType irt, const BoolVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for relation between x and y.
void rel (Home home, const BoolVarArgs &x, IntRelType irt, const IntArgs &y, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for relation between x and y.
void rel (Home home, const IntArgs &x, IntRelType irt, const BoolVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for relation between x and y.
void rel (Home home, BoolVar x0, BoolOpType o, BoolVar x1, BoolVar x2, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for Boolean operation on x0 and x1.
void rel (Home home, BoolVar x0, BoolOpType o, BoolVar x1, int n, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for Boolean operation on x0 and x1.
void rel (Home home, BoolOpType o, const BoolVarArgs &x, BoolVar y, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for Boolean operation on x.
void rel (Home home, BoolOpType o, const BoolVarArgs &x, int n, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for Boolean operation on x.
void clause (Home home, BoolOpType o, const BoolVarArgs &x, const BoolVarArgs &y, int n, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for Boolean clause with positive variables x and negative variables y.
void clause (Home home, BoolOpType o, const BoolVarArgs &x, const BoolVarArgs &y, BoolVar z, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for Boolean clause with positive variables x and negative variables y.
void ite (Home home, BoolVar b, IntVar x, IntVar y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for if-then-else constraint.
void ite (Home home, BoolVar b, BoolVar x, BoolVar y, BoolVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for if-then-else constraint.
IntAssign INT_ASSIGN_MIN (void)
 Select smallest value.
IntAssign INT_ASSIGN_MED (void)
 Select greatest value not greater than the median.
IntAssign INT_ASSIGN_MAX (void)
 Select largest value.
IntAssign INT_ASSIGN_RND (Rnd r)
 Select random value.
IntAssign INT_ASSIGN (IntBranchVal v, IntBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c.
BoolAssign BOOL_ASSIGN_MIN (void)
 Select smallest value.
BoolAssign BOOL_ASSIGN_MAX (void)
 Select largest value.
BoolAssign BOOL_ASSIGN_RND (Rnd r)
 Select random value.
BoolAssign BOOL_ASSIGN (BoolBranchVal v, BoolBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c.
IntValBranch INT_VAL_MIN (void)
 Select smallest value.
IntValBranch INT_VAL_MED (void)
 Select greatest value not greater than the median.
IntValBranch INT_VAL_MAX (void)
 Select largest value.
IntValBranch INT_VAL_RND (Rnd r)
 Select random value.
IntValBranch INT_VAL_SPLIT_MIN (void)
 Select values not greater than mean of smallest and largest value.
IntValBranch INT_VAL_SPLIT_MAX (void)
 Select values greater than mean of smallest and largest value.
IntValBranch INT_VAL_RANGE_MIN (void)
 Select the smallest range of the variable domain if it has several ranges, otherwise select values not greater than mean of smallest and largest value.
IntValBranch INT_VAL_RANGE_MAX (void)
 Select the largest range of the variable domain if it has several ranges, otherwise select values greater than mean of smallest and largest value.
IntValBranch INT_VAL (IntBranchVal v, IntBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c Uses a commit function as default that posts the constraints that a variable x must be equal to a value n for the first alternative and that x must be different from n for the second alternative.
IntValBranch INT_VALUES_MIN (void)
 Try all values starting from smallest.
IntValBranch INT_VALUES_MAX (void)
 Try all values starting from largest.
BoolValBranch BOOL_VAL_MIN (void)
 Select smallest value.
BoolValBranch BOOL_VAL_MAX (void)
 Select largest value.
BoolValBranch BOOL_VAL_RND (Rnd r)
 Select random value.
BoolValBranch BOOL_VAL (BoolBranchVal v, BoolBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c Uses a commit function as default that posts the constraints that a variable x must be equal to a value n for the first alternative and that x must be different from n for the second alternative.
IntVarBranch INT_VAR_NONE (void)
 Select first unassigned variable.
IntVarBranch INT_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking).
IntVarBranch INT_VAR_MERIT_MIN (IntBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with least merit according to branch merit function bm.
IntVarBranch INT_VAR_MERIT_MAX (IntBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with highest merit according to branch merit function bm.
IntVarBranch INT_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree.
IntVarBranch INT_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree.
IntVarBranch INT_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count with decay factor d.
IntVarBranch INT_VAR_AFC_MIN (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count.
IntVarBranch INT_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count with decay factor d.
IntVarBranch INT_VAR_AFC_MAX (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count.
IntVarBranch INT_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with lowest action with decay factor d.
IntVarBranch INT_VAR_ACTION_MIN (IntAction a, BranchTbl tbl=nullptr)
 Select variable with lowest action.
IntVarBranch INT_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with highest action with decay factor d.
IntVarBranch INT_VAR_ACTION_MAX (IntAction a, BranchTbl tbl=nullptr)
 Select variable with highest action.
IntVarBranch INT_VAR_CHB_MIN (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score.
IntVarBranch INT_VAR_CHB_MIN (BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score.
IntVarBranch INT_VAR_CHB_MAX (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score.
IntVarBranch INT_VAR_CHB_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score.
IntVarBranch INT_VAR_MIN_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest min.
IntVarBranch INT_VAR_MIN_MAX (BranchTbl tbl=nullptr)
 Select variable with largest min.
IntVarBranch INT_VAR_MAX_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest max.
IntVarBranch INT_VAR_MAX_MAX (BranchTbl tbl=nullptr)
 Select variable with largest max.
IntVarBranch INT_VAR_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest domain size.
IntVarBranch INT_VAR_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest domain size.
IntVarBranch INT_VAR_DEGREE_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree divided by domain size.
IntVarBranch INT_VAR_DEGREE_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree divided by domain size.
IntVarBranch INT_VAR_AFC_SIZE_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count divided by domain size with decay factor d.
IntVarBranch INT_VAR_AFC_SIZE_MIN (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count divided by domain size.
IntVarBranch INT_VAR_AFC_SIZE_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size with decay factor d.
IntVarBranch INT_VAR_AFC_SIZE_MAX (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size.
IntVarBranch INT_VAR_ACTION_SIZE_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size with decay factor d.
IntVarBranch INT_VAR_ACTION_SIZE_MIN (IntAction a, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size.
IntVarBranch INT_VAR_ACTION_SIZE_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size with decay factor d.
IntVarBranch INT_VAR_ACTION_SIZE_MAX (IntAction a, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size.
IntVarBranch INT_VAR_CHB_SIZE_MIN (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size.
IntVarBranch INT_VAR_CHB_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size.
IntVarBranch INT_VAR_CHB_SIZE_MAX (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size.
IntVarBranch INT_VAR_CHB_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size.
IntVarBranch INT_VAR_REGRET_MIN_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest min-regret.
IntVarBranch INT_VAR_REGRET_MIN_MAX (BranchTbl tbl=nullptr)
 Select variable with largest min-regret.
IntVarBranch INT_VAR_REGRET_MAX_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest max-regret.
IntVarBranch INT_VAR_REGRET_MAX_MAX (BranchTbl tbl=nullptr)
 Select variable with largest max-regret.
BoolVarBranch BOOL_VAR_NONE (void)
 Select first unassigned variable.
BoolVarBranch BOOL_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking).
BoolVarBranch BOOL_VAR_MERIT_MIN (BoolBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with least merit according to branch merit function bm.
BoolVarBranch BOOL_VAR_MERIT_MAX (BoolBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with highest merit according to branch merit function bm.
BoolVarBranch BOOL_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree.
BoolVarBranch BOOL_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree.
BoolVarBranch BOOL_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count with decay factor d.
BoolVarBranch BOOL_VAR_AFC_MIN (BoolAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count.
BoolVarBranch BOOL_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count with decay factor d.
BoolVarBranch BOOL_VAR_AFC_MAX (BoolAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count.
BoolVarBranch BOOL_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with lowest action with decay factor d.
BoolVarBranch BOOL_VAR_ACTION_MIN (BoolAction a, BranchTbl tbl=nullptr)
 Select variable with lowest action.
BoolVarBranch BOOL_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with highest action with decay factor d.
BoolVarBranch BOOL_VAR_ACTION_MAX (BoolAction a, BranchTbl tbl=nullptr)
 Select variable with highest action.
BoolVarBranch BOOL_VAR_CHB_MIN (BoolCHB c, BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score.
BoolVarBranch BOOL_VAR_CHB_MIN (BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score.
BoolVarBranch BOOL_VAR_CHB_MAX (BoolCHB c, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score.
BoolVarBranch BOOL_VAR_CHB_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score.
void branch (Home home, const IntVarArgs &x, IntVarBranch vars, IntValBranch vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals.
void branch (Home home, const IntVarArgs &x, TieBreak< IntVarBranch > vars, IntValBranch vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Branch over x with tie-breaking variable selection vars and value selection vals.
void branch (Home home, IntVar x, IntValBranch vals, IntVarValPrint vvp=nullptr)
 Branch over x with value selection vals.
void assign (Home home, const IntVarArgs &x, IntVarBranch vars, IntAssign vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with variable selection vars with value selection vals.
void branch (Home home, const IntVarArgs &x, TieBreak< IntVarBranch > vars, IntAssign vals, IntBranchFilter bf, IntVarValPrint vvp)
void assign (Home home, IntVar x, IntAssign vals, IntVarValPrint vvp=nullptr)
 Assign x with value selection vals.
void branch (Home home, const BoolVarArgs &x, BoolVarBranch vars, BoolValBranch vals, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals.
void branch (Home home, const BoolVarArgs &x, TieBreak< BoolVarBranch > vars, BoolValBranch vals, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Branch over x with tie-breaking variable selection vars and value selection vals.
void branch (Home home, BoolVar x, BoolValBranch vals, BoolVarValPrint vvp=nullptr)
 Branch over x with value selection vals.
void assign (Home home, const BoolVarArgs &x, BoolVarBranch vars, BoolAssign vals, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Assign all x with variable selection vars with value selection vals.
void assign (Home home, const BoolVarArgs &x, TieBreak< BoolVarBranch > vars, BoolAssign vals, BoolBranchFilter bf, BoolVarValPrint vvp)
void assign (Home home, BoolVar x, BoolAssign vals, BoolVarValPrint vvp=nullptr)
 Assign x with value selection vals.
void branch (Home home, const IntVarArgs &x, IntValBranch vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Branch over x with value selection vals.
void branch (Home home, const BoolVarArgs &x, BoolValBranch vals, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Branch over x with value selection vals.
void assign (Home home, const IntVarArgs &x, IntAssign vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with value selection vals.
void assign (Home home, const BoolVarArgs &x, BoolAssign vals, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Assign all x with value selection vals.
void channel (Home home, const IntVarArgs &x, int xoff, const IntVarArgs &y, int yoff, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_i - \mathit{xoff} = j\leftrightarrow y_j - \mathit{yoff} = i$ for all $0\leq i<|x|$.
void channel (Home home, const IntVarArgs &x, const IntVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_i = j\leftrightarrow y_j=i$ for all $0\leq i<|x|$.
void channel (Home home, BoolVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for channeling a Boolean and an integer variable $ x_0 = x_1$.
void channel (Home home, const BoolVarArgs &x, IntVar y, int o=0, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for channeling Boolean and integer variables $ x_i = 1\leftrightarrow y=i+o$.
void channel (Home home, IntVar x0, BoolVar x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for channeling an integer and a Boolean variable $ x_0 = x_1$.
void circuit (Home home, int offset, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit.
void circuit (Home home, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit.
void circuit (Home home, const IntArgs &c, int offset, const IntVarArgs &x, const IntVarArgs &y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit with costs y and z.
void circuit (Home home, const IntArgs &c, const IntVarArgs &x, const IntVarArgs &y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit with costs y and z.
void circuit (Home home, const IntArgs &c, int offset, const IntVarArgs &x, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit with cost z.
void circuit (Home home, const IntArgs &c, const IntVarArgs &x, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit with cost z.
void path (Home home, int offset, const IntVarArgs &x, IntVar s, IntVar e, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a Hamiltonian path.
void path (Home home, const IntVarArgs &x, IntVar s, IntVar e, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a Hamiltonian path.
void path (Home home, const IntArgs &c, int offset, const IntVarArgs &x, IntVar s, IntVar e, const IntVarArgs &y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a Hamiltonian path with costs y and z.
void path (Home home, const IntArgs &c, const IntVarArgs &x, IntVar s, IntVar e, const IntVarArgs &y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a Hamiltonian path with costs y and z.
void path (Home home, const IntArgs &c, int offset, const IntVarArgs &x, IntVar s, IntVar e, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a Hamiltonian path with cost z.
void path (Home home, const IntArgs &c, const IntVarArgs &x, IntVar s, IntVar e, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a Hamiltonian path with cost z.
void count (Home home, const IntVarArgs &x, int n, IntRelType irt, int m, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\sim_{irt} m$.
void count (Home home, const IntVarArgs &x, IntVar y, IntRelType irt, int m, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_{irt} m$.
void count (Home home, const IntVarArgs &x, const IntSet &y, IntRelType irt, int m, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i\in y\}\sim_{irt} m$.
void count (Home home, const IntVarArgs &x, const IntArgs &y, IntRelType irt, int m, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\sim_{irt} m$.
void count (Home home, const IntVarArgs &x, int n, IntRelType irt, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\sim_{irt} z$.
void count (Home home, const IntVarArgs &x, IntVar y, IntRelType irt, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_{irt} z$.
void count (Home home, const IntVarArgs &x, const IntSet &y, IntRelType irt, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i\in y\}\sim_{irt} z$.
void count (Home home, const IntVarArgs &x, const IntArgs &y, IntRelType irt, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\sim_{irt} z$.
void cumulative (Home home, int c, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, const IntArgs &u, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on cumulative resources.
void cumulative (Home home, IntVar c, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, const IntArgs &u, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on cumulative resources.
void cumulative (Home home, int c, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, const IntArgs &u, const BoolVarArgs &m, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling optional tasks on cumulative resources.
void cumulative (Home home, IntVar c, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, const IntArgs &u, const BoolVarArgs &m, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling optional tasks on cumulative resources.
void cumulative (Home home, int c, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on cumulative resources.
void cumulative (Home home, IntVar c, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on cumulative resources.
void cumulative (Home home, int c, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, const BoolVarArgs &m, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling optional tasks on cumulative resources.
void cumulative (Home home, IntVar c, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, const BoolVarArgs &m, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling optional tasks on cumulative resources.
void cumulative (Home home, int c, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on cumulative resources.
void cumulative (Home home, IntVar c, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on cumulative resources.
void cumulative (Home home, int c, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, const BoolVarArgs &m, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling optional tasks on cumulative resources.
void cumulative (Home home, IntVar c, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, const BoolVarArgs &m, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling optional tasks on cumulative resources.
void cumulatives (Home home, const IntVarArgs &m, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntVarArgs &u, const IntArgs &c, bool at_most, IntPropLevel ipl=IPL_DEF)
 Post propagators for the cumulatives constraint.
void cumulatives (Home home, const IntArgs &m, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntVarArgs &u, const IntArgs &c, bool at_most, IntPropLevel ipl=IPL_DEF)
 Post propagators for the cumulatives constraint.
void cumulatives (Home home, const IntVarArgs &m, const IntVarArgs &s, const IntArgs &p, const IntVarArgs &e, const IntVarArgs &u, const IntArgs &c, bool at_most, IntPropLevel ipl=IPL_DEF)
 Post propagators for the cumulatives constraint.
void cumulatives (Home home, const IntArgs &m, const IntVarArgs &s, const IntArgs &p, const IntVarArgs &e, const IntVarArgs &u, const IntArgs &c, bool at_most, IntPropLevel ipl=IPL_DEF)
 Post propagators for the cumulatives constraint.
void cumulatives (Home home, const IntVarArgs &m, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, const IntArgs &c, bool at_most, IntPropLevel ipl=IPL_DEF)
 Post propagators for the cumulatives constraint.
void cumulatives (Home home, const IntArgs &m, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, const IntArgs &c, bool at_most, IntPropLevel ipl=IPL_DEF)
 Post propagators for the cumulatives constraint.
void cumulatives (Home home, const IntVarArgs &m, const IntVarArgs &s, const IntArgs &p, const IntVarArgs &e, const IntArgs &u, const IntArgs &c, bool at_most, IntPropLevel ipl=IPL_DEF)
 Post propagators for the cumulatives constraint.
void cumulatives (Home home, const IntArgs &m, const IntVarArgs &s, const IntArgs &p, const IntVarArgs &e, const IntArgs &u, const IntArgs &c, bool at_most, IntPropLevel ipl=IPL_DEF)
 Post propagators for the cumulatives constraint.
void distinct (Home home, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_i\neq x_j$ for all $0\leq i\neq j<|x|$.
void distinct (Home home, const IntArgs &n, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_i+n_i\neq x_j+n_j$ for all $0\leq i\neq j<|x|$.
void distinct (Home home, const BoolVarArgs &b, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ b_i=1\wedge b_j=1\to x_i\neq x_j$ for all $0\leq i\neq j<|x|$.
void distinct (Home home, const IntVarArgs &x, int c, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_i=c\vee x_j=c\vee x_i\neq x_j$ for all $0\leq i\neq j<|x|$.
void dom (Home home, IntVar x, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $x=n$.
void dom (Home home, const IntVarArgs &x, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $ x_i=n$ for all $0\leq i<|x|$.
void dom (Home home, IntVar x, int l, int m, IntPropLevel ipl=IPL_DEF)
 Propagates $ l\leq x\leq m$.
void dom (Home home, const IntVarArgs &x, int l, int m, IntPropLevel ipl=IPL_DEF)
 Propagates $ l\leq x_i\leq m$ for all $0\leq i<|x|$.
void dom (Home home, IntVar x, const IntSet &s, IntPropLevel ipl=IPL_DEF)
 Propagates $ x\in s $.
void dom (Home home, const IntVarArgs &x, const IntSet &s, IntPropLevel ipl=IPL_DEF)
 Propagates $ x_i\in s$ for all $0\leq i<|x|$.
void dom (Home home, IntVar x, int n, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ (x=n) \equiv r$.
void dom (Home home, IntVar x, int l, int m, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ (l\leq x \leq m) \equiv r$.
void dom (Home home, IntVar x, const IntSet &s, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ (x \in s) \equiv r$.
void dom (Home home, IntVar x, IntVar d, IntPropLevel ipl=IPL_DEF)
 Constrain domain of x according to domain of d.
void dom (Home home, BoolVar x, BoolVar d, IntPropLevel ipl=IPL_DEF)
 Constrain domain of x according to domain of d.
void dom (Home home, const IntVarArgs &x, const IntVarArgs &d, IntPropLevel ipl=IPL_DEF)
 Constrain domain of $ x_i $ according to domain of $ d_i $ for all $0\leq i<|x|$.
void dom (Home home, const BoolVarArgs &x, const BoolVarArgs &d, IntPropLevel ipl=IPL_DEF)
 Constrain domain of $ x_i $ according to domain of $ d_i $ for all $0\leq i<|x|$.
void element (Home home, IntSharedArray n, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ n_{x_0}=x_1$.
void element (Home home, IntSharedArray n, IntVar x0, BoolVar x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ n_{x_0}=x_1$.
void element (Home home, IntSharedArray n, IntVar x0, int x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ n_{x_0}=x_1$.
void element (Home home, const IntVarArgs &x, IntVar y0, IntVar y1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_{y_0}=y_1$.
void element (Home home, const IntVarArgs &x, IntVar y0, int y1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_{y_0}=y_1$.
void element (Home home, const BoolVarArgs &x, IntVar y0, BoolVar y1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ x_{y_0}=y_1$.
void element (Home home, const BoolVarArgs &x, IntVar y0, int y1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ x_{y_0}=y_1$.
void element (Home home, IntSharedArray a, IntVar x, int w, IntVar y, int h, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ a_{x+w\cdot y}=z$.
void element (Home home, IntSharedArray a, IntVar x, int w, IntVar y, int h, BoolVar z, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ a_{x+w\cdot y}=z$.
void element (Home home, const IntVarArgs &a, IntVar x, int w, IntVar y, int h, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ a_{x+w\cdot y}=z$.
void element (Home home, const BoolVarArgs &a, IntVar x, int w, IntVar y, int h, BoolVar z, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ a_{x+w\cdot y}=z$.
void wait (Home home, IntVar x, std::function< void(Space &home)> c, IntPropLevel ipl=IPL_DEF)
 Execute c when x becomes assigned.
void wait (Home home, BoolVar x, std::function< void(Space &home)> c, IntPropLevel ipl=IPL_DEF)
 Execute c when x becomes assigned.
void wait (Home home, const IntVarArgs &x, std::function< void(Space &home)> c, IntPropLevel ipl=IPL_DEF)
 Execute c when all variables in x become assigned.
void wait (Home home, const BoolVarArgs &x, std::function< void(Space &home)> c, IntPropLevel ipl=IPL_DEF)
 Execute c when all variables in x become assigned.
void when (Home home, BoolVar x, std::function< void(Space &home)> t, std::function< void(Space &home)> e, IntPropLevel ipl=IPL_DEF)
 Execute t (then) when x is assigned one, and e (else) otherwise.
void when (Home home, BoolVar x, std::function< void(Space &home)> t, IntPropLevel ipl=IPL_DEF)
 Execute t (then) when x is assigned one.
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 >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const TupleSet &ts)
void extensional (Home home, const IntVarArgs &x, DFA d, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for extensional constraint described by a DFA.
void extensional (Home home, const BoolVarArgs &x, DFA d, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for extensional constraint described by a DFA.
void extensional (Home home, const IntVarArgs &x, const TupleSet &t, bool pos, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$ or $x\not\in t$.
void extensional (Home home, const IntVarArgs &x, const TupleSet &t, bool pos, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$ or $(x\not\in t)\equiv r$.
void extensional (Home home, const BoolVarArgs &x, const TupleSet &t, bool pos, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$ or $x\not\in t$.
void extensional (Home home, const BoolVarArgs &x, const TupleSet &t, bool pos, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$ or $(x\not\in t)\equiv r$.
void extensional (Home home, const IntVarArgs &x, const TupleSet &t, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$.
void extensional (Home home, const IntVarArgs &x, const TupleSet &t, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$.
void extensional (Home home, const BoolVarArgs &x, const TupleSet &t, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$.
void extensional (Home home, const BoolVarArgs &x, const TupleSet &t, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$.
void count (Home home, const IntVarArgs &x, const IntVarArgs &c, const IntArgs &v, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint.
void count (Home home, const IntVarArgs &x, const IntVarArgs &c, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint.
void count (Home home, const IntVarArgs &x, const IntSetArgs &c, const IntArgs &v, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint.
void count (Home home, const IntVarArgs &x, const IntSetArgs &c, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint.
void count (Home home, const IntVarArgs &x, const IntSet &c, const IntArgs &v, IntPropLevel ipl=IPL_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)
IntPropLevel vbd (IntPropLevel ipl)
 Extract value, bounds, or domain propagation from propagation level.
IntPropLevel ba (IntPropLevel ipl)
 Extract basic or advanced from propagation level.
IntRelType swap (IntRelType irt)
 Return swapped relation type of irt.
IntRelType neg (IntRelType irt)
 Return negated relation type of irt.
SymmetryHandle VariableSymmetry (const IntVarArgs &x)
 Variables in x are interchangeable.
SymmetryHandle VariableSymmetry (const BoolVarArgs &x)
 Variables in x are interchangeable.
SymmetryHandle VariableSymmetry (const IntVarArgs &x, const IntArgs &indices)
 Specified variables in x are interchangeable.
SymmetryHandle ValueSymmetry (const IntArgs &v)
 Values in v are interchangeable.
SymmetryHandle ValueSymmetry (const IntSet &v)
 Values in v are interchangeable.
SymmetryHandle ValueSymmetry (IntVar vars)
 All values in the domain of the given variable are interchangeable.
SymmetryHandle VariableSequenceSymmetry (const IntVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable.
SymmetryHandle VariableSequenceSymmetry (const BoolVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable.
SymmetryHandle ValueSequenceSymmetry (const IntArgs &v, int ss)
 Value sequences in v of size ss are interchangeable.
SymmetryHandle values_reflect (int lower, int upper)
 The values from lower to upper (inclusive) can be reflected.
SymmetryHandle values_reflect (const IntVar &x)
void branch (Home home, const IntVarArgs &x, IntVarBranch vars, IntValBranch vals, const Symmetries &syms, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals with symmetry breaking.
void branch (Home home, const IntVarArgs &x, TieBreak< IntVarBranch > vars, IntValBranch vals, const Symmetries &syms, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Branch over x with tie-breaking variable selection vars and value selection vals with symmetry breaking.
void branch (Home home, const BoolVarArgs &x, BoolVarBranch vars, BoolValBranch vals, const Symmetries &syms, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals with symmetry breaking.
void branch (Home home, const BoolVarArgs &x, TieBreak< BoolVarBranch > vars, BoolValBranch vals, const Symmetries &syms, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Branch over x with tie-breaking variable selection vars and value selection vals with symmetry breaking.
void linear (Home home, const BoolVarArgs &x, IntRelType irt, int c, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{irt} c$.
void linear (Home home, const BoolVarArgs &x, IntRelType irt, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{irt} y$.
void linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, int c, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} c$.
void linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} y$.
void linear (Home home, const BoolVarArgs &x, IntRelType irt, int c, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_{irt} c\right)\equiv r$.
void linear (Home home, const BoolVarArgs &x, IntRelType irt, IntVar y, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_{irt} y\right)\equiv r$.
void linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, int c, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} c\right)\equiv r$.
void linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, IntVar y, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} y\right)\equiv r$.
void linear (Home home, const IntVarArgs &x, IntRelType irt, int c, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{irt} c$.
void linear (Home home, const IntVarArgs &x, IntRelType irt, int c, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_{irt} c\right)\equiv r$.
void linear (Home home, const IntArgs &a, const IntVarArgs &x, IntRelType irt, int c, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} c$.
void linear (Home home, const IntArgs &a, const IntVarArgs &x, IntRelType irt, int c, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} c\right)\equiv r$.
void linear (Home home, const IntVarArgs &x, IntRelType irt, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{irt} y$.
void linear (Home home, const IntVarArgs &x, IntRelType irt, IntVar y, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_{irt} y\right)\equiv r$.
void linear (Home home, const IntArgs &a, const IntVarArgs &x, IntRelType irt, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} y$.
void linear (Home home, const IntArgs &a, const IntVarArgs &x, IntRelType irt, IntVar y, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} y\right)\equiv r$.
void member (Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $y\in \{x_0,\ldots,x_{|x|-1}\}$.
void member (Home home, const BoolVarArgs &x, BoolVar y, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $y\in \{x_0,\ldots,x_{|x|-1}\}$.
void member (Home home, const IntVarArgs &x, IntVar y, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $\left(y\in \{x_0,\ldots,x_{|x|-1}\}\right)\equiv r$.
void member (Home home, const BoolVarArgs &x, BoolVar y, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $\left(y\in \{x_0,\ldots,x_{|x|-1}\}\right)\equiv r$.
void nooverlap (Home home, const IntVarArgs &x, const IntArgs &w, const IntVarArgs &y, const IntArgs &h, IntPropLevel ipl=IPL_DEF)
 Post propagator for rectangle packing.
void nooverlap (Home home, const IntVarArgs &x, const IntArgs &w, const IntVarArgs &y, const IntArgs &h, const BoolVarArgs &o, IntPropLevel ipl=IPL_DEF)
 Post propagator for rectangle packing.
void nooverlap (Home home, const IntVarArgs &x0, const IntVarArgs &w, const IntVarArgs &x1, const IntVarArgs &y0, const IntVarArgs &h, const IntVarArgs &y1, IntPropLevel ipl=IPL_DEF)
 Post propagator for rectangle packing.
void nooverlap (Home home, const IntVarArgs &x0, const IntVarArgs &w, const IntVarArgs &x1, const IntVarArgs &y0, const IntVarArgs &h, const IntVarArgs &y1, const BoolVarArgs &o, IntPropLevel ipl=IPL_DEF)
 Post propagator for rectangle packing.
void nvalues (Home home, const IntVarArgs &x, IntRelType irt, int y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{x_0,\ldots,x_{|x|-1}\}\sim_{irt} y$.
void nvalues (Home home, const IntVarArgs &x, IntRelType irt, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{x_0,\ldots,x_{|x|-1}\}\sim_{irt} y$.
void nvalues (Home home, const BoolVarArgs &x, IntRelType irt, int y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{x_0,\ldots,x_{|x|-1}\}\sim_{irt} y$.
void nvalues (Home home, const BoolVarArgs &x, IntRelType irt, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\#\{x_0,\ldots,x_{|x|-1}\}\sim_{irt} y$.
void order (Home home, IntVar s0, int p0, IntVar s1, int p1, BoolVar b, IntPropLevel ipl=IPL_DEF)
 Post propagators for ordering two tasks.
void precede (Home home, const IntVarArgs &x, int s, int t, IntPropLevel=IPL_DEF)
 Post propagator that s precedes t in x.
void precede (Home home, const IntVarArgs &x, const IntArgs &c, IntPropLevel=IPL_DEF)
 Post propagator that successive values in c precede each other in x.
Reify eqv (BoolVar x)
 Use equivalence for reification.
Reify imp (BoolVar x)
 Use implication for reification.
Reify pmi (BoolVar x)
 Use reverse implication for reification.
void rel (Home home, IntVar x, IntRelType irt, int c, IntPropLevel ipl=IPL_DEF)
 Propagates $ x \sim_{irt} c$.
void rel (Home home, const IntVarArgs &x, IntRelType irt, int c, IntPropLevel ipl=IPL_DEF)
 Propagates $ x_i \sim_{irt} c $ for all $0\leq i<|x|$.
void rel (Home home, IntVar x0, IntRelType irt, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_0 \sim_{irt} x_1$.
void rel (Home home, const IntVarArgs &x, IntRelType irt, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_i \sim_{irt} y $ for all $0\leq i<|x|$.
void rel (Home home, IntVar x0, IntRelType irt, IntVar x1, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ (x_0 \sim_{irt} x_1)\equiv r$.
void rel (Home home, IntVar x, IntRelType irt, int c, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x \sim_{irt} c)\equiv r$.
void rel (Home home, const IntVarArgs &x, IntRelType irt, IntPropLevel ipl=IPL_DEF)
 Post propagator for relation among elements in x.
void rel (Home home, const IntVarArgs &x, IntRelType irt, const IntVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post propagator for relation between x and y.
void rel (Home home, const IntVarArgs &x, IntRelType irt, const IntArgs &y, IntPropLevel ipl=IPL_DEF)
 Post propagator for relation between x and y.
void rel (Home home, const IntArgs &x, IntRelType irt, const IntVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post propagator for relation between x and y.
void relax (Home home, const IntVarArgs &x, const IntVarArgs &sx, Rnd r, double p)
void relax (Home home, const BoolVarArgs &x, const BoolVarArgs &sx, Rnd r, double p)
void sequence (Home home, const IntVarArgs &x, const IntSet &s, int q, int l, int u, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\operatorname{sequence}(x,s,q,l,u)$.
void sequence (Home home, const BoolVarArgs &x, const IntSet &s, int q, int l, int u, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\operatorname{sequence}(x,s,q,l,u)$.
void sorted (Home home, const IntVarArgs &x, const IntVarArgs &y, const IntVarArgs &z, IntPropLevel ipl=IPL_DEF)
 Post propagator that y is x sorted in increasing order.
void sorted (Home home, const IntVarArgs &x, const IntVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post propagator that y is x sorted in increasing order.
void trace (Home home, const IntVarArgs &x, TraceFilter tf, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), IntTracer &t=StdIntTracer::def)
 Create a tracer for integer variables.
void trace (Home home, const BoolVarArgs &x, TraceFilter tf, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), BoolTracer &t=StdBoolTracer::def)
 Create a tracer for Boolean Variables.
void trace (Home home, const IntVarArgs &x, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), IntTracer &t=StdIntTracer::def)
 Create a tracer for integer variables.
void trace (Home home, const BoolVarArgs &x, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), BoolTracer &t=StdBoolTracer::def)
 Create a tracer for Boolean Variables.
void unary (Home home, const IntVarArgs &s, const IntArgs &p, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on unary resources.
void unary (Home home, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on unary resources.
void unary (Home home, const IntVarArgs &s, const IntArgs &p, const BoolVarArgs &m, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling optional tasks on unary resources.
void unary (Home home, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, const BoolVarArgs &m, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling optional tasks on unary resources.
void unary (Home home, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on unary resources.
void unary (Home home, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const BoolVarArgs &m, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling optional tasks on unary resources.
void unshare (Home home, IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Replace multiple variable occurences in x by fresh variables.
void unshare (Home home, BoolVarArgs &x, IntPropLevel ipl=IPL_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)
void assign (Home home, const IntVarArgs &x, TieBreak< IntVarBranch > vars, IntAssign vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with tie-breaking variable selection vars and value selection vals.
void assign (Home home, const BoolVarArgs &x, TieBreak< BoolVarBranch > vars, BoolAssign vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with tie-breaking variable selection vars and value selection vals.
SymmetryHandle values_reflect (IntVar x)
 The values in the domain of can be reflected.
Archiveoperator<< (Archive &e, unsigned int i)
Archiveoperator<< (Archive &e, int i)
Archiveoperator<< (Archive &e, unsigned short i)
Archiveoperator<< (Archive &e, short i)
Archiveoperator<< (Archive &e, unsigned char i)
Archiveoperator<< (Archive &e, char i)
Archiveoperator<< (Archive &e, bool i)
Archiveoperator<< (Archive &e, float d)
Archiveoperator<< (Archive &e, double d)
Archiveoperator>> (Archive &e, unsigned int &i)
Archiveoperator>> (Archive &e, int &i)
Archiveoperator>> (Archive &e, unsigned short &i)
Archiveoperator>> (Archive &e, short &i)
Archiveoperator>> (Archive &e, unsigned char &i)
Archiveoperator>> (Archive &e, char &i)
Archiveoperator>> (Archive &e, bool &i)
Archiveoperator>> (Archive &e, float &d)
Archiveoperator>> (Archive &e, double &d)
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const Action &a)
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const AFC &a)
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const CHB &chb)
void branch (Home home, std::function< void(Space &home)> f)
 Call the function f (with the current space as argument) for branching.
template<class VarBranch >
TieBreak< VarBranchtiebreak (VarBranch a, VarBranch b)
 Combine variable selection criteria a and b for tie-breaking.
template<class VarBranch >
TieBreak< VarBranchtiebreak (VarBranch a, VarBranch b, VarBranch c)
 Combine variable selection criteria a, b, and c for tie-breaking.
template<class VarBranch >
TieBreak< VarBranchtiebreak (VarBranch a, VarBranch b, VarBranch c, VarBranch d)
 Combine variable selection criteria a, b, c, and d for tie-breaking.
template<class View , int n, class Val , unsigned int a>
void postviewvalbrancher (Home home, ViewArray< View > &x, ViewSel< View > *vs[n], ValSelCommitBase< View, Val > *vsc, BranchFilter< typename View::VarType > bf, VarValPrint< typename View::VarType, Val > vvp)
 Post view value brancher.
template<class Var >
ArrayTraits< VarArray< Var >
>::ArgsType 
operator+ (const VarArray< Var > &x, const VarArray< Var > &y)
template<class Var >
ArrayTraits< VarArray< Var >
>::ArgsType 
operator+ (const VarArray< Var > &x, const VarArgArray< Var > &y)
template<class Var >
ArrayTraits< VarArray< Var >
>::ArgsType 
operator+ (const VarArgArray< Var > &x, const VarArray< Var > &y)
template<class Var >
ArrayTraits< VarArray< Var >
>::ArgsType 
operator+ (const VarArray< Var > &x, const Var &y)
template<class Var >
ArrayTraits< VarArray< Var >
>::ArgsType 
operator+ (const Var &x, const VarArray< Var > &y)
template<class ViewX , class ViewY >
bool shared (ViewArray< ViewX > x, ViewArray< ViewY > y)
template<class ViewX , class ViewY >
bool shared (ViewArray< ViewX > x, ViewY y)
template<class ViewX , class ViewY >
bool shared (ViewX x, ViewArray< ViewY > y)
template<class View >
bool shared (ViewArray< View > x)
template<class T >
ArrayTraits< ArgArray< T >
>::ArgsType 
operator+ (const ArgArray< T > &x, const ArgArray< T > &y)
template<class T >
ArrayTraits< ArgArray< T >
>::ArgsType 
operator+ (const ArgArray< T > &x, const T &y)
template<class T >
ArrayTraits< ArgArray< T >
>::ArgsType 
operator+ (const T &x, const ArgArray< T > &y)
template<class Var >
ArrayTraits< VarArgArray< Var >
>::ArgsType 
operator+ (const VarArgArray< Var > &x, const VarArgArray< Var > &y)
template<class Var >
ArrayTraits< VarArgArray< Var >
>::ArgsType 
operator+ (const VarArgArray< Var > &x, const Var &y)
template<class Var >
ArrayTraits< VarArgArray< Var >
>::ArgsType 
operator+ (const Var &x, const VarArgArray< Var > &y)
template<class Var >
bool same (VarArgArray< Var > x, VarArgArray< Var > y)
template<class Var >
bool same (VarArgArray< Var > x, Var y)
template<class Var >
bool same (Var x, VarArgArray< Var > y)
template<class Var >
bool same (VarArgArray< Var > x)
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)
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 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 ()
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.
TFE operator- (const TFE &e)
 Return negative expression of e.
TFE propagator (PropagatorGroup g)
 Only propagators (but not post functions) from g are considered.
TFE post (PropagatorGroup g)
 Only post functions (but not propagators) from g are considered.
TFE operator+ (TFE l, const TFE &r)
 Disjunctive combination of trace filter expressions l and r.
TFE operator+ (const TFE &e)
 Positive expression.
TFE operator- (TFE l, const TFE &r)
 Combine positive expression l and negative expression r.
void trace (Home home, TraceFilter tf, int te=(TE_PROPAGATE|TE_COMMIT|TE_POST), Tracer &t=StdTracer::def)
 Create tracer.
void trace (Home home, int te=(TE_PROPAGATE|TE_COMMIT|TE_POST), Tracer &t=StdTracer::def)
 Create tracer.
template<class ViewA , class ViewB >
bool shared (const ConstView< ViewA > &, const ConstView< ViewB > &)
 Test whether views share same variable.
template<class Var , class View >
bool shared (const VarImpView< Var > &, const ConstView< View > &)
 Test whether views share same variable.
template<class ViewA , class ViewB >
bool shared (const DerivedView< ViewA > &, const ConstView< ViewB > &)
 Test whether views share same variable.
template<class View , class Var >
bool shared (const ConstView< View > &, const VarImpView< Var > &)
 Test whether views share same variable.
template<class ViewA , class ViewB >
bool shared (const ConstView< ViewA > &, const DerivedView< ViewB > &)
 Test whether views share same variable.
template<class VarA , class VarB >
bool shared (const VarImpView< VarA > &, const VarImpView< VarB > &)
 Test whether views share same variable.
template<class Var , class View >
bool shared (const VarImpView< Var > &, const DerivedView< View > &)
 Test whether views share same variable.
template<class View , class Var >
bool shared (const DerivedView< View > &, const VarImpView< Var > &)
 Test whether views share same variable.
template<class ViewA , class ViewB >
bool shared (const DerivedView< ViewA > &, const DerivedView< ViewB > &)
 Test whether views share same variable.
template<class ViewA , class ViewB >
bool operator== (const ConstView< ViewA > &, const ConstView< ViewB > &)
 Test whether two views are the same.
template<class Var , class View >
bool operator== (const ConstView< View > &, const VarImpView< Var > &)
 Test whether two views are the same.
template<class ViewA , class ViewB >
bool operator== (const ConstView< ViewA > &, const DerivedView< ViewB > &)
 Test whether two views are the same.
template<class Var , class View >
bool operator== (const VarImpView< Var > &, const ConstView< View > &)
 Test whether two views are the same.
template<class Var , class View >
bool operator== (const VarImpView< Var > &, const DerivedView< View > &)
 Test whether two views are the same.
template<class ViewX , class ViewY >
bool operator== (const DerivedView< ViewX > &, const ConstView< ViewY > &)
 Test whether two views are the same.
template<class View , class Var >
bool operator== (const DerivedView< View > &, const VarImpView< Var > &)
 Test whether two views are the same.
template<class ViewX , class ViewY >
bool operator== (const DerivedView< ViewX > &, const DerivedView< ViewY > &)
 Test whether two views are not the same.
template<class VarX , class VarY >
bool operator== (const VarImpView< VarX > &x, const VarImpView< VarY > &y)
 Test whether two views are the same.
template<class ViewA , class ViewB >
bool operator!= (const ConstView< ViewA > &, const ConstView< ViewB > &)
 Test whether two views are not the same.
template<class Var , class View >
bool operator!= (const ConstView< View > &, const VarImpView< Var > &)
 Test whether two views are not the same.
template<class ViewA , class ViewB >
bool operator!= (const ConstView< ViewA > &, const DerivedView< ViewB > &)
 Test whether two views are not the same.
template<class Var , class View >
bool operator!= (const VarImpView< Var > &, const ConstView< View > &)
 Test whether two views are not the same.
template<class Var , class View >
bool operator!= (const VarImpView< Var > &, const DerivedView< View > &)
 Test whether two views are not the same.
template<class ViewX , class ViewY >
bool operator!= (const DerivedView< ViewX > &, const ConstView< ViewY > &)
 Test whether two views are the same.
template<class View , class Var >
bool operator!= (const DerivedView< View > &, const VarImpView< Var > &)
 Test whether two views are not the same.
template<class ViewX , class ViewY >
bool operator!= (const DerivedView< ViewX > &, const DerivedView< ViewY > &)
 Test whether two views are not the same.
template<class VarX , class VarY >
bool operator!= (const VarImpView< VarX > &x, const VarImpView< VarY > &y)
 Test whether two views are not the same.
void atmost (Home home, const IntVarArgs &x, int n, int m, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\leq m$.
void atmost (Home home, const IntVarArgs &x, IntVar y, int m, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\leq m$.
void atmost (Home home, const IntVarArgs &x, const IntArgs &y, int m, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\leq m$.
void atmost (Home home, const IntVarArgs &x, int n, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\leq z$.
void atmost (Home home, const IntVarArgs &x, IntVar y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\leq z$.
void atmost (Home home, const IntVarArgs &x, const IntArgs &y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\leq z$.
void atleast (Home home, const IntVarArgs &x, int n, int m, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\geq m$.
void atleast (Home home, const IntVarArgs &x, IntVar y, int m, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\geq m$.
void atleast (Home home, const IntVarArgs &x, const IntArgs &y, int m, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\geq m$.
void atleast (Home home, const IntVarArgs &x, int n, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\geq z$.
void atleast (Home home, const IntVarArgs &x, IntVar y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\geq z$.
void atleast (Home home, const IntVarArgs &x, const IntArgs &y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\geq z$.
void exactly (Home home, const IntVarArgs &x, int n, int m, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}=m$.
void exactly (Home home, const IntVarArgs &x, IntVar y, int m, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}=m$.
void exactly (Home home, const IntVarArgs &x, const IntArgs &y, int m, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}=m$.
void exactly (Home home, const IntVarArgs &x, int n, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}=z$.
void exactly (Home home, const IntVarArgs &x, IntVar y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}=z$.
void exactly (Home home, const IntVarArgs &x, const IntArgs &y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}=z$.
void lex (Home home, const IntVarArgs &x, IntRelType r, const IntVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post lexical order between x and y.
void lex (Home home, const BoolVarArgs &x, IntRelType r, const BoolVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post lexical order between x and y.
void values (Home home, const IntVarArgs &x, IntSet y, IntPropLevel ipl=IPL_DEF)
 Post constraint $\{x_0,\dots,x_{n-1}\}=y$.
void channel (Home home, const IntVarArgs &x, SetVar y)
 Post constraint $\{x_0,\dots,x_{n-1}\}=y$.
void range (Home home, const IntVarArgs &x, SetVar y, SetVar z)
 Post constraint $\bigcup_{i\in y}\{x_i\}=z$.
void roots (Home home, const IntVarArgs &x, SetVar y, SetVar z)
 Post constraint $\bigcup_{i\in z}\{j\ |\ x_j=i\}=z$.
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.
BoolExpr operator! (const BoolExpr &)
 Negated Boolean expression.
BoolExpr operator!= (const BoolExpr &, const BoolExpr &)
 Non-equivalence of Boolean expressions.
BoolExpr operator== (const BoolExpr &, const BoolExpr &)
 Equivalence of Boolean expressions.
BoolExpr operator>> (const BoolExpr &, const BoolExpr &)
 Implication of Boolean expressions.
BoolExpr operator<< (const BoolExpr &, const BoolExpr &)
 Reverse implication of Boolean expressions.
BoolVar expr (Home home, const BoolExpr &e, const IntPropLevels &ipls=IntPropLevels::def)
 Post Boolean expression and return its value.
void rel (Home home, const BoolExpr &e, const IntPropLevels &ipls=IntPropLevels::def)
 Post Boolean relation.
BoolExpr element (const BoolVarArgs &x, const LinIntExpr &y)
 Return expression for $x[y]$.
BoolVar channel (Home home, IntVar x, IntPropLevel ipl=IPL_DEF)
 Return Boolean variable equal to $x$.
IntVar channel (Home home, BoolVar b, IntPropLevel ipl=IPL_DEF)
 Return integer variable equal to $b$.
IntVar channel (Home home, FloatVar f)
 Return integer variable equal to $f$.
SetVar channel (Home home, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Return set variable equal to $\{x_0,\dots,x_{n-1}\}$.
BoolExpr dom (const IntVar &x, int n)
 Return expression for $ x=n$.
BoolExpr dom (const IntVar &x, int l, int m)
 Return expression for $ l\leq x \leq m$.
BoolExpr dom (const IntVar &x, const IntSet &s)
 Return expression for $ x \in s$.
BoolExpr dom (const SetVar &x, SetRelType rt, int i)
 Return expression for $ x \sim_{rt} \{i\}$.
BoolExpr dom (const SetVar &x, SetRelType rt, int i, int j)
 Return expression for $ x \sim_{rt} \{i,\dots,j\}$.
BoolExpr dom (const SetVar &x, SetRelType rt, const IntSet &s)
 Return expression for $ x \sim_{rt} s$.
BoolExpr dom (const FloatVar &x, const FloatVal &n)
 Return expression for $ x=n$.
BoolExpr dom (const FloatVar &x, FloatNum l, FloatNum u)
 Return expression for $ l\leq x \leq u$.
LinFloatExpr abs (const LinFloatExpr &e)
 Return expression for $|e|$.
LinFloatExpr min (const LinFloatExpr &x, const LinFloatExpr &y)
 Return expression for $\min(x,y)$.
LinFloatExpr min (const FloatVarArgs &x)
 Return expression for $\min(x)$.
LinFloatExpr max (const LinFloatExpr &x, const LinFloatExpr &y)
 Return expression for $\max(x,y)$.
LinFloatExpr max (const FloatVarArgs &x)
 Return expression for $\max(x)$.
LinFloatExpr operator* (const FloatVar &, const FloatVar &)
 Return expression as product of float variables.
LinFloatExpr operator* (const LinFloatExpr &, const FloatVar &)
 Return expression as product of linear float expression and float variable.
LinFloatExpr operator* (const FloatVar &, const LinFloatExpr &)
 Return expression as product of float variable and linear float expression.
LinFloatExpr operator* (const LinFloatExpr &x, const LinFloatExpr &y)
 Return expression for $x\cdot y$.
LinFloatExpr operator/ (const LinFloatExpr &x, const LinFloatExpr &y)
 Return expression for $x/y$.
LinFloatExpr sqr (const LinFloatExpr &x)
 Return expression for $x^2$.
LinFloatExpr sqrt (const LinFloatExpr &x)
 Return expression for $\sqrt{x}$.
LinFloatExpr pow (const LinFloatExpr &x, int n)
 Return expression for $x^n$.
LinFloatExpr nroot (const LinFloatExpr &x, int n)
 Return expression for $x^{1/n}$.
LinFloatExpr exp (const LinFloatExpr &x)
 Return expression for $ \mathrm{exp}(x)$.
LinFloatExpr log (const LinFloatExpr &x)
 Return expression for $ \mathrm{log}(x)$.
LinFloatExpr asin (const LinFloatExpr &x)
 Return expression for $ \mathrm{asin}(x)$.
LinFloatExpr sin (const LinFloatExpr &x)
 Return expression for $ \mathrm{sin}(x)$.
LinFloatExpr acos (const LinFloatExpr &x)
 Return expression for $ \mathrm{acos}(x)$.
LinFloatExpr cos (const LinFloatExpr &x)
 Return expression for $ \mathrm{cos}(x)$.
LinFloatExpr atan (const LinFloatExpr &x)
 Return expression for $ \mathrm{atan}(x)$.
LinFloatExpr tan (const LinFloatExpr &x)
 Return expression for $ \mathrm{tan}(x)$.
LinFloatExpr operator+ (const FloatVal &, const FloatVar &)
 Construct linear float expression as sum of float variable and float.
LinFloatExpr operator+ (const FloatVal &, const LinFloatExpr &)
 Construct linear float expression as sum of linear float expression and float.
LinFloatExpr operator+ (const FloatVar &, const FloatVal &)
 Construct linear float expression as sum of float variable and float.
LinFloatExpr operator+ (const LinFloatExpr &, const FloatVal &)
 Construct linear float expression as sum of linear float expression and float.
LinFloatExpr operator+ (const FloatVar &, const FloatVar &)
 Construct linear float expression as sum of float variables.
LinFloatExpr operator+ (const FloatVar &, const LinFloatExpr &)
 Construct linear float expression as sum of float variable and linear float expression.
LinFloatExpr operator+ (const LinFloatExpr &, const FloatVar &)
 Construct linear float expression as sum of linear float expression and float variable.
LinFloatExpr operator+ (const LinFloatExpr &, const LinFloatExpr &)
 Construct linear float expression as sum of linear float expressions.
LinFloatExpr operator- (const FloatVal &, const FloatVar &)
 Construct linear float expression as sum of float variable and float.
LinFloatExpr operator- (const FloatVal &, const LinFloatExpr &)
 Construct linear float expression as sum of float and linear float expression.
LinFloatExpr operator- (const FloatVar &, const FloatVal &)
 Construct linear float expression as sum of float variable and float.
LinFloatExpr operator- (const LinFloatExpr &, const FloatVal &)
 Construct linear float expression as sum of linear float expression and float.
LinFloatExpr operator- (const FloatVar &, const FloatVar &)
 Construct linear float expression as sum of float variables.
LinFloatExpr operator- (const FloatVar &, const LinFloatExpr &)
 Construct linear float expression as sum of float variable and linear float expression.
LinFloatExpr operator- (const LinFloatExpr &, const FloatVar &)
 Construct linear float expression as sum of linear float expression and float variable.
LinFloatExpr operator- (const LinFloatExpr &, const LinFloatExpr &)
 Construct linear float expression as sum of linear float expressions.
LinFloatExpr operator- (const FloatVar &)
 Construct linear float expression as negative of float variable.
LinFloatExpr operator- (const LinFloatExpr &)
 Construct linear float expression as negative of linear float expression.
LinFloatExpr operator* (const FloatVal &, const FloatVar &)
 Construct linear float expression as product of float coefficient and float variable.
LinFloatExpr operator* (const FloatVar &, const FloatVal &)
 Construct linear float expression as product of float coefficient and float variable.
LinFloatExpr operator* (const LinFloatExpr &, const FloatVal &)
 Construct linear float expression as product of float coefficient and linear float expression.
LinFloatExpr operator* (const FloatVal &, const LinFloatExpr &)
 Construct linear float expression as product of float coefficient and linear float expression.
LinFloatExpr sum (const FloatVarArgs &x)
 Construct linear float expression as sum of float variables.
LinFloatExpr sum (const FloatValArgs &a, const FloatVarArgs &x)
 Construct linear float expression as sum of float variables with coefficients.
FloatVar expr (Home home, const LinFloatExpr &e)
 Post float expression and return its value.
LinFloatRel operator== (const FloatVal &l, const FloatVar &r)
 Construct linear float equality relation.
LinFloatRel operator== (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float equality relation.
LinFloatRel operator== (const FloatVar &l, const FloatVal &r)
 Construct linear float equality relation.
LinFloatRel operator== (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float equality relation.
LinFloatRel operator== (const FloatVar &l, const FloatVar &r)
 Construct linear float equality relation.
LinFloatRel operator== (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float equality relation.
LinFloatRel operator== (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float equality relation.
LinFloatRel operator== (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float equality relation.
LinFloatRel operator!= (const FloatVal &l, const FloatVar &r)
 Construct linear float disequality relation.
LinFloatRel operator!= (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float disequality relation.
LinFloatRel operator!= (const FloatVar &l, const FloatVal &r)
 Construct linear float disequality relation.
LinFloatRel operator!= (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float disequality relation.
LinFloatRel operator!= (const FloatVar &l, const FloatVar &r)
 Construct linear float disequality relation.
LinFloatRel operator!= (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float disequality relation.
LinFloatRel operator!= (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float disequality relation.
LinFloatRel operator!= (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float disequality relation.
LinFloatRel operator<= (const FloatVal &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator<= (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator<= (const FloatVar &l, const FloatVal &r)
 Construct linear float inequality relation.
LinFloatRel operator<= (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float inequality relation.
LinFloatRel operator<= (const FloatVar &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator<= (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator<= (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator<= (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator< (const FloatVal &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator< (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator< (const FloatVar &l, const FloatVal &r)
 Construct linear float inequality relation.
LinFloatRel operator< (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float inequality relation.
LinFloatRel operator< (const FloatVar &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator< (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator< (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator< (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator>= (const FloatVal &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator>= (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator>= (const FloatVar &l, const FloatVal &r)
 Construct linear float inequality relation.
LinFloatRel operator>= (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float inequality relation.
LinFloatRel operator>= (const FloatVar &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator>= (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator>= (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator>= (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator> (const FloatVal &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator> (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator> (const FloatVar &l, const FloatVal &r)
 Construct linear float inequality relation.
LinFloatRel operator> (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float inequality relation.
LinFloatRel operator> (const FloatVar &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator> (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinFloatRel operator> (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float inequality relation.
LinFloatRel operator> (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float inequality relation.
LinIntExpr abs (const LinIntExpr &e)
 Return expression for $|e|$.
LinIntExpr min (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $\min(x,y)$.
LinIntExpr max (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $\max(x,y)$.
LinIntExpr min (const IntVarArgs &x)
 Return expression for $\min(x)$.
LinIntExpr max (const IntVarArgs &x)
 Return expression for $\max(x)$.
LinIntExpr operator* (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $x\cdot y$.
LinIntExpr sqr (const LinIntExpr &x)
 Return expression for $x^2$.
LinIntExpr sqrt (const LinIntExpr &x)
 Return expression for $\lfloor\sqrt{x}\rfloor$.
LinIntExpr pow (const LinIntExpr &x, int n)
 Return expression for $x^n$.
LinIntExpr nroot (const LinIntExpr &x, int n)
 Return expression for $\lfloor\sqrt[n]{x}\rfloor$.
LinIntExpr operator/ (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $x\ \mathrm{div}\ y$.
LinIntExpr operator% (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $x\ \mathrm{mod}\ y$.
LinIntExpr element (const IntVarArgs &x, const LinIntExpr &y)
 Return expression for $x[y]$.
LinIntExpr element (const IntArgs &x, const LinIntExpr &y)
 Return expression for $x[y]$.
LinIntExpr ite (const BoolExpr &b, const LinIntExpr &x, const LinIntExpr &y)
 Return expression for if-then-else $b?x:y$.
LinIntExpr operator+ (int, const IntVar &)
 Construct linear expression as sum of integer variable and integer.
LinIntExpr operator+ (int, const BoolVar &)
 Construct linear expression as sum of Boolean variable and integer.
LinIntExpr operator+ (int, const LinIntExpr &)
 Construct linear expression as sum of linear expression and integer.
LinIntExpr operator+ (const IntVar &, int)
 Construct linear expression as sum of integer variable and integer.
LinIntExpr operator+ (const BoolVar &, int)
 Construct linear expression as sum of Boolean variable and integer.
LinIntExpr operator+ (const LinIntExpr &, int)
 Construct linear expression as sum of linear expression and integer.
LinIntExpr operator+ (const IntVar &, const IntVar &)
 Construct linear expression as sum of integer variables.
LinIntExpr operator+ (const IntVar &, const BoolVar &)
 Construct linear expression as sum of integer and Boolean variable.
LinIntExpr operator+ (const BoolVar &, const IntVar &)
 Construct linear expression as sum of Boolean and integer variable.
LinIntExpr operator+ (const BoolVar &, const BoolVar &)
 Construct linear expression as sum of Boolean variables.
LinIntExpr operator+ (const IntVar &, const LinIntExpr &)
 Construct linear expression as sum of integer variable and linear expression.
LinIntExpr operator+ (const BoolVar &, const LinIntExpr &)
 Construct linear expression as sum of Boolean variable and linear expression.
LinIntExpr operator+ (const LinIntExpr &, const IntVar &)
 Construct linear expression as sum of linear expression and integer variable.
LinIntExpr operator+ (const LinIntExpr &, const BoolVar &)
 Construct linear expression as sum of linear expression and Boolean variable.
LinIntExpr operator+ (const LinIntExpr &, const LinIntExpr &)
 Construct linear expression as sum of linear expressions.
LinIntExpr operator- (int, const IntVar &)
 Construct linear expression as sum of integer variable and integer.
LinIntExpr operator- (int, const BoolVar &)
 Construct linear expression as sum of Boolean variable and integer.
LinIntExpr operator- (int, const LinIntExpr &)
 Construct linear expression as sum of integer and linear expression.
LinIntExpr operator- (const IntVar &, int)
 Construct linear expression as sum of integer variable and integer.
LinIntExpr operator- (const BoolVar &, int)
 Construct linear expression as sum of Boolean variable and integer.
LinIntExpr operator- (const LinIntExpr &, int)
 Construct linear expression as sum of linear expression and integer.
LinIntExpr operator- (const IntVar &, const IntVar &)
 Construct linear expression as sum of integer variables.
LinIntExpr operator- (const IntVar &, const BoolVar &)
 Construct linear expression as sum of integer and Boolean variable.
LinIntExpr operator- (const BoolVar &, const IntVar &)
 Construct linear expression as sum of Boolean and integer variable.
LinIntExpr operator- (const BoolVar &, const BoolVar &)
 Construct linear expression as sum of Boolean variables.
LinIntExpr operator- (const IntVar &, const LinIntExpr &)
 Construct linear expression as sum of integer variable and linear expression.
LinIntExpr operator- (const BoolVar &, const LinIntExpr &)
 Construct linear expression as sum of Boolean variable and linear expression.
LinIntExpr operator- (const LinIntExpr &, const IntVar &)
 Construct linear expression as sum of linear expression and integer variable.
LinIntExpr operator- (const LinIntExpr &, const BoolVar &)
 Construct linear expression as sum of linear expression and Boolean variable.
LinIntExpr operator- (const LinIntExpr &, const LinIntExpr &)
 Construct linear expression as sum of linear expressions.
LinIntExpr operator- (const IntVar &)
 Construct linear expression as negative of integer variable.
LinIntExpr operator- (const BoolVar &)
 Construct linear expression as negative of Boolean variable.
LinIntExpr operator- (const LinIntExpr &)
 Construct linear expression as negative of linear expression.
LinIntExpr operator* (int, const IntVar &)
 Construct linear expression as product of integer coefficient and integer variable.
LinIntExpr operator* (int, const BoolVar &)
 Construct linear expression as product of integer coefficient and Boolean variable.
LinIntExpr operator* (const IntVar &, int)
 Construct linear expression as product of integer coefficient and integer variable.
LinIntExpr operator* (const BoolVar &, int)
 Construct linear expression as product of integer coefficient and Boolean variable.
LinIntExpr operator* (const LinIntExpr &, int)
 Construct linear expression as product of integer coefficient and linear expression.
LinIntExpr operator* (int, const LinIntExpr &)
 Construct linear expression as product of integer coefficient and linear expression.
LinIntExpr sum (const IntVarArgs &x)
 Construct linear expression as sum of integer variables.
LinIntExpr sum (const IntArgs &a, const IntVarArgs &x)
 Construct linear expression as sum of integer variables with coefficients.
LinIntExpr sum (const BoolVarArgs &x)
 Construct linear expression as sum of Boolean variables.
LinIntExpr sum (const IntArgs &a, const BoolVarArgs &x)
 Construct linear expression as sum of Boolean variables with coefficients.
LinIntExpr sum (const Slice< IntArgs > &slice)
 Construct linear expression as sum of IntArgs Slice elements.
LinIntExpr sum (const Matrix< IntArgs > &matrix)
 Construct linear expression as sum of IntArgs Matrix elements.
LinIntExpr sum (const IntArgs &args)
 Construct linear expression as sum of IntArgs.
IntVar expr (Home home, const LinIntExpr &e, const IntPropLevels &ipls=IntPropLevels::def)
 Post linear expression and return its value.
LinIntRel operator== (int l, const IntVar &r)
 Construct linear equality relation.
LinIntRel operator== (int l, const BoolVar &r)
 Construct linear equality relation.
LinIntRel operator== (int l, const LinIntExpr &r)
 Construct linear equality relation.
LinIntRel operator== (const IntVar &l, int r)
 Construct linear equality relation.
LinIntRel operator== (const BoolVar &l, int r)
 Construct linear equality relation.
LinIntRel operator== (const LinIntExpr &l, int r)
 Construct linear equality relation.
LinIntRel operator== (const IntVar &l, const IntVar &r)
 Construct linear equality relation.
LinIntRel operator== (const IntVar &l, const BoolVar &r)
 Construct linear equality relation.
LinIntRel operator== (const BoolVar &l, const IntVar &r)
 Construct linear equality relation.
LinIntRel operator== (const BoolVar &l, const BoolVar &r)
 Construct linear equality relation.
LinIntRel operator== (const IntVar &l, const LinIntExpr &r)
 Construct linear equality relation.
LinIntRel operator== (const BoolVar &l, const LinIntExpr &r)
 Construct linear equality relation.
LinIntRel operator== (const LinIntExpr &l, const IntVar &r)
 Construct linear equality relation.
LinIntRel operator== (const LinIntExpr &l, const BoolVar &r)
 Construct linear equality relation.
LinIntRel operator== (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear equality relation.
LinIntRel operator!= (int l, const IntVar &r)
 Construct linear disequality relation.
LinIntRel operator!= (int l, const BoolVar &r)
 Construct linear disequality relation.
LinIntRel operator!= (int l, const LinIntExpr &r)
 Construct linear disequality relation.
LinIntRel operator!= (const IntVar &l, int r)
 Construct linear disequality relation.
LinIntRel operator!= (const BoolVar &l, int r)
 Construct linear disequality relation.
LinIntRel operator!= (const LinIntExpr &l, int r)
 Construct linear disequality relation.
LinIntRel operator!= (const IntVar &l, const IntVar &r)
 Construct linear disequality relation.
LinIntRel operator!= (const IntVar &l, const BoolVar &r)
 Construct linear disequality relation.
LinIntRel operator!= (const BoolVar &l, const IntVar &r)
 Construct linear disequality relation.
LinIntRel operator!= (const BoolVar &l, const BoolVar &r)
 Construct linear disequality relation.
LinIntRel operator!= (const IntVar &l, const LinIntExpr &r)
 Construct linear disequality relation.
LinIntRel operator!= (const BoolVar &l, const LinIntExpr &r)
 Construct linear disequality relation.
LinIntRel operator!= (const LinIntExpr &l, const IntVar &r)
 Construct linear disequality relation.
LinIntRel operator!= (const LinIntExpr &l, const BoolVar &r)
 Construct linear disequality relation.
LinIntRel operator!= (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear disequality relation.
LinIntRel operator< (int l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator< (int l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator< (int l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator< (const IntVar &l, int r)
 Construct linear inequality relation.
LinIntRel operator< (const BoolVar &l, int r)
 Construct linear inequality relation.
LinIntRel operator< (const LinIntExpr &l, int r)
 Construct linear inequality relation.
LinIntRel operator< (const IntVar &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator< (const IntVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator< (const BoolVar &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator< (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator< (const IntVar &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator< (const BoolVar &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator< (const LinIntExpr &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator< (const LinIntExpr &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator< (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator<= (int l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator<= (int l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator<= (int l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator<= (const IntVar &l, int r)
 Construct linear inequality relation.
LinIntRel operator<= (const BoolVar &l, int r)
 Construct linear inequality relation.
LinIntRel operator<= (const LinIntExpr &l, int r)
 Construct linear inequality relation.
LinIntRel operator<= (const IntVar &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator<= (const IntVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator<= (const BoolVar &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator<= (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator<= (const IntVar &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator<= (const BoolVar &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator<= (const LinIntExpr &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator<= (const LinIntExpr &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator<= (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator> (int l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator> (int l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator> (int l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator> (const IntVar &l, int r)
 Construct linear inequality relation.
LinIntRel operator> (const BoolVar &l, int r)
 Construct linear inequality relation.
LinIntRel operator> (const LinIntExpr &l, int r)
 Construct linear inequality relation.
LinIntRel operator> (const IntVar &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator> (const IntVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator> (const BoolVar &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator> (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator> (const IntVar &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator> (const BoolVar &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator> (const LinIntExpr &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator> (const LinIntExpr &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator> (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator>= (int l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator>= (int l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator>= (int l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator>= (const IntVar &l, int r)
 Construct linear inequality relation.
LinIntRel operator>= (const BoolVar &l, int r)
 Construct linear inequality relation.
LinIntRel operator>= (const LinIntExpr &l, int r)
 Construct linear inequality relation.
LinIntRel operator>= (const IntVar &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator>= (const IntVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator>= (const BoolVar &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator>= (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator>= (const IntVar &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator>= (const BoolVar &l, const LinIntExpr &r)
 Construct linear inequality relation.
LinIntRel operator>= (const LinIntExpr &l, const IntVar &r)
 Construct linear inequality relation.
LinIntRel operator>= (const LinIntExpr &l, const BoolVar &r)
 Construct linear inequality relation.
LinIntRel operator>= (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear inequality relation.
template<class A >
SymmetryHandle rows_interchange (const Matrix< A > &m)
 Interchangeable rows symmetry specification.
template<class A >
SymmetryHandle columns_interchange (const Matrix< A > &m)
 Interchangeable columns symmetry specification.
template<class A >
SymmetryHandle rows_reflect (const Matrix< A > &m)
 Reflect rows symmetry specification.
template<class A >
SymmetryHandle columns_reflect (const Matrix< A > &m)
 Reflect columns symmetry specification.
template<class A >
SymmetryHandle diagonal_reflect (const Matrix< A > &m)
 Reflect around main diagonal symmetry specification.
template<class A >
Slice< A >::ArgsType operator+ (const Slice< A > &x, const Slice< A > &y)
 Concatenate x and y.
template<class A >
Slice< A >::ArgsType operator+ (const Slice< A > &x, const typename ArrayTraits< A >::ArgsType &y)
 Concatenate x and y.
template<class A >
Slice< A >::ArgsType operator+ (const typename ArrayTraits< A >::ArgsType &x, const Slice< A > &y)
 Concatenate x and y.
template<class A >
Slice< A >::ArgsType operator+ (const Slice< A > &x, const typename ArrayTraits< A >::ValueType &y)
 Concatenate x and y.
template<class A >
Slice< A >::ArgsType operator+ (const typename ArrayTraits< A >::ValueType &x, const Slice< A > &y)
 Concatenate x and y.
template<class Char , class Traits , class A >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const Matrix< A > &m)
template<class Char , class Traits , class A >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const Slice< A > &s)
void element (Home home, const Matrix< IntArgs > &m, IntVar x, IntVar y, IntVar z, IntPropLevel ipl)
void element (Home home, const Matrix< IntArgs > &m, IntVar x, IntVar y, BoolVar z, IntPropLevel ipl)
void element (Home home, const Matrix< IntVarArgs > &m, IntVar x, IntVar y, IntVar z, IntPropLevel ipl)
void element (Home home, const Matrix< BoolVarArgs > &m, IntVar x, IntVar y, BoolVar z, IntPropLevel ipl)
void element (Home home, const Matrix< IntSetArgs > &m, IntVar x, IntVar y, SetVar z)
void element (Home home, const Matrix< SetVarArgs > &m, IntVar x, IntVar y, SetVar z)
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const REG &r)
SetExpr operator& (const SetExpr &, const SetExpr &)
 Intersection of set expressions.
SetExpr operator| (const SetExpr &, const SetExpr &)
 Union of set expressions.
SetExpr operator+ (const SetExpr &, const SetExpr &)
 Disjoint union of set expressions.
SetExpr operator- (const SetExpr &)
 Complement expression.
SetExpr operator- (const SetExpr &, const SetExpr &)
 Difference of set expressions.
SetExpr singleton (const LinIntExpr &)
 Singleton expression.
SetExpr inter (const SetVarArgs &)
 Intersection of set variables.
SetExpr setunion (const SetVarArgs &)
 Union of set variables.
SetExpr setdunion (const SetVarArgs &)
 Disjoint union of set variables.
LinIntExpr cardinality (const SetExpr &)
 Cardinality of set expression.
LinIntExpr min (const SetExpr &)
 Minimum element of set expression.
LinIntExpr max (const SetExpr &)
 Minimum element of set expression.
SetVar expr (Home home, const SetExpr &e)
 Post set expression and return its value.
SetRel operator== (const SetExpr &, const SetExpr &)
 Equality of set expressions.
SetRel operator!= (const SetExpr &, const SetExpr &)
 Disequality of set expressions.
SetCmpRel operator<= (const SetExpr &, const SetExpr &)
 Subset of set expressions.
BoolExpr operator<= (const SetCmpRel &, const SetExpr &)
 Subset of set expressions.
SetCmpRel operator>= (const SetExpr &, const SetExpr &)
 Superset of set expressions.
BoolExpr operator>= (const SetCmpRel &, const SetExpr &)
 Superset of set expressions.
SetRel operator|| (const SetExpr &, const SetExpr &)
 Disjointness of set expressions.
BoolExpr operator== (const SetExpr &s, const LinIntExpr &x)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ i=x$.
BoolExpr operator== (const LinIntExpr &x, const SetExpr &s)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ x=i$.
BoolExpr operator!= (const SetExpr &s, const LinIntExpr &x)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ i\neq x$.
BoolExpr operator!= (const LinIntExpr &x, const SetExpr &s)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ x\neq i$.
BoolExpr operator<= (const SetExpr &s, const LinIntExpr &x)
 Return expression for $|s|\geq 6 \land \forall i\in s:\ i\leq x$.
BoolExpr operator<= (const LinIntExpr &x, const SetExpr &s)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ x\leq i$.
BoolExpr operator< (const SetExpr &s, const LinIntExpr &x)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ i<x$.
BoolExpr operator< (const LinIntExpr &x, const SetExpr &s)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ x<i$.
BoolExpr operator>= (const SetExpr &s, const LinIntExpr &x)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ i\geq x$.
BoolExpr operator>= (const LinIntExpr &x, const SetExpr &s)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ x\geq i$.
BoolExpr operator> (const SetExpr &s, const LinIntExpr &x)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ i>x$.
BoolExpr operator> (const LinIntExpr &x, const SetExpr &s)
 Return expression for $|s|\geq 1 \land \forall i\in s:\ x>i$.
BoolExpr operator== (const LinIntExpr &, IntSet)
 Prevent comparison with IntSet.
BoolExpr operator== (IntSet, const LinIntExpr &)
 Prevent comparison with IntSet.
BoolExpr operator!= (const LinIntExpr &, IntSet)
 Prevent comparison with IntSet.
BoolExpr operator!= (IntSet, const LinIntExpr &)
 Prevent comparison with IntSet.
BoolExpr operator<= (const LinIntExpr &, IntSet)
 Prevent comparison with IntSet.
BoolExpr operator<= (IntSet, const LinIntExpr &)
 Prevent comparison with IntSet.
BoolExpr operator< (const LinIntExpr &, IntSet)
 Prevent comparison with IntSet.
BoolExpr operator< (IntSet, const LinIntExpr &)
 Prevent comparison with IntSet.
BoolExpr operator>= (const LinIntExpr &, IntSet)
 Prevent comparison with IntSet.
BoolExpr operator>= (IntSet, const LinIntExpr &)
 Prevent comparison with IntSet.
BoolExpr operator> (const LinIntExpr &, IntSet)
 Prevent comparison with IntSet.
BoolExpr operator> (IntSet, const LinIntExpr &)
 Prevent comparison with IntSet.
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 >
SEB bab (const Search::Options &o=Search::Options::def)
 Return a depth-first branch-and-bound search engine builder.
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 >
SEB dfs (const Search::Options &o=Search::Options::def)
 Return a depth-first search engine builder.
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 >
SEB lds (const Search::Options &o=Search::Options::def)
 Return a limited discrepancy search engine builder.
template<class T , template< class > class E>
T * pbs (T *s, const Search::Options &o=Search::Options::def)
 Run a portfolio of search engines.
template<class T , template< class > class E>
SEB pbs (const Search::Options &o)
 Return a portfolio search engine builder.
template<class T , template< class > class E>
T * rbs (T *s, const Search::Options &o)
 Perform restart-based search.
template<class T , template< class > class E>
SEB rbs (const Search::Options &o)
 Return a restart search engine builder.
template<class T >
SEB pbs (const Search::Options &o=Search::Options::def)
 Return a portfolio search engine builder.
void ite (Home home, BoolVar b, SetVar x, SetVar y, SetVar z)
 Post propagator for if-then-else constraint.
SetAssign SET_ASSIGN_MIN_INC (void)
 Include smallest element.
SetAssign SET_ASSIGN_MIN_EXC (void)
 Exclude smallest element.
SetAssign SET_ASSIGN_MED_INC (void)
 Include median element (rounding downwards).
SetAssign SET_ASSIGN_MED_EXC (void)
 Exclude median element (rounding downwards).
SetAssign SET_ASSIGN_MAX_INC (void)
 Include largest element.
SetAssign SET_ASSIGN_MAX_EXC (void)
 Exclude largest element.
SetAssign SET_ASSIGN_RND_INC (Rnd r)
 Include random element.
SetAssign SET_ASSIGN_RND_EXC (Rnd r)
 Exclude random element.
SetAssign SET_ASSIGN (SetBranchVal v, SetBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c.
SetValBranch SET_VAL_MIN_INC (void)
 Include smallest element.
SetValBranch SET_VAL_MIN_EXC (void)
 Exclude smallest element.
SetValBranch SET_VAL_MED_INC (void)
 Include median element (rounding downwards).
SetValBranch SET_VAL_MED_EXC (void)
 Exclude median element (rounding downwards).
SetValBranch SET_VAL_MAX_INC (void)
 Include largest element.
SetValBranch SET_VAL_MAX_EXC (void)
 Exclude largest element.
SetValBranch SET_VAL_RND_INC (Rnd r)
 Include random element.
SetValBranch SET_VAL_RND_EXC (Rnd r)
 Exclude random element.
SetValBranch SET_VAL (SetBranchVal v, SetBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c.
SetVarBranch SET_VAR_NONE (void)
 Select first unassigned variable.
SetVarBranch SET_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking).
SetVarBranch SET_VAR_MERIT_MIN (SetBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with least merit according to branch merit function bm.
SetVarBranch SET_VAR_MERIT_MAX (SetBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with highest merit according to branch merit function bm.
SetVarBranch SET_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree.
SetVarBranch SET_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree.
SetVarBranch SET_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count with decay factor d.
SetVarBranch SET_VAR_AFC_MIN (SetAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count.
SetVarBranch SET_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count with decay factor d.
SetVarBranch SET_VAR_AFC_MAX (SetAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count.
SetVarBranch SET_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with lowest action with decay factor d.
SetVarBranch SET_VAR_ACTION_MIN (SetAction a, BranchTbl tbl=nullptr)
 Select variable with lowest action.
SetVarBranch SET_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with highest action with decay factor d.
SetVarBranch SET_VAR_ACTION_MAX (SetAction a, BranchTbl tbl=nullptr)
 Select variable with highest action.
SetVarBranch SET_VAR_CHB_MIN (BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score.
SetVarBranch SET_VAR_CHB_MIN (SetCHB c, BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score.
SetVarBranch SET_VAR_CHB_MAX (BranchTbl tbl=nullptr)
 Select variable with highest CHB Q-score.
SetVarBranch SET_VAR_CHB_MAX (SetCHB c, BranchTbl tbl=nullptr)
 Select variable with highest CHB Q-score.
SetVarBranch SET_VAR_MIN_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest minimum unknown element.
SetVarBranch SET_VAR_MIN_MAX (BranchTbl tbl=nullptr)
 Select variable with largest minimum unknown element.
SetVarBranch SET_VAR_MAX_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest maximum unknown element.
SetVarBranch SET_VAR_MAX_MAX (BranchTbl tbl=nullptr)
 Select variable with largest maximum unknown element.
SetVarBranch SET_VAR_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest unknown set.
SetVarBranch SET_VAR_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest unknown set.
SetVarBranch SET_VAR_DEGREE_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree divided by domain size.
SetVarBranch SET_VAR_DEGREE_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree divided by domain size.
SetVarBranch SET_VAR_AFC_SIZE_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count divided by domain size with decay factor d.
SetVarBranch SET_VAR_AFC_SIZE_MIN (SetAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count divided by domain size.
SetVarBranch SET_VAR_AFC_SIZE_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size with decay factor d.
SetVarBranch SET_VAR_AFC_SIZE_MAX (SetAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size.
SetVarBranch SET_VAR_ACTION_SIZE_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size with decay factor d.
SetVarBranch SET_VAR_ACTION_SIZE_MIN (SetAction a, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size.
SetVarBranch SET_VAR_ACTION_SIZE_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size with decay factor d.
SetVarBranch SET_VAR_ACTION_SIZE_MAX (SetAction a, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size.
SetVarBranch SET_VAR_CHB_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size.
SetVarBranch SET_VAR_CHB_SIZE_MIN (SetCHB c, BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size.
SetVarBranch SET_VAR_CHB_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size.
SetVarBranch SET_VAR_CHB_SIZE_MAX (SetCHB c, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size.
void 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.
void 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.
void branch (Home home, SetVar x, SetValBranch vals, SetVarValPrint vvp=nullptr)
 Branch over x with value selection vals.
void 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.
void 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.
void assign (Home home, SetVar x, SetAssign vals, SetVarValPrint vvp=nullptr)
 Assign x with value selection vals.
void branch (Home home, const SetVarArgs &x, SetValBranch vals, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Branch over x with value selection vals.
void assign (Home home, const SetVarArgs &x, SetAssign vals, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Assign all x with value selection vals.
void cardinality (Home home, SetVar x, unsigned int i, unsigned int j)
 Propagates $ i \leq |s| \leq j $.
void cardinality (Home home, const SetVarArgs &x, unsigned int i, unsigned int j)
 Propagates $ i \leq |s| \leq j $ for all $0\leq i<|x|$.
void cardinality (Home home, SetVar s, IntVar x)
 Post propagator for $ |s|=x $.
void cardinality (Home home, SetVar s, IntVar x, Reify r)
 Post reified propagator for $ |s|=x \equiv r$.
void channelSorted (Home home, const IntVarArgs &x, SetVar y)
 Post propagator for $\{x_0,\dots,x_{n-1}\}=y$ and $x_i<x_{i+1}$.
void channel (Home home, const IntVarArgs &x, const SetVarArgs &y)
 Post propagator for $x_i=j \Leftrightarrow i\in y_j$.
void channel (Home home, const BoolVarArgs &x, SetVar y)
 Post propagator for $x_i=1 \Leftrightarrow i\in y$.
void channel (Home home, const SetVarArgs &x, const SetVarArgs &y)
 Post propagator for $j\in x_i \Leftrightarrow i\in y_j$.
void convex (Home home, SetVar x)
 Post propagator that propagates that x is convex.
void convex (Home home, SetVar x, SetVar y)
 Post propagator that propagates that y is the convex hull of x.
void atmostOne (Home 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 (Home home, SetVar x, SetRelType r, int i)
 Propagates $ x \sim_r \{i\}$.
void dom (Home home, const SetVarArgs &x, SetRelType r, int i)
 Propagates $ x_i \sim_r \{i\}$ for all $0\leq i<|x|$.
void dom (Home home, SetVar x, SetRelType r, int i, int j)
 Propagates $ x \sim_r \{i,\dots,j\}$.
void 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|$.
void dom (Home home, SetVar x, SetRelType r, const IntSet &s)
 Propagates $ x \sim_r s$.
void dom (Home home, const SetVarArgs &x, SetRelType r, const IntSet &s)
 Propagates $ x \sim_r s$ for all $0\leq i<|x|$.
void dom (Home home, SetVar x, SetRelType rt, int i, Reify r)
 Post propagator for $ (x \sim_{rt} \{i\}) \equiv r $.
void dom (Home home, SetVar x, SetRelType rt, int i, int j, Reify r)
 Post propagator for $ (x \sim_{rt} \{i,\dots,j\}) \equiv r $.
void dom (Home home, SetVar x, SetRelType rt, const IntSet &s, Reify r)
 Post propagator for $ (x \sim_{rt} s) \equiv r $.
void dom (Home home, SetVar x, SetVar d)
 Constrain domain of x according to domain of d.
void 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|$.
void element (Home home, SetOpType op, const SetVarArgs &x, SetVar y, SetVar z, const IntSet &u=IntSet(Set::Limits::min, Set::Limits::max))
 Post propagator for $ z=\diamond_{\mathit{op}}\langle x_0,\dots,x_{n-1}\rangle[y] $.
void element (Home home, SetOpType op, const IntVarArgs &x, SetVar y, SetVar z, const IntSet &u=IntSet(Set::Limits::min, Set::Limits::max))
 Post propagator for $ z=\diamond_{\mathit{op}}\langle \{x_0\},\dots,\{x_{n-1}\}\rangle[y] $.
void element (Home home, SetOpType op, const IntSetArgs &x, SetVar y, SetVar z, const IntSet &u=IntSet(Set::Limits::min, Set::Limits::max))
 Post propagator for $ z=\diamond_{\mathit{op}}\langle x_0,\dots,x_{n-1}\rangle[y] $.
void element (Home home, SetOpType op, const IntArgs &x, SetVar y, SetVar z, const IntSet &u=IntSet(Set::Limits::min, Set::Limits::max))
 Post propagator for $ z=\diamond_{\mathit{op}}\langle \{x_0\},\dots,\{x_{n-1}\}\rangle[y] $.
void element (Home home, const SetVarArgs &x, IntVar y, SetVar z)
 Post propagator for $ z=\langle x_0,\dots,x_{n-1}\rangle[y] $.
void element (Home home, const IntSetArgs &s, IntVar y, SetVar z)
 Post propagator for $ z=\langle s_0,\dots,s_{n-1}\rangle[y] $.
void element (Home home, const IntSetArgs &a, IntVar x, int w, IntVar y, int h, SetVar z)
 Post propagator for $ a_{x+w\cdot y}=z$.
void element (Home home, const SetVarArgs &a, IntVar x, int w, IntVar y, int h, SetVar z)
 Post propagator for $ a_{x+w\cdot y}=z$.
void wait (Home home, SetVar x, std::function< void(Space &home)> c)
 Execute c when x becomes assigned.
void wait (Home home, const SetVarArgs &x, std::function< void(Space &home)> c)
 Execute c when all variables in x become assigned.
void rel (Home home, SetVar s, IntRelType rt, IntVar x)
 Post propagator for $|s|\geq 1 \land \forall i\in s:\ i \sim_{rt} x$.
void 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$.
void min (Home home, SetVar s, IntVar x)
 Post propagator that x is the minimal element of s and that s is not empty.
void notMin (Home home, SetVar s, IntVar x)
 Post propagator that x is not the minimal element of s.
void min (Home home, SetVar s, IntVar x, Reify r)
 Post reified propagator for b iff x is the minimal element of s.
void max (Home home, SetVar s, IntVar x)
 Post propagator that x is the maximal element of s and that s is not empty.
void notMax (Home home, SetVar s, IntVar x)
 Post propagator that x is not the maximal element of s.
void max (Home home, SetVar s, IntVar x, Reify r)
 Post reified propagator for b iff x is the maximal element of s.
void weights (Home home, IntSharedArray elements, IntSharedArray weights, SetVar x, IntVar y)
 Post propagator for $y = \mathrm{weight}(x)$.
void rel (Home home, IntVar x, IntRelType rt, SetVar s)
 Post propagator for $|s|\geq 1 \land \forall i\in s:\ x \sim_{rt} i$.
void rel (Home home, IntVar x, IntRelType rt, SetVar s, Reify r)
 Post reified propagator for.
SymmetryHandle VariableSymmetry (const SetVarArgs &x)
 Variables in x are interchangeable.
SymmetryHandle VariableSequenceSymmetry (const SetVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable.
void 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.
void 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.
void precede (Home home, const SetVarArgs &x, int s, int t)
 Post propagator that s precedes t in x.
void precede (Home home, const SetVarArgs &x, const IntArgs &c)
 Post propagator that successive values in c precede each other in x.
template<class View0 , class View1 >
bool viewarrayshared (const ViewArray< View0 > &va, const View1 &y)
template<>
bool viewarrayshared< Set::SingletonView, Set::SetView > (const ViewArray< Set::SingletonView > &, const Set::SetView &)
void rel (Home 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 (Home 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 (Home 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 (Home 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 (Home 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 (Home home, SetOpType op, const IntVarArgs &x, SetVar y)
 Post propagator for $ y = \diamond_{\mathit{op}} x$.
void rel (Home home, SetOpType op, const IntVarArgs &x, const IntSet &z, SetVar y)
 Post propagator for $ y = \diamond_{\mathit{op}} x \diamond_{\mathit{op}} z$.
void rel (Home home, SetVar x, SetOpType op, SetVar y, SetRelType r, SetVar z)
 Post propagator for $ (x \diamond_{\mathit{op}} y) \sim_r z $.
void rel (Home home, SetOpType op, const SetVarArgs &x, SetVar y)
 Post propagator for $ y = \diamond_{\mathit{op}} x$.
void rel (Home home, SetOpType op, const SetVarArgs &x, const IntSet &z, SetVar y)
 Post propagator for $ y = \diamond_{\mathit{op}} x \diamond_{\mathit{op}} z$.
void rel (Home home, SetVar x, SetRelType r, SetVar y)
 Post propagator for $ x \sim_r y$.
void rel (Home home, SetVar s, SetRelType r, IntVar x)
 Post propagator for $ s \sim_r \{x\}$.
void rel (Home home, IntVar x, SetRelType r, SetVar s)
 Post propagator for $ \{x\} \sim_r s$.
void rel (Home home, SetVar x, SetRelType rt, SetVar y, Reify r)
 Post propagator for $ (x \sim_{rt} y) \equiv r$.
void rel (Home home, SetVar s, SetRelType rt, IntVar x, Reify r)
 Post propagator for $ (s \sim_{rt} \{x\}) \equiv r$.
void rel (Home home, IntVar x, SetRelType rt, SetVar s, Reify r)
 Post propagator for $ (\{x\} \sim_{rt} s) \equiv r $.
void relax (Home home, const SetVarArgs &x, const SetVarArgs &sx, Rnd r, double p)
void sequence (Home home, const SetVarArgs &x)
 Post propagator for $\forall 0\leq i< |x|-1 : \max(x_i)<\min(x_{i+1})$.
void sequence (Home 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 $.
void 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.
void 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.
template<class Char , class Traits >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const SetVar &x)
template<class T >
ptr_cast (void *p)
 Cast p into pointer of type T.
template<class T >
void cmb_hash (std::size_t &seed, const T h)
 Combine hash value h into seed.

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.


Typedef Documentation

typedef std::function<void(const Space &home, const Brancher& b, unsigned int a, FloatVar x, int i, const FloatNumBranch& n, std::ostream& o)> Gecode::FloatVarValPrint

Function type for explaining branching alternatives for float variables.

Definition at line 1657 of file float.hh.

An array of literals.

Definition at line 93 of file ldsb.hh.

typedef std::function<void(const Space &home, const Brancher& b, unsigned int a, IntVar x, int i, const int& n, std::ostream& o)> Gecode::IntVarValPrint

Function type for printing branching alternatives for integer variables.

Definition at line 4552 of file int.hh.

typedef std::function<void(const Space &home, const Brancher& b, unsigned int a, BoolVar x, int i, const int& n, std::ostream& o)> Gecode::BoolVarValPrint

Function type for printing branching alternatives for Boolean variables.

Definition at line 4559 of file int.hh.

Type for a search engine builder.

Definition at line 993 of file search.hh.

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

Function type for printing branching alternatives for set variables.

Definition at line 1285 of file set.hh.


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_NOFIX_FORCE 

Advisor forces rescheduling of propagator.

__ES_PARTIAL 

Internal: propagator has computed partial fixpoint, do not use.

Definition at line 472 of file core.hpp.


Function Documentation

Archive& Gecode::operator<< ( Archive &  e,
FloatNumBranch  nl 
) [inline]

Definition at line 39 of file val-sel.hpp.

Archive& Gecode::operator>> ( Archive &  e,
FloatNumBranch &  nl 
) [inline]

Definition at line 44 of file val-sel.hpp.

FloatNum Gecode::pi_half_lower ( void   )  [inline]

Return lower bound of $\pi/2$.

FloatNum Gecode::pi_half_upper ( void   )  [inline]

Return upper bound of $\pi/2$.

FloatNum Gecode::pi_lower ( void   )  [inline]

Return lower bound of $\pi$.

FloatNum Gecode::pi_upper ( void   )  [inline]

Return upper bound of $\pi$.

FloatNum Gecode::pi_twice_lower ( void   )  [inline]

Return lower bound of $2\pi$.

FloatNum Gecode::pi_twice_upper ( void   )  [inline]

Return upper bound of $2\pi$.

void Gecode::relax ( Home  home,
const FloatVarArgs &  x,
const FloatVarArgs &  sx,
Rnd  r,
double  p 
)
FloatVal Gecode::operator+ ( const FloatVal &  x  )  [inline]

Definition at line 164 of file val.hpp.

FloatVal Gecode::operator- ( const FloatVal &  x  )  [inline]

Definition at line 168 of file val.hpp.

FloatVal Gecode::operator+ ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 174 of file val.hpp.

FloatVal Gecode::operator+ ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 178 of file val.hpp.

FloatVal Gecode::operator+ ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 182 of file val.hpp.

FloatVal Gecode::operator- ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 187 of file val.hpp.

FloatVal Gecode::operator- ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 191 of file val.hpp.

FloatVal Gecode::operator- ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 195 of file val.hpp.

FloatVal Gecode::operator* ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 200 of file val.hpp.

FloatVal Gecode::operator* ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 204 of file val.hpp.

FloatVal Gecode::operator* ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 208 of file val.hpp.

FloatVal Gecode::operator/ ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 213 of file val.hpp.

FloatVal Gecode::operator/ ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 217 of file val.hpp.

FloatVal Gecode::operator/ ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 221 of file val.hpp.

bool Gecode::operator< ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 226 of file val.hpp.

bool Gecode::operator< ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 234 of file val.hpp.

bool Gecode::operator<= ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 243 of file val.hpp.

bool Gecode::operator<= ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 251 of file val.hpp.

bool Gecode::operator> ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 260 of file val.hpp.

bool Gecode::operator> ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 268 of file val.hpp.

bool Gecode::operator>= ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 277 of file val.hpp.

bool Gecode::operator>= ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 285 of file val.hpp.

bool Gecode::operator== ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 294 of file val.hpp.

bool Gecode::operator== ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 302 of file val.hpp.

bool Gecode::operator!= ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 317 of file val.hpp.

bool Gecode::operator!= ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 325 of file val.hpp.

bool Gecode::operator< ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 334 of file val.hpp.

bool Gecode::operator<= ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 338 of file val.hpp.

bool Gecode::operator> ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 342 of file val.hpp.

bool Gecode::operator>= ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 346 of file val.hpp.

bool Gecode::operator== ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 350 of file val.hpp.

bool Gecode::operator!= ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 354 of file val.hpp.

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

Definition at line 360 of file val.hpp.

FloatVal Gecode::abs ( const FloatVal &  x  )  [inline]

Definition at line 365 of file val.hpp.

FloatVal Gecode::sqrt ( const FloatVal &  x  )  [inline]

Definition at line 369 of file val.hpp.

FloatVal Gecode::sqr ( const FloatVal &  x  )  [inline]

Definition at line 373 of file val.hpp.

FloatVal Gecode::pow ( const FloatVal &  x,
int  n 
) [inline]

Definition at line 377 of file val.hpp.

FloatVal Gecode::nroot ( const FloatVal &  x,
int  n 
) [inline]

Definition at line 381 of file val.hpp.

FloatVal Gecode::max ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 386 of file val.hpp.

FloatVal Gecode::max ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 390 of file val.hpp.

FloatVal Gecode::max ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 394 of file val.hpp.

FloatVal Gecode::min ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 398 of file val.hpp.

FloatVal Gecode::min ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 402 of file val.hpp.

FloatVal Gecode::min ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 406 of file val.hpp.

FloatVal Gecode::exp ( const FloatVal &  x  )  [inline]

Definition at line 413 of file val.hpp.

FloatVal Gecode::log ( const FloatVal &  x  )  [inline]

Definition at line 417 of file val.hpp.

FloatVal Gecode::fmod ( const FloatVal &  x,
const FloatVal &  y 
) [inline]

Definition at line 422 of file val.hpp.

FloatVal Gecode::fmod ( const FloatVal &  x,
const FloatNum &  y 
) [inline]

Definition at line 426 of file val.hpp.

FloatVal Gecode::fmod ( const FloatNum &  x,
const FloatVal &  y 
) [inline]

Definition at line 430 of file val.hpp.

FloatVal Gecode::sin ( const FloatVal &  x  )  [inline]

Definition at line 435 of file val.hpp.

FloatVal Gecode::cos ( const FloatVal &  x  )  [inline]

Definition at line 439 of file val.hpp.

FloatVal Gecode::tan ( const FloatVal &  x  )  [inline]

Definition at line 443 of file val.hpp.

FloatVal Gecode::asin ( const FloatVal &  x  )  [inline]

Definition at line 447 of file val.hpp.

FloatVal Gecode::acos ( const FloatVal &  x  )  [inline]

Definition at line 451 of file val.hpp.

FloatVal Gecode::atan ( const FloatVal &  x  )  [inline]

Definition at line 455 of file val.hpp.

FloatVal Gecode::sinh ( const FloatVal &  x  )  [inline]

Definition at line 460 of file val.hpp.

FloatVal Gecode::cosh ( const FloatVal &  x  )  [inline]

Definition at line 464 of file val.hpp.

FloatVal Gecode::tanh ( const FloatVal &  x  )  [inline]

Definition at line 468 of file val.hpp.

FloatVal Gecode::asinh ( const FloatVal &  x  )  [inline]

Definition at line 472 of file val.hpp.

FloatVal Gecode::acosh ( const FloatVal &  x  )  [inline]

Definition at line 476 of file val.hpp.

FloatVal Gecode::atanh ( const FloatVal &  x  )  [inline]

Definition at line 480 of file val.hpp.

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

Definition at line 40 of file print.hpp.

IntSet Gecode::binpacking ( Home  home,
int  d,
const IntVarArgs &  l,
const IntVarArgs &  b,
const IntArgs &  s,
const IntArgs &  c,
IntPropLevel   
)
void Gecode::branch ( Home  home,
const IntVarArgs &  x,
TieBreak< IntVarBranch >  vars,
IntAssign  vals,
IntBranchFilter  bf,
IntVarValPrint  vvp 
)

Definition at line 162 of file branch.cpp.

void Gecode::assign ( Home  home,
const BoolVarArgs &  x,
TieBreak< BoolVarBranch >  vars,
BoolAssign  vals,
BoolBranchFilter  bf,
BoolVarValPrint  vvp 
)

Definition at line 301 of file branch.cpp.

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 300 of file dfa.hpp.

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

Definition at line 234 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 292 of file int-set-1.hpp.

IntPropLevel Gecode::vbd ( IntPropLevel  ipl  )  [inline]

Extract value, bounds, or domain propagation from propagation level.

IntPropLevel Gecode::ba ( IntPropLevel  ipl  )  [inline]

Extract basic or advanced from propagation level.

IntRelType Gecode::swap ( IntRelType  irt  )  [inline]

Return swapped relation type of irt.

IntRelType Gecode::neg ( IntRelType  irt  )  [inline]

Return negated relation type of irt.

SymmetryHandle Gecode::values_reflect ( const IntVar &  x  ) 

Definition at line 121 of file ldsb.cpp.

void Gecode::relax ( Home  home,
const IntVarArgs &  x,
const IntVarArgs &  sx,
Rnd  r,
double  p 
)
void Gecode::relax ( Home  home,
const BoolVarArgs &  x,
const BoolVarArgs &  sx,
Rnd  r,
double  p 
)
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 38 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 45 of file print.hpp.

Archive& Gecode::operator<< ( Archive &  e,
unsigned int  i 
) [related]

Definition at line 196 of file archive.hpp.

Archive& Gecode::operator<< ( Archive &  e,
int  i 
) [related]

Definition at line 201 of file archive.hpp.

Archive& Gecode::operator<< ( Archive &  e,
unsigned short  i 
) [related]

Definition at line 206 of file archive.hpp.

Archive& Gecode::operator<< ( Archive &  e,
short  i 
) [related]

Definition at line 211 of file archive.hpp.

Archive& Gecode::operator<< ( Archive &  e,
unsigned char  i 
) [related]

Definition at line 216 of file archive.hpp.

Archive& Gecode::operator<< ( Archive &  e,
char  i 
) [related]

Definition at line 221 of file archive.hpp.

Archive& Gecode::operator<< ( Archive &  e,
bool  i 
) [related]

Definition at line 226 of file archive.hpp.

Archive& Gecode::operator<< ( Archive &  e,
float  d 
) [related]

Definition at line 231 of file archive.hpp.

Archive& Gecode::operator<< ( Archive &  e,
double  d 
) [related]

Definition at line 237 of file archive.hpp.

Archive& Gecode::operator>> ( Archive &  e,
unsigned int &  i 
) [related]

Definition at line 244 of file archive.hpp.

Archive& Gecode::operator>> ( Archive &  e,
int &  i 
) [related]

Definition at line 249 of file archive.hpp.

Archive& Gecode::operator>> ( Archive &  e,
unsigned short &  i 
) [related]

Definition at line 254 of file archive.hpp.

Archive& Gecode::operator>> ( Archive &  e,
short &  i 
) [related]

Definition at line 259 of file archive.hpp.

Archive& Gecode::operator>> ( Archive &  e,
unsigned char &  i 
) [related]

Definition at line 264 of file archive.hpp.

Archive& Gecode::operator>> ( Archive &  e,
char &  i 
) [related]

Definition at line 269 of file archive.hpp.

Archive& Gecode::operator>> ( Archive &  e,
bool &  i 
) [related]

Definition at line 274 of file archive.hpp.

Archive& Gecode::operator>> ( Archive &  e,
float &  d 
) [related]

Definition at line 279 of file archive.hpp.

Archive& Gecode::operator>> ( Archive &  e,
double &  d 
) [related]

Definition at line 286 of file archive.hpp.

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

Definition at line 344 of file action.hpp.

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

Definition at line 174 of file afc.hpp.

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

Definition at line 367 of file chb.hpp.

template<class Var >
ArrayTraits<VarArray<Var> >::ArgsType Gecode::operator+ ( const VarArray< Var > &  x,
const VarArray< Var > &  y 
) [inline]

Definition at line 1046 of file array.hpp.

template<class Var >
ArrayTraits<VarArray<Var> >::ArgsType Gecode::operator+ ( const VarArray< Var > &  x,
const VarArgArray< Var > &  y 
) [inline]

Definition at line 1057 of file array.hpp.

template<class Var >
ArrayTraits<VarArray<Var> >::ArgsType Gecode::operator+ ( const VarArgArray< Var > &  x,
const VarArray< Var > &  y 
) [inline]

Definition at line 1068 of file array.hpp.

template<class Var >
ArrayTraits<VarArray<Var> >::ArgsType Gecode::operator+ ( const VarArray< Var > &  x,
const Var &  y 
) [inline]

Definition at line 1079 of file array.hpp.

template<class Var >
ArrayTraits<VarArray<Var> >::ArgsType Gecode::operator+ ( const Var &  x,
const VarArray< Var > &  y 
) [inline]

Definition at line 1089 of file array.hpp.

template<class ViewX , class ViewY >
bool Gecode::shared ( ViewArray< ViewX >  x,
ViewArray< ViewY >  y 
) [related]

Definition at line 1466 of file array.hpp.

template<class ViewX , class ViewY >
bool Gecode::shared ( ViewArray< ViewX >  x,
ViewY  y 
) [related]

Definition at line 1489 of file array.hpp.

template<class ViewX , class ViewY >
bool Gecode::shared ( ViewX  x,
ViewArray< ViewY >  y 
) [related]

Definition at line 1500 of file array.hpp.

template<class View >
bool Gecode::shared ( ViewArray< View >  x  )  [related]

Definition at line 1506 of file array.hpp.

template<class T >
ArrayTraits<ArgArray<T> >::ArgsType Gecode::operator+ ( const ArgArray< T > &  x,
const ArgArray< T > &  y 
) [inline]

Definition at line 1811 of file array.hpp.

template<class T >
ArrayTraits<ArgArray<T> >::ArgsType Gecode::operator+ ( const ArgArray< T > &  x,
const T &  y 
) [inline]

Definition at line 1818 of file array.hpp.

template<class T >
ArrayTraits<ArgArray<T> >::ArgsType Gecode::operator+ ( const T &  x,
const ArgArray< T > &  y 
) [inline]

Definition at line 1825 of file array.hpp.

template<class Var >
ArrayTraits<VarArgArray<Var> >::ArgsType Gecode::operator+ ( const VarArgArray< Var > &  x,
const VarArgArray< Var > &  y 
) [inline]

Definition at line 1900 of file array.hpp.

template<class Var >
ArrayTraits<VarArgArray<Var> >::ArgsType Gecode::operator+ ( const VarArgArray< Var > &  x,
const Var &  y 
) [inline]

Definition at line 1907 of file array.hpp.

template<class Var >
ArrayTraits<VarArgArray<Var> >::ArgsType Gecode::operator+ ( const Var &  x,
const VarArgArray< Var > &  y 
) [inline]

Definition at line 1914 of file array.hpp.

template<class Var >
bool Gecode::same ( VarArgArray< Var >  x,
VarArgArray< Var >  y 
) [related]

Definition at line 1937 of file array.hpp.

template<class Var >
bool Gecode::same ( VarArgArray< Var >  x,
Var  y 
) [related]

Definition at line 1960 of file array.hpp.

template<class Var >
bool Gecode::same ( Var  x,
VarArgArray< Var >  y 
) [related]

Definition at line 1971 of file array.hpp.

template<class Var >
bool Gecode::same ( VarArgArray< Var >  x  )  [related]

Definition at line 1977 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 2016 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 2032 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 2048 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 362 of file shared-array.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 292 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 304 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 457 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 469 of file allocators.hpp.

TFE Gecode::operator- ( const TFE &  e  ) 

Return negative expression of e.

TFE Gecode::propagator ( PropagatorGroup  g  ) 

Only propagators (but not post functions) from g are considered.

TFE Gecode::post ( PropagatorGroup  g  ) 

Only post functions (but not propagators) from g are considered.

TFE Gecode::operator+ ( TFE  l,
const TFE &  r 
) [inline]

Disjunctive combination of trace filter expressions l and r.

Definition at line 229 of file filter.hpp.

TFE Gecode::operator+ ( const TFE &  e  )  [inline]

Positive expression.

Definition at line 233 of file filter.hpp.

TFE Gecode::operator- ( TFE  l,
const TFE &  r 
) [inline]

Combine positive expression l and negative expression r.

Definition at line 237 of file filter.hpp.

template<class ViewA , class ViewB >
bool Gecode::operator== ( const ConstView< ViewA > &  ,
const ConstView< ViewB > &   
) [inline]

Test whether two views are the same.

Definition at line 699 of file view.hpp.

template<class Var , class View >
bool Gecode::operator== ( const ConstView< View > &  ,
const VarImpView< Var > &   
) [inline]

Test whether two views are the same.

Definition at line 705 of file view.hpp.

template<class ViewA , class ViewB >
bool Gecode::operator== ( const ConstView< ViewA > &  ,
const DerivedView< ViewB > &   
) [inline]

Test whether two views are the same.

Definition at line 711 of file view.hpp.

template<class Var , class View >
bool Gecode::operator== ( const VarImpView< Var > &  ,
const ConstView< View > &   
) [inline]

Test whether two views are the same.

Definition at line 717 of file view.hpp.

template<class Var , class View >
bool Gecode::operator== ( const VarImpView< Var > &  ,
const DerivedView< View > &   
) [inline]

Test whether two views are the same.

Definition at line 723 of file view.hpp.

template<class ViewX , class ViewY >
bool Gecode::operator== ( const DerivedView< ViewX > &  ,
const ConstView< ViewY > &   
) [inline]

Test whether two views are the same.

Definition at line 729 of file view.hpp.

template<class View , class Var >
bool Gecode::operator== ( const DerivedView< View > &  ,
const VarImpView< Var > &   
) [inline]

Test whether two views are the same.

Definition at line 735 of file view.hpp.

template<class ViewX , class ViewY >
bool Gecode::operator== ( const DerivedView< ViewX > &  ,
const DerivedView< ViewY > &   
) [inline]

Test whether two views are not the same.

Definition at line 741 of file view.hpp.

template<class VarX , class VarY >
bool Gecode::operator== ( const VarImpView< VarX > &  x,
const VarImpView< VarY > &  y 
) [inline]

Test whether two views are the same.

Definition at line 747 of file view.hpp.

template<class ViewA , class ViewB >
bool Gecode::operator!= ( const ConstView< ViewA > &  ,
const ConstView< ViewB > &   
) [inline]

Test whether two views are not the same.

Definition at line 754 of file view.hpp.

template<class Var , class View >
bool Gecode::operator!= ( const ConstView< View > &  ,
const VarImpView< Var > &   
) [inline]

Test whether two views are not the same.

Definition at line 760 of file view.hpp.

template<class ViewA , class ViewB >
bool Gecode::operator!= ( const ConstView< ViewA > &  ,
const DerivedView< ViewB > &   
) [inline]

Test whether two views are not the same.

Definition at line 766 of file view.hpp.

template<class Var , class View >
bool Gecode::operator!= ( const VarImpView< Var > &  ,
const ConstView< View > &   
) [inline]

Test whether two views are not the same.

Definition at line 772 of file view.hpp.

template<class Var , class View >
bool Gecode::operator!= ( const VarImpView< Var > &  ,
const DerivedView< View > &   
) [inline]

Test whether two views are not the same.

Definition at line 778 of file view.hpp.

template<class ViewX , class ViewY >
bool Gecode::operator!= ( const DerivedView< ViewX > &  ,
const ConstView< ViewY > &   
) [inline]

Test whether two views are the same.

Definition at line 784 of file view.hpp.

template<class View , class Var >
bool Gecode::operator!= ( const DerivedView< View > &  ,
const VarImpView< Var > &   
) [inline]

Test whether two views are not the same.

Definition at line 790 of file view.hpp.

template<class ViewX , class ViewY >
bool Gecode::operator!= ( const DerivedView< ViewX > &  ,
const DerivedView< ViewY > &   
) [inline]

Test whether two views are not the same.

Definition at line 796 of file view.hpp.

template<class VarX , class VarY >
bool Gecode::operator!= ( const VarImpView< VarX > &  x,
const VarImpView< VarY > &  y 
) [inline]

Test whether two views are not the same.

Definition at line 802 of file view.hpp.

LinFloatExpr Gecode::abs ( const LinFloatExpr &  e  ) 

Return expression for $|e|$.

LinFloatExpr Gecode::min ( const LinFloatExpr &  e0,
const LinFloatExpr &  e1 
)

Return expression for $\min(x,y)$.

LinFloatExpr Gecode::min ( const FloatVarArgs &  x  ) 

Return expression for $\min(x)$.

LinFloatExpr Gecode::max ( const LinFloatExpr &  e0,
const LinFloatExpr &  e1 
)

Return expression for $\max(x,y)$.

LinFloatExpr Gecode::max ( const FloatVarArgs &  x  ) 

Return expression for $\max(x)$.

LinFloatExpr Gecode::operator* ( const FloatVar &  e0,
const FloatVar &  e1 
)

Return expression as product of float variables.

LinFloatExpr Gecode::operator* ( const LinFloatExpr &  e0,
const FloatVar &  e1 
)

Return expression as product of linear float expression and float variable.

LinFloatExpr Gecode::operator* ( const FloatVar &  e0,
const LinFloatExpr &  e1 
)

Return expression as product of float variable and linear float expression.

LinFloatExpr Gecode::operator* ( const LinFloatExpr &  e0,
const LinFloatExpr &  e1 
)

Return expression for $x\cdot y$.

LinFloatExpr Gecode::operator/ ( const LinFloatExpr &  e0,
const LinFloatExpr &  e1 
)

Return expression for $x/y$.

LinFloatExpr Gecode::sqr ( const LinFloatExpr &  e  ) 

Return expression for $x^2$.

LinFloatExpr Gecode::sqrt ( const LinFloatExpr &  e  ) 

Return expression for $\sqrt{x}$.

LinFloatExpr Gecode::pow ( const LinFloatExpr &  e,
int  exp 
)

Return expression for $x^n$.

LinFloatExpr Gecode::nroot ( const LinFloatExpr &  e,
int  exp 
)

Return expression for $x^{1/n}$.

LinIntExpr Gecode::sum ( const Slice< IntArgs > &  slice  ) 

Construct linear expression as sum of IntArgs Slice elements.

LinIntExpr Gecode::sum ( const Matrix< IntArgs > &  matrix  ) 

Construct linear expression as sum of IntArgs Matrix elements.

template<class A >
SymmetryHandle Gecode::rows_interchange ( const Matrix< A > &  m  )  [related]

Interchangeable rows symmetry specification.

Definition at line 40 of file ldsb.hpp.

template<class A >
SymmetryHandle Gecode::columns_interchange ( const Matrix< A > &  m  )  [related]

Interchangeable columns symmetry specification.

Definition at line 51 of file ldsb.hpp.

template<class A >
SymmetryHandle Gecode::rows_reflect ( const Matrix< A > &  m  )  [related]

Reflect rows symmetry specification.

Definition at line 62 of file ldsb.hpp.

template<class A >
SymmetryHandle Gecode::columns_reflect ( const Matrix< A > &  m  )  [related]

Reflect columns symmetry specification.

Definition at line 85 of file ldsb.hpp.

template<class A >
SymmetryHandle Gecode::diagonal_reflect ( const Matrix< A > &  m  )  [related]

Reflect around main diagonal symmetry specification.

Definition at line 108 of file ldsb.hpp.

template<class A >
Slice< A >::ArgsType Gecode::operator+ ( const Slice< A > &  x,
const Slice< A > &  y 
) [inline]

Concatenate x and y.

template<class A >
Slice< A >::ArgsType Gecode::operator+ ( const Slice< A > &  x,
const typename ArrayTraits< A >::ArgsType &  y 
) [inline]

Concatenate x and y.

template<class A >
Slice< A >::ArgsType Gecode::operator+ ( const typename ArrayTraits< A >::ArgsType &  x,
const Slice< A > &  y 
) [inline]

Concatenate x and y.

template<class A >
Slice< A >::ArgsType Gecode::operator+ ( const Slice< A > &  x,
const typename ArrayTraits< A >::ValueType &  y 
) [inline]

Concatenate x and y.

template<class A >
Slice< A >::ArgsType Gecode::operator+ ( const typename ArrayTraits< A >::ValueType &  x,
const Slice< A > &  y 
) [inline]

Concatenate x and y.

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

Definition at line 189 of file matrix.hpp.

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

Definition at line 203 of file matrix.hpp.

void Gecode::element ( Home  home,
const Matrix< IntArgs > &  m,
IntVar  x,
IntVar  y,
IntVar  z,
IntPropLevel  ipl 
) [related]

Definition at line 208 of file matrix.hpp.

void Gecode::element ( Home  home,
const Matrix< IntArgs > &  m,
IntVar  x,
IntVar  y,
BoolVar  z,
IntPropLevel  ipl 
) [related]

Definition at line 213 of file matrix.hpp.

void Gecode::element ( Home  home,
const Matrix< IntVarArgs > &  m,
IntVar  x,
IntVar  y,
IntVar  z,
IntPropLevel  ipl 
) [related]

Definition at line 218 of file matrix.hpp.

void Gecode::element ( Home  home,
const Matrix< BoolVarArgs > &  m,
IntVar  x,
IntVar  y,
BoolVar  z,
IntPropLevel  ipl 
) [related]

Definition at line 223 of file matrix.hpp.

void Gecode::element ( Home  home,
const Matrix< IntSetArgs > &  m,
IntVar  x,
IntVar  y,
SetVar  z 
) [inline]

Definition at line 230 of file matrix.hpp.

void Gecode::element ( Home  home,
const Matrix< SetVarArgs > &  m,
IntVar  x,
IntVar  y,
SetVar  z 
) [related]

Definition at line 235 of file matrix.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 44 of file reg.hpp.

template<class T >
SEB Gecode::bab ( const Search::Options &  o  )  [inline]

Return a depth-first branch-and-bound search engine builder.

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.

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

Return a depth-first search engine builder.

template<class T >
SEB Gecode::lds ( const Search::Options &  o  )  [inline]

Return a limited discrepancy search engine builder.

template<class T , template< class > class E>
SEB Gecode::pbs ( const Search::Options &  o  )  [inline]

Return a portfolio search engine builder.

Definition at line 316 of file pbs.hpp.

template<class T , template< class > class E>
SEB Gecode::rbs ( const Search::Options &  o  )  [inline]

Return a restart search engine builder.

template<class T >
SEB Gecode::pbs ( const Search::Options &  o = Search::Options::def  )  [inline]

Return a portfolio search engine builder.

Definition at line 316 of file pbs.hpp.

SymmetryHandle Gecode::VariableSymmetry ( const SetVarArgs &  x  ) 

Variables in x are interchangeable.

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.

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

Definition at line 47 of file common.hpp.

template<>
bool Gecode::viewarrayshared< Set::SingletonView, Set::SetView > ( const ViewArray< Set::SingletonView > &  ,
const Set::SetView &   
) [inline]
void Gecode::relax ( Home  home,
const SetVarArgs &  x,
const SetVarArgs &  sx,
Rnd  r,
double  p 
)
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 38 of file print.hpp.

template<class T >
T Gecode::ptr_cast ( void *  p  )  [inline]

Cast p into pointer of type T.

Definition at line 42 of file cast.hpp.

template<class T >
void Gecode::cmb_hash ( std::size_t &  seed,
const T  h 
) [inline]

Combine hash value h into seed.

Definition at line 44 of file hash.hpp.