Generated on Thu Jan 16 2025 00:00:00 for Gecode by doxygen 1.14.0

Gecode toplevel namespace More...

Namespaces

namespace  CPProfiler
 Code that is specific to the CPProfiler.
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  Kernel
 Kernel functionality
namespace  MiniModel
 Minimalistic modeling support.
 Search engines
namespace  Set
 Finite integer sets.
namespace  Support
 Support algorithms and datastructures

Classes

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

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 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 rel (Home home, FloatVar x0, FloatRelType frt, FloatVar x1)
 Post propagator for $ x_0 \sim_{frt} x_1$.
void rel (Home home, FloatVar x, FloatRelType frt, FloatVal c)
 Propagates $ x \sim_{frt} c$.
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, FloatVar x0, FloatRelType frt, FloatVar x1, Reify r)
 Post propagator for $(x_0 \sim_{frt} x_1)\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 ite (Home home, BoolVar b, FloatVar x, FloatVar y, FloatVar z)
 Post propagator for if-then-else constraint.
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 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 abs (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ |x_0|=x_1$.
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\geq 0$.
void nroot (Home home, FloatVar x0, int n, FloatVar x1)
 Post propagator for ${x_0}^{1/n}=x_1$ for $n\geq 0$.
void div (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$.
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 pow (Home home, FloatNum base, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathit{base}^{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 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$.
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, FloatVar y)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{frt} y$.
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 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, 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, 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, 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 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$.
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, IntVar x0, FloatVar 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, BoolVar x0, FloatVar x1)
 Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$.
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.
FloatVarBranch FLOAT_VAR_NONE (void)
 Select first unassigned variable.
FloatVarBranch FLOAT_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking)
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_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.
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=nullptr)
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=nullptr)
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.
GECODE_FLOAT_EXPORT void relax (Home home, const FloatVarArgs &x, const FloatVarArgs &sx, Rnd r, double p)
GECODE_FLOAT_EXPORT 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.
Archiveoperator<< (Archive &e, FloatNumBranch nl)
Archiveoperator>> (Archive &e, FloatNumBranch &nl)
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)
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.
IntRelType swap (IntRelType irt)
 Return swapped relation type of irt.
IntRelType neg (IntRelType irt)
 Return negated relation type of irt.
IntPropLevel vbd (IntPropLevel ipl)
 Extract value, bounds, or domain propagation from propagation level.
IntPropLevel ba (IntPropLevel ipl)
 Extract basic or advanced from propagation level.
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 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 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, 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 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 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, 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, BoolVar x, IntRelType irt, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $ x \sim_{irt} n$.
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, 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, 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, const BoolVarArgs &x, IntRelType irt, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for relation between elements in x.
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, BoolVar z, 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, int n, 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.
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.
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 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 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 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, 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, 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, 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 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 sorted (Home home, const IntVarArgs &x, const IntVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post propagator that y is x sorted in increasing order.
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 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, 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, 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 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, 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, 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 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 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, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint.
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 IntSetArgs &c, const IntArgs &v, 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.
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 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 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, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$.
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, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$.
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, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$.
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, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$.
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 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 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 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 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 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 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 abs (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ |x_0|=x_1$.
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 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, 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, 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 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, 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, 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, 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 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 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, 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, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{irt} y$.
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, 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, 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, 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 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 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 ipl=IPL_DEF)
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 order (Home home, IntVar s0, int p0, IntVar s1, int p1, BoolVar b, IntPropLevel ipl=IPL_DEF)
 Post propagators for ordering two tasks.
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 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 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, 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, 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 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 circuit (Home home, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit.
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 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, 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, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit with cost 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 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, 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 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, 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, 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, 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 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.
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.
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.
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.
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.
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 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 IntVarArgs &x, IntVarBranch vars, IntAssign vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with variable selection vars with value selection vals.
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, IntVar x, IntAssign vals, IntVarValPrint vvp=nullptr)
 Assign 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, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with tie-breaking variable selection vars and value selection vals.
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.
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 (IntVar x)
 The values in the domain of \x can be reflected.
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.
GECODE_INT_EXPORT 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 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 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, 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 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 branch (Home home, const IntVarArgs &x, TieBreak< IntVarBranch > vars, IntAssign vals, IntBranchFilter bf, IntVarValPrint vvp)
void assign (Home home, const BoolVarArgs &x, TieBreak< BoolVarBranch > vars, BoolAssign vals, BoolBranchFilter bf, BoolVarValPrint vvp)
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)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const IntSet &is)
SymmetryHandle values_reflect (const IntVar &x)
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 branch (Home home, std::function< void(Space &home)> f)
 Call the function f (with the current space as argument) for branching.
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.
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)
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.
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.
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 IntArgs &args)
 Construct linear expression as sum of IntArgs.
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.
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.
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.
SetExpr singleton (const LinIntExpr &)
 Singleton expression.
SetExpr operator- (const SetExpr &)
 Complement expression.
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 &, const SetExpr &)
 Difference of set expressions.
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.
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 BoolExpr &)
 Negated Boolean expression.
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 &, 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.
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$.
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)=delete
 Prevent comparison with IntSet.
BoolExpr operator== (IntSet, const LinIntExpr &)=delete
 Prevent comparison with IntSet.
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 LinIntExpr &, IntSet)=delete
 Prevent comparison with IntSet.
BoolExpr operator!= (IntSet, const LinIntExpr &)=delete
 Prevent comparison with IntSet.
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 LinIntExpr &, IntSet)=delete
 Prevent comparison with IntSet.
BoolExpr operator<= (IntSet, const LinIntExpr &)=delete
 Prevent comparison with IntSet.
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)=delete
 Prevent comparison with IntSet.
BoolExpr operator< (IntSet, const LinIntExpr &)=delete
 Prevent comparison with IntSet.
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 LinIntExpr &, IntSet)=delete
 Prevent comparison with IntSet.
BoolExpr operator>= (IntSet, const LinIntExpr &)=delete
 Prevent comparison with IntSet.
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)=delete
 Prevent comparison with IntSet.
BoolExpr operator> (IntSet, const LinIntExpr &)=delete
 Prevent comparison with IntSet.
IntVar expr (Home home, const LinIntExpr &e, const IntPropLevels &ipls=IntPropLevels::def)
 Post linear expression and return its value.
FloatVar expr (Home home, const LinFloatExpr &e)
 Post float expression and return its value.
SetVar expr (Home home, const SetExpr &e)
 Post set expression and return its value.
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.
LinIntExpr operator* (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $x\cdot y$.
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 abs (const LinIntExpr &e)
 Return expression for $|e|$.
LinIntExpr min (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $\min(x,y)$.
LinIntExpr min (const IntVarArgs &x)
 Return expression for $\min(x)$.
LinIntExpr max (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $\max(x,y)$.
LinIntExpr max (const IntVarArgs &x)
 Return expression for $\max(x)$.
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 element (const IntVarArgs &x, const LinIntExpr &y)
 Return expression for $x[y]$.
BoolExpr element (const BoolVarArgs &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$.
LinFloatExpr operator* (const FloatVar &, const FloatVar &)
 Return expression as product of float variables.
LinFloatExpr operator* (const FloatVar &, const LinFloatExpr &)
 Return expression as product of float variable and linear float expression.
LinFloatExpr operator* (const LinFloatExpr &, const FloatVar &)
 Return expression as product of linear float expression and float variable.
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 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)$.
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}\}$.
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$.
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.
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.
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 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)
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 * 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 * 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 * 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, template< class > class E>
T * pbs (T *s, const Search::Options &o=Search::Options::def)
 Run a portfolio of search engines.
template<class T>
SEB pbs (const Search::Options &o=Search::Options::def)
 Return a portfolio search engine builder.
template<class T, template< class > class E>
SEB pbs (const Search::Options &o)
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 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 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 rel (Home home, SetVar x, SetRelType r, SetVar y)
 Post propagator for $ x \sim_r y$.
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 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 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 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, 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, 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 rel (Home home, IntVar x, IntRelType rt, SetVar s, Reify r)
 Post reified propagator for .
Post propagator for f$ (x \diamond_{\mathit{op}} y) \sim_r z \f$ void rel(Home home
void ite (Home home, BoolVar b, SetVar x, SetVar y, SetVar z)
 Post propagator for if-then-else constraint.
Post propagator that propagates that a x is convex void convex (Home home, SetVar x)
Post propagator that propagates that a y is the convex hull of a x void convex (Home home, SetVar x, SetVar y)
Select first unassigned variable SetVarBranch SET_VAR_NONE (void)
Select random variable (uniform distribution, for tie breaking) SetVarBranch SET_VAR_RND(Rnd r)
Select variable with least merit according to branch merit function a bm SetVarBranch SET_VAR_MERIT_MIN (SetBranchMerit bm, BranchTbl tbl=nullptr)
Select variable with highest merit according to branch merit function a bm SetVarBranch SET_VAR_MERIT_MAX (SetBranchMerit bm, BranchTbl tbl=nullptr)
Select variable with smallest degree SetVarBranch SET_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
Select variable with largest degree SetVarBranch SET_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
Select variable with smallest accumulated failure count with decay factor a d SetVarBranch SET_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
Select variable with smallest accumulated failure count SetVarBranch SET_VAR_AFC_MIN (SetAFC a, BranchTbl tbl=nullptr)
Select variable with largest accumulated failure count with decay factor a d SetVarBranch SET_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest accumulated failure count SetVarBranch SET_VAR_AFC_MAX (SetAFC a, BranchTbl tbl=nullptr)
Select variable with lowest action with decay factor a d SetVarBranch SET_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
Select variable with lowest action SetVarBranch SET_VAR_ACTION_MIN (SetAction a, BranchTbl tbl=nullptr)
Select variable with highest action with decay factor a d SetVarBranch SET_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
Select variable with highest action SetVarBranch SET_VAR_ACTION_MAX (SetAction a, BranchTbl tbl=nullptr)
Select variable with lowest CHB Q score 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 highest 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 smallest minimum unknown element SetVarBranch SET_VAR_MIN_MIN (BranchTbl tbl=nullptr)
Select variable with largest minimum unknown element SetVarBranch SET_VAR_MIN_MAX (BranchTbl tbl=nullptr)
Select variable with smallest maximum unknown element SetVarBranch SET_VAR_MAX_MIN (BranchTbl tbl=nullptr)
Select variable with largest maximum unknown element SetVarBranch SET_VAR_MAX_MAX (BranchTbl tbl=nullptr)
Select variable with smallest unknown set SetVarBranch SET_VAR_SIZE_MIN (BranchTbl tbl=nullptr)
Select variable with largest unknown set SetVarBranch SET_VAR_SIZE_MAX (BranchTbl tbl=nullptr)
Select variable with smallest degree divided by domain size SetVarBranch SET_VAR_DEGREE_SIZE_MIN (BranchTbl tbl=nullptr)
Select variable with largest degree divided by domain size SetVarBranch SET_VAR_DEGREE_SIZE_MAX (BranchTbl tbl=nullptr)
Select variable with smallest accumulated failure count divided by domain size with decay factor a d SetVarBranch SET_VAR_AFC_SIZE_MIN (double d=1.0, BranchTbl tbl=nullptr)
Select variable with smallest accumulated failure count divided by domain size SetVarBranch SET_VAR_AFC_SIZE_MIN (SetAFC a, BranchTbl tbl=nullptr)
Select variable with largest accumulated failure count divided by domain size with decay factor a d SetVarBranch SET_VAR_AFC_SIZE_MAX (double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest accumulated failure count divided by domain size SetVarBranch SET_VAR_AFC_SIZE_MAX (SetAFC a, BranchTbl tbl=nullptr)
Select variable with smallest action divided by domain size with decay factor a d SetVarBranch SET_VAR_ACTION_SIZE_MIN (double d=1.0, BranchTbl tbl=nullptr)
Select variable with smallest action divided by domain size SetVarBranch SET_VAR_ACTION_SIZE_MIN (SetAction a, BranchTbl tbl=nullptr)
Select variable with largest action divided by domain size with decay factor a d SetVarBranch SET_VAR_ACTION_SIZE_MAX (double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest action divided by domain size SetVarBranch SET_VAR_ACTION_SIZE_MAX (SetAction a, BranchTbl tbl=nullptr)
Select variable with smallest CHB Q score 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 largest 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)
Include smallest element SetValBranch SET_VAL_MIN_INC (void)
Exclude smallest element SetValBranch SET_VAL_MIN_EXC (void)
Include median element (rounding downwards) SetValBranch SET_VAL_MED_INC(void)
Include largest element SetValBranch SET_VAL_MAX_INC (void)
Exclude largest element SetValBranch SET_VAL_MAX_EXC (void)
Include random element SetValBranch SET_VAL_RND_INC (Rnd r)
Exclude random element SetValBranch SET_VAL_RND_EXC (Rnd r)
SetValBranch SET_VAL (SetBranchVal v, SetBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c.
Include smallest element SetAssign SET_ASSIGN_MIN_INC (void)
Exclude smallest element SetAssign SET_ASSIGN_MIN_EXC (void)
Include largest element SetAssign SET_ASSIGN_MAX_INC (void)
Exclude largest element SetAssign SET_ASSIGN_MAX_EXC (void)
Include random element SetAssign SET_ASSIGN_RND_INC (Rnd r)
Exclude random element SetAssign SET_ASSIGN_RND_EXC (Rnd r)
SetAssign SET_ASSIGN (SetBranchVal v, SetBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c.
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.
Variables in a x are interchangeable SymmetryHandle VariableSymmetry (const SetVarArgs &x)
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.
GECODE_SET_EXPORT void relax (Home home, const SetVarArgs &x, const SetVarArgs &sx, Rnd r, double p)
GECODE_SET_EXPORT 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.
SetAssign SET_ASSIGN_MED_INC (void)
SetAssign SET_ASSIGN_MED_EXC (void)
SetValBranch SET_VAL_MED_INC (void)
SetValBranch SET_VAL_MED_EXC (void)
SetVarBranch SET_VAR_RND (Rnd r)
void cardinality (Home home, SetVar s, IntVar x)
void cardinality (Home home, SetVar s, IntVar x, Reify r)
void channelSorted (Home home, const IntVarArgs &x, SetVar y)
void channel (Home home, const IntVarArgs &x, const SetVarArgs &y)
void channel (Home home, const BoolVarArgs &x, SetVar y)
void channel (Home home, const SetVarArgs &x, const SetVarArgs &y)
void atmostOne (Home home, const SetVarArgs &xa, unsigned int c)
void element (Home home, SetOpType op, const SetVarArgs &x, SetVar y, SetVar z, const IntSet &universe)
void element (Home home, SetOpType op, const IntVarArgs &x, SetVar y, SetVar z, const IntSet &universe)
void element (Home home, SetOpType op, const IntSetArgs &x, SetVar y, SetVar z, const IntSet &universe)
void element (Home home, SetOpType op, const IntArgs &x, SetVar y, SetVar z, const IntSet &universe)
void element (Home home, const SetVarArgs &x, IntVar y, SetVar z)
void element (Home home, const IntSetArgs &x, IntVar y, SetVar z)
void element (Home home, const IntSetArgs &a, IntVar x, int w, IntVar y, int h, SetVar z)
void element (Home home, const SetVarArgs &a, IntVar x, int w, IntVar y, int h, SetVar z)
void wait (Home home, SetVar x, std::function< void(Space &home)> c)
void wait (Home home, const SetVarArgs &x, std::function< void(Space &home)> c)
void min (Home home, SetVar s, IntVar x)
void notMin (Home home, SetVar s, IntVar x)
void min (Home home, SetVar s, IntVar x, Reify r)
void max (Home home, SetVar s, IntVar x)
void notMax (Home home, SetVar s, IntVar x)
void max (Home home, SetVar s, IntVar x, Reify r)
void weights (Home home, IntSharedArray elements, IntSharedArray weights, SetVar x, IntVar y)
void precede (Home home, const SetVarArgs &x, int s, int t)
void precede (Home home, const SetVarArgs &x, const IntArgs &c)
void rel (Home home, const IntSet &x, SetOpType op, SetVar y, SetRelType r, const IntSet &z)
void rel (Home home, const IntSet &x, SetOpType op, SetVar y, SetRelType r, SetVar z)
void rel (Home home, SetVar x, SetOpType op, const IntSet &y, SetRelType r, const IntSet &z)
void rel (Home home, SetVar x, SetOpType op, const IntSet &y, SetRelType r, SetVar z)
void rel (Home home, SetVar x, SetOpType op, SetVar y, SetRelType r, const IntSet &z)
void rel (Home home, SetOpType op, const IntVarArgs &x, SetVar y)
void rel (Home home, SetOpType op, const IntVarArgs &x, const IntSet &z, SetVar y)
void rel (Home home, SetVar x, SetOpType op, SetVar y, SetRelType r, SetVar z)
void rel (Home home, SetOpType op, const SetVarArgs &x, SetVar y)
void rel (Home home, SetOpType op, const SetVarArgs &x, const IntSet &z, SetVar y)
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 sequence (Home home, const SetVarArgs &xa)
void sequence (Home home, const SetVarArgs &xa, SetVar y)
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.
bool subset (const FloatVal &x, const FloatVal &y)
 Test whether x is a subset of y.
bool proper_subset (const FloatVal &x, const FloatVal &y)
 Test whether x is a proper subset of y.
bool overlap (const FloatVal &x, const FloatVal &y)
 Test whether x and y overlap.
FloatVal intersect (const FloatVal &x, const FloatVal &y)
 Return intersection of x and y.
FloatVal hull (const FloatVal &x, const FloatVal &y)
 Return hull of x and y.
FloatVal hull (const FloatVal &x, const FloatNum &y)
 Return hull of x and y.
FloatVal hull (const FloatNum &x, const FloatVal &y)
 Return hull of x and y.
FloatVal hull (const FloatNum &x, const FloatNum &y)
 Return hull of x and y.
FloatVal operator+ (const FloatVal &x)
 Arithmetic operator.
FloatVal operator- (const FloatVal &x)
 Arithmetic operator.
FloatVal operator+ (const FloatVal &x, const FloatVal &y)
 Arithmetic operator.
FloatVal operator+ (const FloatVal &x, const FloatNum &y)
 Arithmetic operator.
FloatVal operator+ (const FloatNum &x, const FloatVal &y)
 Arithmetic operator.
FloatVal operator- (const FloatVal &x, const FloatVal &y)
 Arithmetic operator.
FloatVal operator- (const FloatVal &x, const FloatNum &y)
 Arithmetic operator.
FloatVal operator- (const FloatNum &x, const FloatVal &y)
 Arithmetic operator.
FloatVal operator* (const FloatVal &x, const FloatVal &y)
 Arithmetic operator.
FloatVal operator* (const FloatVal &x, const FloatNum &y)
 Arithmetic operator.
FloatVal operator* (const FloatNum &x, const FloatVal &y)
 Arithmetic operator.
FloatVal operator/ (const FloatVal &x, const FloatVal &y)
 Arithmetic operator.
FloatVal operator/ (const FloatVal &x, const FloatNum &y)
 Arithmetic operator.
FloatVal operator/ (const FloatNum &r, const FloatVal &x)
 Arithmetic operator.
bool operator< (const FloatVal &x, const FloatVal &y)
 Comparison operator.
bool operator< (const FloatVal &x, const FloatNum &y)
 Comparison operator.
bool operator< (const FloatNum &x, const FloatVal &y)
 Comparison operator.
bool operator<= (const FloatVal &x, const FloatVal &y)
 Comparison operator.
bool operator<= (const FloatVal &x, const FloatNum &y)
 Comparison operator.
bool operator<= (const FloatNum &x, const FloatVal &y)
 Comparison operator.
bool operator> (const FloatVal &x, const FloatVal &y)
 Comparison operator.
bool operator> (const FloatVal &x, const FloatNum &y)
 Comparison operator.
bool operator> (const FloatNum &x, const FloatVal &y)
 Comparison operator.
bool operator>= (const FloatVal &x, const FloatVal &y)
 Comparison operator.
bool operator>= (const FloatVal &x, const FloatNum &y)
 Comparison operator.
bool operator>= (const FloatNum &x, const FloatVal &y)
 Comparison operator.
bool operator== (const FloatVal &x, const FloatVal &y)
 Comparison operator.
bool operator== (const FloatVal &x, const FloatNum &y)
 Comparison operator.
bool operator== (const FloatNum &x, const FloatVal &y)
 Comparison operator.
bool operator!= (const FloatVal &x, const FloatVal &y)
 Comparison operator.
bool operator!= (const FloatVal &x, const FloatNum &y)
 Comparison operator.
bool operator!= (const FloatNum &x, const FloatVal &y)
 Comparison operator.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const FloatVal &x)
 Print float value x.
FloatVal abs (const FloatVal &x)
 Return absolute value of x.
FloatVal sqrt (const FloatVal &x)
 Return square root of x.
FloatVal sqr (const FloatVal &x)
 Return square of x.
FloatVal pow (const FloatVal &x, int n)
 Return n -th power of x.
FloatVal nroot (const FloatVal &x, int n)
 Return n -th root of x.
FloatVal max (const FloatVal &x, const FloatVal &y)
 Return maximum of x and y.
FloatVal max (const FloatVal &x, const FloatNum &y)
 Return maximum of x and y.
FloatVal max (const FloatNum &x, const FloatVal &y)
 Return maximum of x and y.
FloatVal min (const FloatVal &x, const FloatVal &y)
 Return minimum of x and y.
FloatVal min (const FloatVal &x, const FloatNum &y)
 Return minimum of x and y.
FloatVal min (const FloatNum &x, const FloatVal &y)
 Return minimum of x and y.
FloatVal exp (const FloatVal &x)
 Return exponential of x.
FloatVal log (const FloatVal &x)
 Return logarithm of x.
FloatVal fmod (const FloatVal &x, const FloatVal &y)
 Trigonometric function argument reduction.
FloatVal fmod (const FloatVal &x, const FloatNum &y)
 Trigonometric function argument reduction.
FloatVal fmod (const FloatNum &x, const FloatVal &y)
 Trigonometric function argument reduction.
FloatVal sin (const FloatVal &x)
 Return sine of x.
FloatVal cos (const FloatVal &x)
 Return cosine of x.
FloatVal tan (const FloatVal &x)
 Return tangent of x.
FloatVal asin (const FloatVal &x)
 Return arcsine of x.
FloatVal acos (const FloatVal &x)
 Return arccosine of x.
FloatVal atan (const FloatVal &x)
 Return arctangent of x.
FloatVal sinh (const FloatVal &x)
 Return hyperbolic of x.
FloatVal cosh (const FloatVal &x)
 Return hyperbolic of x.
FloatVal tanh (const FloatVal &x)
 Return hyperbolic of x.
FloatVal asinh (const FloatVal &x)
 Return hyperbolic of x.
FloatVal acosh (const FloatVal &x)
 Return hyperbolic of x.
FloatVal atanh (const FloatVal &x)
 Return hyperbolic of x.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const FloatVar &x)
 Print float variable x.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const IntSet &s)
 Print integer set s.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const IntVar &x)
 Print integer variable x.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const BoolVar &x)
 Print Boolean variable x.
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)
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)
 Print action values enclosed in curly brackets.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const AFC &a)
 Print AFC information (prints nothing)
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const CHB &a)
 Print chb values enclosed in curly brackets.
template<class T>
ArrayTraits< VarArray< T > >::ArgsType operator+ (const VarArray< T > &x, const VarArgArray< T > &y)
template<class T>
ArrayTraits< VarArray< T > >::ArgsType operator+ (const VarArray< T > &x, const VarArray< T > &y)
template<class T>
ArrayTraits< VarArray< T > >::ArgsType operator+ (const VarArgArray< T > &x, const VarArray< T > &y)
template<class T>
ArrayTraits< VarArray< T > >::ArgsType operator+ (const VarArray< T > &x, const T &y)
template<class T>
ArrayTraits< VarArray< T > >::ArgsType operator+ (const T &x, const VarArray< T > &y)
template<class ViewX, class ViewY>
bool shared (ViewArray< ViewX > x, ViewArray< ViewY > y)
 Test whether array x together with array y contains shared views.
template<class ViewX, class ViewY>
bool shared (ViewArray< ViewX > x, ViewY y)
 Test whether array x contains a view shared with y.
template<class ViewX, class ViewY>
bool shared (ViewX x, ViewArray< ViewY > y)
 Test whether array y contains a view shared with x.
template<class View>
bool shared (ViewArray< View > x)
 Test whether array x contains shared views.
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)
 Test whether array x together with array y contains at least one variable being the same.
template<class Var>
bool same (VarArgArray< Var > x, Var y)
 Test whether array x contains variable y.
template<class Var>
bool same (Var x, VarArgArray< Var > y)
 Test whether array y contains variable x.
template<class Var>
bool same (VarArgArray< Var > x)
 Test whether array x contains a variable multiply.
template<class Char, class Traits, class Var>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const VarArray< Var > &x)
 Print array elements enclosed in curly brackets.
template<class Char, class Traits, class View>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const ViewArray< View > &x)
 Print array elements enclosed in curly brackets.
template<class Char, class Traits, class T>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const ArgArrayBase< T > &x)
 Print array elements enclosed in curly brackets.
template<class Char, class Traits, class T>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const SharedArray< T > &x)
 Print array elements enclosed in curly brackets.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const ViewTraceInfo &vti)
 Print view trace information.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const PropagateTraceInfo &pti)
 Print propagate trace information.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const CommitTraceInfo &cti)
 Print commit trace information.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const PostTraceInfo &pti)
 Print post trace information.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const REG &r)
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=IPL_DEF)
 Element constraint for matrix.
void element (Home home, const Matrix< IntArgs > &m, IntVar x, IntVar y, BoolVar z, IntPropLevel ipl=IPL_DEF)
 Element constraint for matrix.
void element (Home home, const Matrix< IntVarArgs > &m, IntVar x, IntVar y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Element constraint for matrix.
void element (Home home, const Matrix< BoolVarArgs > &m, IntVar x, IntVar y, BoolVar z, IntPropLevel ipln=IPL_DEF)
 Element constraint for matrix.
void element (Home home, const Matrix< IntSetArgs > &m, IntVar x, IntVar y, SetVar z)
 Element constraint for matrix.
void element (Home home, const Matrix< SetVarArgs > &m, IntVar x, IntVar y, SetVar z)
 Element constraint for matrix.
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 Char, class Traits>
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const SetVar &x)
 Print set variable x.

Variables

Function type for printing branching alternatives for set variables typedef std::function< void(const Space &home, const Brancher &b, unsigned int a, SetVar x, int i, const int &n, std::ostream &o)> SetVarValPrint
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.
Post propagator for SetVar x
Post propagator for SetVar SetOpType op
Post propagator for SetVar SetOpType SetVar y
Post propagator for SetVar SetOpType SetVar SetRelType r
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
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

◆ FloatVarValPrint

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 1663 of file float.hh.

◆ IntSetArgs

Passing set arguments.

Definition at line 625 of file int.hh.

◆ IntSharedArray

Arrays of integers that can be shared among several element constraints.

Definition at line 1492 of file int.hh.

◆ IntVarValPrint

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 4567 of file int.hh.

◆ BoolVarValPrint

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 4574 of file int.hh.

◆ LiteralArgs

An array of literals.

Definition at line 93 of file ldsb.hh.

◆ BranchFilter

template<class Var>
using Gecode::BranchFilter
Initial value:
std::function<bool(const Space& home,
Var x, int i)>
Computation spaces.
Definition core.hpp:1744
Base class for variables.
Definition var.hpp:40
Post propagator for SetVar x
Definition set.hh:773

Function type for branch filter functions.

Definition at line 40 of file filter.hpp.

◆ VarValPrint

template<class Var, class Val>
using Gecode::VarValPrint
Initial value:
std::function<void(const Space& home, const Brancher& b,
unsigned int a,
Var x, int i, const Val& m,
std::ostream& o)>
Base-class for branchers.
Definition core.hpp:1444

Function type for printing variable and value selection.

Definition at line 40 of file print.hpp.

◆ ModEvent

typedef int Gecode::ModEvent

Type for modification events.

Definition at line 62 of file core.hpp.

◆ PropCond

typedef int Gecode::PropCond

Type for propagation conditions.

Definition at line 72 of file core.hpp.

◆ SEB

Type for a search engine builder.

Definition at line 993 of file search.hh.

Enumeration Type Documentation

◆ ExecStatus

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

◆ pi_half_lower()

FloatNum Gecode::pi_half_lower ( void )
inline

Return lower bound of $\pi/2$.

Definition at line 37 of file num.hpp.

◆ pi_half_upper()

FloatNum Gecode::pi_half_upper ( void )
inline

Return upper bound of $\pi/2$.

Definition at line 41 of file num.hpp.

◆ pi_lower()

FloatNum Gecode::pi_lower ( void )
inline

Return lower bound of $\pi$.

Definition at line 45 of file num.hpp.

◆ pi_upper()

FloatNum Gecode::pi_upper ( void )
inline

Return upper bound of $\pi$.

Definition at line 49 of file num.hpp.

◆ pi_twice_lower()

FloatNum Gecode::pi_twice_lower ( void )
inline

Return lower bound of $2\pi$.

Definition at line 53 of file num.hpp.

◆ pi_twice_upper()

FloatNum Gecode::pi_twice_upper ( void )
inline

Return upper bound of $2\pi$.

Definition at line 57 of file num.hpp.

◆ dom() [1/40]

void Gecode::dom ( Home home,
FloatVar x,
FloatVal n )

Propagates $x=n$.

Definition at line 40 of file dom.cpp.

◆ dom() [2/40]

void Gecode::dom ( Home home,
const FloatVarArgs & x,
FloatVal n )

Propagates $ x_i=n$ for all $0\leq i<|x|$.

Definition at line 49 of file dom.cpp.

◆ dom() [3/40]

void Gecode::dom ( Home home,
FloatVar x,
FloatNum l,
FloatNum m )

Propagates $ l\leq x\leq u$.

Definition at line 60 of file dom.cpp.

◆ dom() [4/40]

void Gecode::dom ( Home home,
const FloatVarArgs & x,
FloatNum l,
FloatNum u )

Propagates $ l\leq x_i\leq u$ for all $0\leq i<|x|$.

Definition at line 71 of file dom.cpp.

◆ dom() [5/40]

void Gecode::dom ( Home home,
FloatVar x,
FloatVal n,
Reify r )

Post domain consistent propagator for $ (x=n) \equiv r$.

Definition at line 84 of file dom.cpp.

◆ dom() [6/40]

void Gecode::dom ( Home home,
FloatVar x,
FloatNum l,
FloatNum u,
Reify r )

Post domain consistent propagator for $ (l\leq x \leq u) \equiv r$.

Definition at line 106 of file dom.cpp.

◆ dom() [7/40]

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

Constrain domain of x according to domain of d.

Definition at line 126 of file dom.cpp.

◆ dom() [8/40]

void Gecode::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|$.

Definition at line 137 of file dom.cpp.

◆ min() [1/17]

void Gecode::min ( Home home,
FloatVar x0,
FloatVar x1,
FloatVar x2 )

Post propagator for $ \min\{x_0,x_1\}=x_2$.

Definition at line 67 of file arithmetic.cpp.

◆ min() [2/17]

void Gecode::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.

Definition at line 74 of file arithmetic.cpp.

◆ max() [1/17]

void Gecode::max ( Home home,
FloatVar x0,
FloatVar x1,
FloatVar x2 )

Post propagator for $ \max\{x_0,x_1\}=x_2$.

Definition at line 49 of file arithmetic.cpp.

◆ max() [2/17]

void Gecode::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.

Definition at line 56 of file arithmetic.cpp.

◆ abs() [1/6]

void Gecode::abs ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $ |x_0|=x_1$.

Definition at line 41 of file arithmetic.cpp.

◆ mult() [1/2]

void Gecode::mult ( Home home,
FloatVar x0,
FloatVar x1,
FloatVar x2 )

Post propagator for $x_0\cdot x_1=x_2$.

Definition at line 88 of file arithmetic.cpp.

◆ sqr() [1/6]

void Gecode::sqr ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $x_0\cdot x_0=x_1$.

Definition at line 95 of file arithmetic.cpp.

◆ sqrt() [1/6]

void Gecode::sqrt ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $\sqrt{x_0}=x_1$.

Definition at line 102 of file arithmetic.cpp.

◆ pow() [1/7]

void Gecode::pow ( Home home,
FloatVar x0,
int n,
FloatVar x1 )

Post propagator for ${x_0}^{n}=x_1$ for $n\geq 0$.

Definition at line 109 of file arithmetic.cpp.

◆ nroot() [1/6]

void Gecode::nroot ( Home home,
FloatVar x0,
int n,
FloatVar x1 )

Post propagator for ${x_0}^{1/n}=x_1$ for $n\geq 0$.

Definition at line 118 of file arithmetic.cpp.

◆ div() [1/2]

void Gecode::div ( Home home,
FloatVar x0,
FloatVar x1,
FloatVar x2 )

Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$.

Definition at line 127 of file arithmetic.cpp.

◆ exp() [1/4]

void Gecode::exp ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $ \mathrm{exp}(x_0)=x_1$.

Definition at line 45 of file transcendental.cpp.

◆ log() [1/5]

void Gecode::log ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $ \mathrm{log}_e(x_0)=x_1$.

Definition at line 53 of file transcendental.cpp.

◆ pow() [2/7]

void Gecode::pow ( Home home,
FloatNum base,
FloatVar x0,
FloatVar x1 )

Post propagator for $ \mathit{base}^{x_0}=x_1$.

Definition at line 69 of file transcendental.cpp.

◆ log() [2/5]

void Gecode::log ( Home home,
FloatNum base,
FloatVar x0,
FloatVar x1 )

Post propagator for $ \mathrm{log}_{\mathit{base}}(x_0)=x_1$.

Definition at line 61 of file transcendental.cpp.

◆ asin() [1/4]

void Gecode::asin ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $ \mathrm{asin}(x_0)=x_1$.

Definition at line 45 of file trigonometric.cpp.

◆ sin() [1/4]

void Gecode::sin ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $ \mathrm{sin}(x_0)=x_1$.

Definition at line 52 of file trigonometric.cpp.

◆ acos() [1/4]

void Gecode::acos ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $ \mathrm{acos}(x_0)=x_1$.

Definition at line 59 of file trigonometric.cpp.

◆ cos() [1/4]

void Gecode::cos ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $ \mathrm{cos}(x_0)=x_1$.

Definition at line 66 of file trigonometric.cpp.

◆ atan() [1/4]

void Gecode::atan ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $ \mathrm{atan}(x_0)=x_1$.

Definition at line 73 of file trigonometric.cpp.

◆ tan() [1/4]

void Gecode::tan ( Home home,
FloatVar x0,
FloatVar x1 )

Post propagator for $ \mathrm{tan}(x_0)=x_1$.

Definition at line 80 of file trigonometric.cpp.

◆ channel() [1/17]

void Gecode::channel ( Home home,
FloatVar x0,
IntVar x1 )

Post propagator for channeling a float and an integer variable $ x_0 = x_1$.

Definition at line 41 of file channel.cpp.

◆ channel() [2/17]

void Gecode::channel ( Home home,
IntVar x0,
FloatVar x1 )
inline

Post propagator for channeling a float and an integer variable $ x_0 = x_1$.

Definition at line 39 of file channel.hpp.

◆ channel() [3/17]

void Gecode::channel ( Home home,
FloatVar x0,
BoolVar x1 )

Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$.

Definition at line 49 of file channel.cpp.

◆ channel() [4/17]

void Gecode::channel ( Home home,
BoolVar x0,
FloatVar x1 )
inline

Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$.

Definition at line 44 of file channel.hpp.

◆ wait() [1/8]

void Gecode::wait ( Home home,
FloatVar x,
std::function< void(Space &home)> c )

Execute c when x becomes assigned.

Definition at line 39 of file exec.cpp.

◆ wait() [2/8]

void Gecode::wait ( Home home,
const FloatVarArgs & x,
std::function< void(Space &home)> c )

Execute c when all variables in x become assigned.

Definition at line 45 of file exec.cpp.

◆ FLOAT_VAR_NONE()

FloatVarBranch Gecode::FLOAT_VAR_NONE ( void )
inline

Select first unassigned variable.

Definition at line 97 of file var.hpp.

◆ FLOAT_VAR_RND()

FloatVarBranch Gecode::FLOAT_VAR_RND ( Rnd r)
inline

Select random variable (uniform distribution, for tie breaking)

Definition at line 112 of file var.hpp.

◆ FLOAT_VAR_MERIT_MIN()

FloatVarBranch Gecode::FLOAT_VAR_MERIT_MIN ( FloatBranchMerit bm,
BranchTbl tbl = nullptr )
inline

Select variable with least merit according to branch merit function bm.

Definition at line 102 of file var.hpp.

◆ FLOAT_VAR_MERIT_MAX()

FloatVarBranch Gecode::FLOAT_VAR_MERIT_MAX ( FloatBranchMerit bm,
BranchTbl tbl = nullptr )
inline

Select variable with highest merit according to branch merit function bm.

Definition at line 107 of file var.hpp.

◆ FLOAT_VAR_DEGREE_MIN()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest degree.

Definition at line 117 of file var.hpp.

◆ FLOAT_VAR_DEGREE_MAX()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest degree.

Definition at line 122 of file var.hpp.

◆ FLOAT_VAR_AFC_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with smallest accumulated failure count with decay factor d.

Definition at line 127 of file var.hpp.

◆ FLOAT_VAR_AFC_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_MIN ( FloatAFC a,
BranchTbl tbl = nullptr )
inline

Select variable with smallest accumulated failure count.

Definition at line 132 of file var.hpp.

◆ FLOAT_VAR_AFC_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with largest accumulated failure count with decay factor d.

Definition at line 137 of file var.hpp.

◆ FLOAT_VAR_AFC_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_MAX ( FloatAFC a,
BranchTbl tbl = nullptr )
inline

Select variable with largest accumulated failure count.

Definition at line 142 of file var.hpp.

◆ FLOAT_VAR_ACTION_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with lowest action with decay factor d.

Definition at line 147 of file var.hpp.

◆ FLOAT_VAR_ACTION_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_MIN ( FloatAction a,
BranchTbl tbl = nullptr )
inline

Select variable with lowest action.

Definition at line 152 of file var.hpp.

◆ FLOAT_VAR_ACTION_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with highest action with decay factor d.

Definition at line 157 of file var.hpp.

◆ FLOAT_VAR_ACTION_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_MAX ( FloatAction a,
BranchTbl tbl = nullptr )
inline

Select variable with highest action.

Definition at line 162 of file var.hpp.

◆ FLOAT_VAR_CHB_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with lowest CHB Q-score.

Definition at line 167 of file var.hpp.

◆ FLOAT_VAR_CHB_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MIN ( FloatCHB a,
BranchTbl tbl = nullptr )
inline

Select variable with lowest CHB Q-score.

Definition at line 172 of file var.hpp.

◆ FLOAT_VAR_CHB_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with highest CHB Q-score.

Definition at line 177 of file var.hpp.

◆ FLOAT_VAR_CHB_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MAX ( FloatCHB a,
BranchTbl tbl = nullptr )
inline

Select variable with highest CHB Q-score.

Definition at line 182 of file var.hpp.

◆ FLOAT_VAR_MIN_MIN()

FloatVarBranch Gecode::FLOAT_VAR_MIN_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest min.

Definition at line 187 of file var.hpp.

◆ FLOAT_VAR_MIN_MAX()

FloatVarBranch Gecode::FLOAT_VAR_MIN_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest min.

Definition at line 192 of file var.hpp.

◆ FLOAT_VAR_MAX_MIN()

FloatVarBranch Gecode::FLOAT_VAR_MAX_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest max.

Definition at line 197 of file var.hpp.

◆ FLOAT_VAR_MAX_MAX()

FloatVarBranch Gecode::FLOAT_VAR_MAX_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest max.

Definition at line 202 of file var.hpp.

◆ FLOAT_VAR_SIZE_MIN()

FloatVarBranch Gecode::FLOAT_VAR_SIZE_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest domain size.

Definition at line 207 of file var.hpp.

◆ FLOAT_VAR_SIZE_MAX()

FloatVarBranch Gecode::FLOAT_VAR_SIZE_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest domain size.

Definition at line 212 of file var.hpp.

◆ FLOAT_VAR_DEGREE_SIZE_MIN()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_SIZE_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest degree divided by domain size.

Definition at line 217 of file var.hpp.

◆ FLOAT_VAR_DEGREE_SIZE_MAX()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_SIZE_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest degree divided by domain size.

Definition at line 222 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with smalllest accumulated failure count divided by domain size with decay factor d.

Definition at line 227 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MIN ( FloatAFC a,
BranchTbl tbl = nullptr )
inline

Select variable with smallest accumulated failure count divided by domain size.

Definition at line 232 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with largest accumulated failure count divided by domain size with decay factor d.

Definition at line 237 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MAX ( FloatAFC a,
BranchTbl tbl = nullptr )
inline

Select variable with largest accumulated failure count divided by domain size.

Definition at line 242 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with smallest action divided by domain size with decay factor d.

Definition at line 247 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MIN ( FloatAction a,
BranchTbl tbl = nullptr )
inline

Select variable with smallest action divided by domain size.

Definition at line 252 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with largest action divided by domain size with decay factor d.

Definition at line 257 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MAX ( FloatAction a,
BranchTbl tbl = nullptr )
inline

Select variable with largest action divided by domain size.

Definition at line 262 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest CHB Q-score divided by domain size.

Definition at line 267 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MIN ( FloatCHB c,
BranchTbl tbl = nullptr )
inline

Select variable with smallest CHB Q-score divided by domain size.

Definition at line 272 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest CHB Q-score divided by domain size.

Definition at line 277 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MAX ( FloatCHB a,
BranchTbl tbl = nullptr )
inline

Select variable with largest CHB Q-score divided by domain size.

Definition at line 282 of file var.hpp.

◆ FLOAT_VAL_SPLIT_MIN()

FloatValBranch Gecode::FLOAT_VAL_SPLIT_MIN ( void )
inline

Select values not greater than mean of smallest and largest value.

Definition at line 55 of file val.hpp.

◆ FLOAT_VAL_SPLIT_MAX()

FloatValBranch Gecode::FLOAT_VAL_SPLIT_MAX ( void )
inline

Select values greater than mean of smallest and largest value.

Definition at line 60 of file val.hpp.

◆ FLOAT_VAL_SPLIT_RND()

FloatValBranch Gecode::FLOAT_VAL_SPLIT_RND ( Rnd r)
inline

Select values randomly which are not greater or not smaller than mean of largest and smallest value.

Definition at line 65 of file val.hpp.

◆ FLOAT_VAL()

FloatValBranch Gecode::FLOAT_VAL ( FloatBranchVal v,
FloatBranchCommit c = nullptr )
inline

Select value as defined by the value function v and commit function c The default commit function posts the constraint that the float variable x must be less or equal than the value n for the first alternative and that x must be greater or equal than n otherwise.

Definition at line 70 of file val.hpp.

◆ FLOAT_ASSIGN_MIN()

FloatAssign Gecode::FLOAT_ASSIGN_MIN ( void )
inline

Select median value of the lower part.

Definition at line 55 of file assign.hpp.

◆ FLOAT_ASSIGN_MAX()

FloatAssign Gecode::FLOAT_ASSIGN_MAX ( void )
inline

Select median value of the upper part.

Definition at line 60 of file assign.hpp.

◆ FLOAT_ASSIGN_RND()

FloatAssign Gecode::FLOAT_ASSIGN_RND ( Rnd r)
inline

Select median value of a randomly chosen part.

Definition at line 65 of file assign.hpp.

◆ FLOAT_ASSIGN()

FloatAssign Gecode::FLOAT_ASSIGN ( FloatBranchVal v,
FloatBranchCommit c = nullptr )
inline

Select value as defined by the value function v and commit function c The default commit function posts the constraint that the float variable x must be less or equal than the value n.

Definition at line 70 of file assign.hpp.

◆ relax() [1/4]

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

Definition at line 57 of file relax.cpp.

◆ operator<<() [1/60]

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

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

◆ operator>>() [1/20]

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

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

◆ operator+() [1/61]

FloatVal Gecode::operator+ ( const FloatVal & x)
related

Definition at line 164 of file val.hpp.

◆ operator-() [1/40]

FloatVal Gecode::operator- ( const FloatVal & x)
related

Definition at line 168 of file val.hpp.

◆ operator+() [2/61]

FloatVal Gecode::operator+ ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 174 of file val.hpp.

◆ operator+() [3/61]

FloatVal Gecode::operator+ ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 178 of file val.hpp.

◆ operator+() [4/61]

FloatVal Gecode::operator+ ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 182 of file val.hpp.

◆ operator-() [2/40]

FloatVal Gecode::operator- ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 187 of file val.hpp.

◆ operator-() [3/40]

FloatVal Gecode::operator- ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 191 of file val.hpp.

◆ operator-() [4/40]

FloatVal Gecode::operator- ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 195 of file val.hpp.

◆ operator*() [1/21]

FloatVal Gecode::operator* ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 200 of file val.hpp.

◆ operator*() [2/21]

FloatVal Gecode::operator* ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 204 of file val.hpp.

◆ operator*() [3/21]

FloatVal Gecode::operator* ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 208 of file val.hpp.

◆ operator/() [1/8]

FloatVal Gecode::operator/ ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 213 of file val.hpp.

◆ operator/() [2/8]

FloatVal Gecode::operator/ ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 217 of file val.hpp.

◆ operator/() [3/8]

FloatVal Gecode::operator/ ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 221 of file val.hpp.

◆ operator<() [1/33]

bool Gecode::operator< ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 225 of file val.hpp.

◆ operator<() [2/33]

bool Gecode::operator< ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 233 of file val.hpp.

◆ operator<=() [1/35]

bool Gecode::operator<= ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 242 of file val.hpp.

◆ operator<=() [2/35]

bool Gecode::operator<= ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 250 of file val.hpp.

◆ operator>() [1/33]

bool Gecode::operator> ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 260 of file val.hpp.

◆ operator>() [2/33]

bool Gecode::operator> ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 268 of file val.hpp.

◆ operator>=() [1/35]

bool Gecode::operator>= ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 277 of file val.hpp.

◆ operator>=() [2/35]

bool Gecode::operator>= ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 285 of file val.hpp.

◆ operator==() [1/46]

bool Gecode::operator== ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 294 of file val.hpp.

◆ operator==() [2/46]

bool Gecode::operator== ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 302 of file val.hpp.

◆ operator!=() [1/46]

bool Gecode::operator!= ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 317 of file val.hpp.

◆ operator!=() [2/46]

bool Gecode::operator!= ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 325 of file val.hpp.

◆ operator<() [3/33]

bool Gecode::operator< ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 333 of file val.hpp.

◆ operator<=() [3/35]

bool Gecode::operator<= ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 337 of file val.hpp.

◆ operator>() [3/33]

bool Gecode::operator> ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 342 of file val.hpp.

◆ operator>=() [3/35]

bool Gecode::operator>= ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 346 of file val.hpp.

◆ operator==() [3/46]

bool Gecode::operator== ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 350 of file val.hpp.

◆ operator!=() [3/46]

bool Gecode::operator!= ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 354 of file val.hpp.

◆ operator<<() [2/60]

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

Definition at line 354 of file val.hpp.

◆ abs() [2/6]

FloatVal Gecode::abs ( const FloatVal & x)
related

Definition at line 365 of file val.hpp.

◆ sqrt() [2/6]

FloatVal Gecode::sqrt ( const FloatVal & x)
related

Definition at line 369 of file val.hpp.

◆ sqr() [2/6]

FloatVal Gecode::sqr ( const FloatVal & x)
related

Definition at line 373 of file val.hpp.

◆ pow() [3/7]

FloatVal Gecode::pow ( const FloatVal & x,
int n )
related

Definition at line 377 of file val.hpp.

◆ nroot() [2/6]

FloatVal Gecode::nroot ( const FloatVal & x,
int n )
related

Definition at line 381 of file val.hpp.

◆ max() [3/17]

FloatVal Gecode::max ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 386 of file val.hpp.

◆ max() [4/17]

FloatVal Gecode::max ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 390 of file val.hpp.

◆ max() [5/17]

FloatVal Gecode::max ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 394 of file val.hpp.

◆ min() [3/17]

FloatVal Gecode::min ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 398 of file val.hpp.

◆ min() [4/17]

FloatVal Gecode::min ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 402 of file val.hpp.

◆ min() [5/17]

FloatVal Gecode::min ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 406 of file val.hpp.

◆ exp() [2/4]

FloatVal Gecode::exp ( const FloatVal & x)
related

Definition at line 413 of file val.hpp.

◆ log() [3/5]

FloatVal Gecode::log ( const FloatVal & x)
related

Definition at line 417 of file val.hpp.

◆ fmod() [1/6]

FloatVal Gecode::fmod ( const FloatVal & x,
const FloatVal & y )
related

Definition at line 422 of file val.hpp.

◆ fmod() [2/6]

FloatVal Gecode::fmod ( const FloatVal & x,
const FloatNum & y )
related

Definition at line 426 of file val.hpp.

◆ fmod() [3/6]

FloatVal Gecode::fmod ( const FloatNum & x,
const FloatVal & y )
related

Definition at line 430 of file val.hpp.

◆ sin() [2/4]

FloatVal Gecode::sin ( const FloatVal & x)
related

Definition at line 435 of file val.hpp.

◆ cos() [2/4]

FloatVal Gecode::cos ( const FloatVal & x)
related

Definition at line 439 of file val.hpp.

◆ tan() [2/4]

FloatVal Gecode::tan ( const FloatVal & x)
related

Definition at line 443 of file val.hpp.

◆ asin() [2/4]

FloatVal Gecode::asin ( const FloatVal & x)
related

Definition at line 447 of file val.hpp.

◆ acos() [2/4]

FloatVal Gecode::acos ( const FloatVal & x)
related

Definition at line 451 of file val.hpp.

◆ atan() [2/4]

FloatVal Gecode::atan ( const FloatVal & x)
related

Definition at line 455 of file val.hpp.

◆ sinh() [1/2]

FloatVal Gecode::sinh ( const FloatVal & x)
related

Definition at line 460 of file val.hpp.

◆ cosh() [1/2]

FloatVal Gecode::cosh ( const FloatVal & x)
related

Definition at line 464 of file val.hpp.

◆ tanh() [1/2]

FloatVal Gecode::tanh ( const FloatVal & x)
related

Definition at line 468 of file val.hpp.

◆ asinh() [1/2]

FloatVal Gecode::asinh ( const FloatVal & x)
related

Definition at line 472 of file val.hpp.

◆ acosh() [1/2]

FloatVal Gecode::acosh ( const FloatVal & x)
related

Definition at line 476 of file val.hpp.

◆ atanh() [1/2]

FloatVal Gecode::atanh ( const FloatVal & x)
related

Definition at line 480 of file val.hpp.

◆ operator<<() [3/60]

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 1 of file print.hpp.

◆ swap()

IntRelType Gecode::swap ( IntRelType irt)
inline

Return swapped relation type of irt.

Definition at line 37 of file irt.hpp.

◆ neg()

IntRelType Gecode::neg ( IntRelType irt)
inline

Return negated relation type of irt.

Definition at line 52 of file irt.hpp.

◆ vbd()

IntPropLevel Gecode::vbd ( IntPropLevel ipl)
inline

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

Definition at line 37 of file ipl.hpp.

◆ ba()

IntPropLevel Gecode::ba ( IntPropLevel ipl)
inline

Extract basic or advanced from propagation level.

Definition at line 43 of file ipl.hpp.

◆ dom() [9/40]

void Gecode::dom ( Home home,
IntVar x,
int n,
IntPropLevel ipl = IPL_DEF )

Propagates $x=n$.

Definition at line 41 of file dom.cpp.

◆ dom() [10/40]

void Gecode::dom ( Home home,
const IntVarArgs & x,
int n,
IntPropLevel ipl = IPL_DEF )

Propagates $ x_i=n$ for all $0\leq i<|x|$.

Definition at line 50 of file dom.cpp.

◆ dom() [11/40]

void Gecode::dom ( Home home,
IntVar x,
int l,
int m,
IntPropLevel ipl = IPL_DEF )

Propagates $ l\leq x\leq m$.

Definition at line 61 of file dom.cpp.

◆ dom() [12/40]

void Gecode::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|$.

Definition at line 72 of file dom.cpp.

◆ dom() [13/40]

void Gecode::dom ( Home home,
IntVar x,
const IntSet & s,
IntPropLevel ipl = IPL_DEF )

Propagates $ x\in s $.

Definition at line 85 of file dom.cpp.

◆ dom() [14/40]

void Gecode::dom ( Home home,
const IntVarArgs & x,
const IntSet & s,
IntPropLevel ipl = IPL_DEF )

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

Definition at line 96 of file dom.cpp.

◆ dom() [15/40]

void Gecode::dom ( Home home,
IntVar x,
int n,
Reify r,
IntPropLevel ipl = IPL_DEF )

Post domain consistent propagator for $ (x=n) \equiv r$.

Definition at line 109 of file dom.cpp.

◆ dom() [16/40]

void Gecode::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$.

Definition at line 131 of file dom.cpp.

◆ dom() [17/40]

void Gecode::dom ( Home home,
IntVar x,
const IntSet & s,
Reify r,
IntPropLevel ipl = IPL_DEF )

Post domain consistent propagator for $ (x \in s) \equiv r$.

Definition at line 155 of file dom.cpp.

◆ dom() [18/40]

void Gecode::dom ( Home home,
IntVar x,
IntVar d,
IntPropLevel ipl = IPL_DEF )

Constrain domain of x according to domain of d.

Definition at line 175 of file dom.cpp.

◆ dom() [19/40]

void Gecode::dom ( Home home,
BoolVar x,
BoolVar d,
IntPropLevel ipl = IPL_DEF )

Constrain domain of x according to domain of d.

Definition at line 186 of file dom.cpp.

◆ dom() [20/40]

void Gecode::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|$.

Definition at line 196 of file dom.cpp.

◆ dom() [21/40]

void Gecode::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|$.

Definition at line 211 of file dom.cpp.

◆ member() [1/4]

void Gecode::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}\}$.

Definition at line 39 of file member.cpp.

◆ member() [2/4]

void Gecode::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}\}$.

Definition at line 49 of file member.cpp.

◆ member() [3/4]

void Gecode::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$.

Definition at line 59 of file member.cpp.

◆ member() [4/4]

void Gecode::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$.

Definition at line 84 of file member.cpp.

◆ element() [1/35]

void Gecode::element ( Home home,
IntSharedArray n,
IntVar x0,
IntVar x1,
IntPropLevel ipl = IPL_DEF )

Post domain consistent propagator for $ n_{x_0}=x_1$.

Throws an exception of type Int::OutOfLimits, if the integers in n exceed the limits in Int::Limits.

Definition at line 39 of file element.cpp.

◆ element() [2/35]

void Gecode::element ( Home home,
IntSharedArray n,
IntVar x0,
BoolVar x1,
IntPropLevel ipl = IPL_DEF )

Post domain consistent propagator for $ n_{x_0}=x_1$.

Throws an exception of type Int::OutOfLimits, if the integers in n exceed the limits in Int::Limits.

Definition at line 51 of file element.cpp.

◆ element() [3/35]

void Gecode::element ( Home home,
IntSharedArray n,
IntVar x0,
int x1,
IntPropLevel ipl = IPL_DEF )

Post domain consistent propagator for $ n_{x_0}=x_1$.

Throws an exception of type Int::OutOfLimits, if the integers in n exceed the limits in Int::Limits.

Definition at line 63 of file element.cpp.

◆ element() [4/35]

void Gecode::element ( Home home,
const IntVarArgs & x,
IntVar y0,
IntVar y1,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ x_{y_0}=y_1$.

Supports both bounds (ipl = IPL_BND) and domain consistency (ipl = IPL_DOM, default).

Definition at line 78 of file element.cpp.

◆ element() [5/35]

void Gecode::element ( Home home,
const IntVarArgs & x,
IntVar y0,
int y1,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ x_{y_0}=y_1$.

Supports both bounds (ipl = IPL_BND) and domain consistency (ipl = IPL_DOM, default).

Definition at line 95 of file element.cpp.

◆ element() [6/35]

void Gecode::element ( Home home,
const BoolVarArgs & x,
IntVar y0,
BoolVar y1,
IntPropLevel ipl = IPL_DEF )

Post domain consistent propagator for $ x_{y_0}=y_1$.

Definition at line 114 of file element.cpp.

◆ element() [7/35]

void Gecode::element ( Home home,
const BoolVarArgs & x,
IntVar y0,
int y1,
IntPropLevel ipl = IPL_DEF )

Post domain consistent propagator for $ x_{y_0}=y_1$.

Definition at line 126 of file element.cpp.

◆ element() [8/35]

void Gecode::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$.

If a is regarded as a two-dimensional array in row-major order of width w and height h, then z is constrained to be the element in column x and row y.

Throws an exception of type Int::OutOfLimits, if the integers in n exceed the limits in Int::Limits.

Throws an exception of type Int::ArgumentSizeMismatch, if $ w\cdot h\neq|a|$.

Definition at line 150 of file element.cpp.

◆ element() [9/35]

void Gecode::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$.

If a is regarded as a two-dimensional array in row-major order of width w and height h, then z is constrained to be the element in column x and row y.

Throws an exception of type Int::OutOfLimits, if the integers in n exceed the limits in Int::Limits.

Throws an exception of type Int::ArgumentSizeMismatch, if $ w\cdot h\neq|a|$.

Definition at line 161 of file element.cpp.

◆ element() [10/35]

void Gecode::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$.

If a is regarded as a two-dimensional array in row-major order of width w and height h, then z is constrained to be the element in column x and row y.

Supports both bounds (ipl = IPL_BND) and domain consistency (ipl = IPL_DOM, default).

Throws an exception of type Int::OutOfLimits, if the integers in n exceed the limits in Int::Limits.

Throws an exception of type Int::ArgumentSizeMismatch, if $ w\cdot h\neq|a|$.

Definition at line 172 of file element.cpp.

◆ element() [11/35]

void Gecode::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$.

If a is regarded as a two-dimensional array in row-major order of width w and height h, then z is constrained to be the element in column x and row y.

Throws an exception of type Int::OutOfLimits, if the integers in n exceed the limits in Int::Limits.

Throws an exception of type Int::ArgumentSizeMismatch, if $ w\cdot h\neq|a|$.

Definition at line 183 of file element.cpp.

◆ distinct() [1/4]

void Gecode::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|$.

Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Definition at line 46 of file distinct.cpp.

◆ distinct() [2/4]

void Gecode::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|$.

  • Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).
  • Throws an exception of type Int::OutOfLimits, if the integers in n exceed the limits in Int::Limits or if the sum of n and x exceed the limits.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and n are of different size.
  • Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Definition at line 65 of file distinct.cpp.

◆ distinct() [3/4]

void Gecode::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|$.

  • Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).
  • Throws an exception of type Int::OutOfLimits, if the variable domains in x are too large (it must hold that one of the values $(\max_{i=0,\ldots,|x|-1} \max(x_i))+|x|$ and $(\min_{i=0,\ldots,|x|-1} \min(x_i))-|x|$ does not exceed the limits in Int::Limits.
  • Throws an exception of type Int::ArgumentSizeMismatch, if b and x are of different size.
  • Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Definition at line 97 of file distinct.cpp.

◆ distinct() [4/4]

void Gecode::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|$.

  • Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).
  • Throws an exception of type Int::OutOfLimits, if the variable domains in x are too large (it must hold that one of the values $(\max_{i=0,\ldots,|x|-1} \max(x_i))+|x|$ and $(\min_{i=0,\ldots,|x|-1} \min(x_i))-|x|$ does not exceed the limits in Int::Limits.
  • Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Definition at line 154 of file distinct.cpp.

◆ channel() [5/17]

void Gecode::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|$.

  • Supports domain consistency (ipl = IPL_DOM) and value propagation (all other values for ipl, default).
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.
  • Throws an exception of type Int::ArgumentSame, if x or y contain the same unassigned variable multiply. Note that a variable can occur in both x and y, but not more than once in either x or y.

Definition at line 143 of file channel.cpp.

◆ channel() [6/17]

void Gecode::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|$.

  • Supports domain consistency (ipl = IPL_DOM) and value propagation (all other values for ipl, default).
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.
  • Throws an exception of type Int::ArgumentSame, if x or y contain the same unassigned variable multiply. Note that a variable can occur in both x and y, but not more than once in either x or y.
  • Throws an exception of type Int::OutOfLimits, if xoff or yoff are negative.

Definition at line 41 of file channel.cpp.

◆ channel() [7/17]

void Gecode::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$.

Definition at line 148 of file channel.cpp.

◆ channel() [8/17]

void Gecode::channel ( Home home,
IntVar x0,
BoolVar x1,
IntPropLevel ipl = IPL_DEF )
inline

Post domain consistent propagator for channeling an integer and a Boolean variable $ x_0 = x_1$.

Definition at line 37 of file channel.hpp.

◆ channel() [9/17]

void Gecode::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$.

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Definition at line 155 of file channel.cpp.

◆ sorted() [1/2]

void Gecode::sorted ( Home home,
const IntVarArgs & x,
const IntVarArgs & y,
IntPropLevel ipl = IPL_DEF )

Post propagator that y is x sorted in increasing order.

Might throw the following exceptions:

Definition at line 58 of file sorted.cpp.

◆ sorted() [2/2]

void Gecode::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.

The values in z describe the sorting permutation, that is $\forall i\in\{0,\dots,|x|-1\}: x_i=y_{z_i} $.

Might throw the following exceptions:

Definition at line 39 of file sorted.cpp.

◆ count() [1/13]

void Gecode::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$.

Performs domain propagation but is not domain consistent.

Definition at line 40 of file count.cpp.

◆ count() [2/13]

void Gecode::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$.

Performs domain propagation but is not domain consistent.

Definition at line 134 of file count.cpp.

◆ count() [3/13]

void Gecode::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$.

Performs domain propagation (ipl = IPL_DOM, default) and slightly less domain propagation (all other values for ipl), where y is not pruned. Note that in both cases propagation is not domain consistent.

Definition at line 82 of file count.cpp.

◆ count() [4/13]

void Gecode::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$.

Performs domain propagation but is not domain consistent.

Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.

Definition at line 178 of file count.cpp.

◆ count() [5/13]

void Gecode::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$.

Performs domain propagation but is not domain consistent.

Definition at line 222 of file count.cpp.

◆ count() [6/13]

void Gecode::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$.

Performs domain propagation but is not domain consistent.

Definition at line 316 of file count.cpp.

◆ count() [7/13]

void Gecode::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$.

Performs domain propagation (ipl = IPL_DOM, default) and slightly less domain propagation (all other values for ipl), where y is not pruned. Note that in both cases propagation is not domain consistent.

Definition at line 264 of file count.cpp.

◆ count() [8/13]

void Gecode::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$.

Performs domain propagation but is not domain consistent.

Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.

Definition at line 365 of file count.cpp.

◆ count() [9/13]

void Gecode::count ( Home home,
const IntVarArgs & x,
const IntVarArgs & c,
IntPropLevel ipl = IPL_DEF )

Posts a global count (cardinality) constraint.

Posts the constraint that $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=j\}=c_j$ and $ \bigcup_i \{x_i\} \subseteq \{0,\ldots,|c|-1\}$ (no other value occurs).

Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Definition at line 135 of file gcc.cpp.

◆ count() [10/13]

void Gecode::count ( Home home,
const IntVarArgs & x,
const IntSetArgs & c,
IntPropLevel ipl = IPL_DEF )

Posts a global count (cardinality) constraint.

Posts the constraint that $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=j\}\in c_j$ and $ \bigcup_i \{x_i\} \subseteq \{0,\ldots,|c|-1\}$ (no other value occurs).

Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Definition at line 211 of file gcc.cpp.

◆ count() [11/13]

void Gecode::count ( Home home,
const IntVarArgs & x,
const IntVarArgs & c,
const IntArgs & v,
IntPropLevel ipl = IPL_DEF )

Posts a global count (cardinality) constraint.

Posts the constraint that $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=v_j\}=c_j$ and $ \bigcup_i \{x_i\} \subseteq \bigcup_j \{v_j\}$ (no other value occurs).

Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Throws an exception of type Int::ArgumentSizeMismatch, if c and v are of different size.

Definition at line 99 of file gcc.cpp.

◆ count() [12/13]

void Gecode::count ( Home home,
const IntVarArgs & x,
const IntSetArgs & c,
const IntArgs & v,
IntPropLevel ipl = IPL_DEF )

Posts a global count (cardinality) constraint.

Posts the constraint that $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=v_j\}\in c_j$ and $ \bigcup_i \{x_i\} \subseteq \bigcup_j \{v_j\}$ (no other value occurs).

Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Throws an exception of type Int::ArgumentSizeMismatch, if c and v are of different size.

Definition at line 144 of file gcc.cpp.

◆ count() [13/13]

void Gecode::count ( Home home,
const IntVarArgs & x,
const IntSet & c,
const IntArgs & v,
IntPropLevel ipl = IPL_DEF )

Posts a global count (cardinality) constraint.

Posts the constraint that $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=v_j\}\in c$ and $ \bigcup_i \{x_i\} \subseteq \bigcup_j \{v_j\}$ (no other value occurs).

Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Throws an exception of type Int::ArgumentSizeMismatch, if c and v are of different size.

Definition at line 219 of file gcc.cpp.

◆ nvalues() [1/4]

void Gecode::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$.

Definition at line 40 of file nvalues.cpp.

◆ nvalues() [2/4]

void Gecode::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$.

Definition at line 90 of file nvalues.cpp.

◆ nvalues() [3/4]

void Gecode::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$.

Definition at line 141 of file nvalues.cpp.

◆ nvalues() [4/4]

void Gecode::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$.

Definition at line 189 of file nvalues.cpp.

◆ sequence() [1/4]

void Gecode::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)$.

Posts a domain consistent propagator for the constraint $\bigwedge_{i=0}^{|x|-q}
     \operatorname{among}(\langle x_i,\ldots,x_{i+q-1}\rangle,s,l,u)$ where the among constraint is defined as $l\leq\#\{j\in\{i,\ldots,i+q-1\}\;|\;x_j\in s\} \leq u$.

Throws the following exceptions:

Definition at line 47 of file sequence.cpp.

◆ sequence() [2/4]

void Gecode::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)$.

Posts a domain consistent propagator for the constraint $\bigwedge_{i=0}^{|x|-q}
     \operatorname{among}(\langle x_i,\ldots,x_{i+q-1}\rangle,s,l,u)$ where the among constraint is defined as $l\leq\#\{j\in\{i,\ldots,i+q-1\}\;|\;x_j\in s\} \leq u$.

Throws the following exceptions:

Definition at line 112 of file sequence.cpp.

◆ min() [6/17]

void Gecode::min ( Home home,
IntVar x0,
IntVar x1,
IntVar x2,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ \min\{x_0,x_1\}=x_2$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

Definition at line 78 of file arithmetic.cpp.

◆ min() [7/17]

void Gecode::min ( Home home,
const IntVarArgs & x,
IntVar y,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ \min x=y$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

If x is empty, an exception of type Int::TooFewArguments is thrown.

Definition at line 91 of file arithmetic.cpp.

◆ max() [6/17]

void Gecode::max ( Home home,
IntVar x0,
IntVar x1,
IntVar x2,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ \max\{x_0,x_1\}=x_2$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

Definition at line 51 of file arithmetic.cpp.

◆ max() [7/17]

void Gecode::max ( Home home,
const IntVarArgs & x,
IntVar y,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ \max x=y$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

If x is empty, an exception of type Int::TooFewArguments is thrown.

Definition at line 63 of file arithmetic.cpp.

◆ argmin() [1/4]

void Gecode::argmin ( Home home,
const IntVarArgs & x,
IntVar y,
bool tiebreak = true,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ \operatorname{argmin}(x)=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

Definition at line 163 of file arithmetic.cpp.

◆ argmin() [2/4]

void Gecode::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$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

Definition at line 189 of file arithmetic.cpp.

◆ argmax() [1/4]

void Gecode::argmax ( Home home,
const IntVarArgs & x,
IntVar y,
bool tiebreak = true,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ \operatorname{argmax}(x)=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

Definition at line 110 of file arithmetic.cpp.

◆ argmax() [2/4]

void Gecode::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$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

Definition at line 136 of file arithmetic.cpp.

◆ argmin() [3/4]

void Gecode::argmin ( Home home,
const BoolVarArgs & x,
IntVar y,
bool tiebreak = true,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ \operatorname{argmin}(x)=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

Definition at line 265 of file arithmetic.cpp.

◆ argmin() [4/4]

void Gecode::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$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

Definition at line 289 of file arithmetic.cpp.

◆ argmax() [3/4]

void Gecode::argmax ( Home home,
const BoolVarArgs & x,
IntVar y,
bool tiebreak = true,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ \operatorname{argmax}(x)=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

Definition at line 216 of file arithmetic.cpp.

◆ argmax() [4/4]

void Gecode::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$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

Definition at line 240 of file arithmetic.cpp.

◆ abs() [3/6]

void Gecode::abs ( Home home,
IntVar x0,
IntVar x1,
IntPropLevel ipl = IPL_DEF )

Post propagator for $ |x_0|=x_1$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

Definition at line 39 of file arithmetic.cpp.

◆ mult() [2/2]

void Gecode::mult ( Home home,
IntVar x0,
IntVar x1,
IntVar x2,
IntPropLevel ipl = IPL_DEF )

Post propagator for $x_0\cdot x_1=x_2$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

Definition at line 314 of file arithmetic.cpp.

◆ divmod()

void Gecode::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$.

Supports bounds consistency (ipl = IPL_BND, default).

Definition at line 327 of file arithmetic.cpp.

◆ div() [2/2]

void Gecode::div ( Home home,
IntVar x0,
IntVar x1,
IntVar x2,
IntPropLevel ipl = IPL_DEF )

Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$.

Supports bounds consistency (ipl = IPL_BND, default).

Definition at line 351 of file arithmetic.cpp.

◆ mod()

void Gecode::mod ( Home home,
IntVar x0,
IntVar x1,
IntVar x2,
IntPropLevel ipl = IPL_DEF )

Post propagator for $x_0\ \mathrm{mod}\ x_1=x_2$.

Supports bounds consistency (ipl = IPL_BND, default).

Definition at line 360 of file arithmetic.cpp.

◆ sqr() [3/6]

void Gecode::sqr ( Home home,
IntVar x0,
IntVar x1,
IntPropLevel ipl = IPL_DEF )

Post propagator for $x_0^2=x_1$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

Definition at line 369 of file arithmetic.cpp.

◆ sqrt() [3/6]

void Gecode::sqrt ( Home home,
IntVar x0,
IntVar x1,
IntPropLevel ipl = IPL_DEF )

Post propagator for $\lfloor\sqrt{x_0}\rfloor=x_1$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

Definition at line 383 of file arithmetic.cpp.

◆ pow() [4/7]

void Gecode::pow ( Home home,
IntVar x0,
int n,
IntVar x1,
IntPropLevel ipl = IPL_DEF )

Post propagator for $x_0^n=x_1$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

Throws an exception of type Int::OutOfLimits, if n is negative.

Definition at line 397 of file arithmetic.cpp.

◆ nroot() [3/6]

void Gecode::nroot ( Home home,
IntVar x0,
int n,
IntVar x1,
IntPropLevel ipl = IPL_DEF )

Post propagator for $\lfloor\sqrt[n]{x_0}\rfloor=x_1$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

Throws an exception of type Int::OutOfLimits, if n is not strictly positive.

Definition at line 416 of file arithmetic.cpp.

◆ binpacking()

IntSet Gecode::binpacking ( Home home,
int d,
const IntVarArgs & l,
const IntVarArgs & b,
const IntArgs & s,
const IntArgs & c,
IntPropLevel ipl = IPL_DEF )

Definition at line 66 of file bin-packing.cpp.

◆ order()

void Gecode::order ( Home home,
IntVar s0,
int p0,
IntVar s1,
int p1,
BoolVar b,
IntPropLevel ipl = IPL_DEF )

Post propagators for ordering two tasks.

Order two tasks with start times $s_0$ and $s_1$ with processing times $p_0$ and $p_1$ according to Boolean variable b (if b is zero $s_0$ starts before $s_1$).

Throws an exception of Int::OutOfLimits, if the durations or the sum of durations and start times are too large.

Definition at line 41 of file order.cpp.

◆ cumulatives() [1/8]

void Gecode::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.

This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.

The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).

Parameters
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false)
iplSupports value-consistency only (ipl = IPL_VAL, default).
Exceptions
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 110 of file cumulatives.cpp.

◆ cumulatives() [2/8]

void Gecode::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.

Post propagators for the cumulatives constraint.

This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.

The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).

Parameters
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false)
iplSupports value-consistency only (ipl = IPL_VAL, default).
Exceptions
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 119 of file cumulatives.cpp.

◆ cumulatives() [3/8]

void Gecode::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.

Post propagators for the cumulatives constraint.

This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.

The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).

Parameters
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false)
iplSupports value-consistency only (ipl = IPL_VAL, default).
Exceptions
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 128 of file cumulatives.cpp.

◆ cumulatives() [4/8]

void Gecode::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.

Post propagators for the cumulatives constraint.

This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.

The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).

Parameters
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false)
iplSupports value-consistency only (ipl = IPL_VAL, default).
Exceptions
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 137 of file cumulatives.cpp.

◆ cumulatives() [5/8]

void Gecode::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.

Post propagators for the cumulatives constraint.

This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.

The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).

Parameters
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false)
iplSupports value-consistency only (ipl = IPL_VAL, default).
Exceptions
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 146 of file cumulatives.cpp.

◆ cumulatives() [6/8]

void Gecode::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.

Post propagators for the cumulatives constraint.

This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.

The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).

Parameters
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false)
iplSupports value-consistency only (ipl = IPL_VAL, default).
Exceptions
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 155 of file cumulatives.cpp.

◆ cumulatives() [7/8]

void Gecode::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.

Post propagators for the cumulatives constraint.

This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.

The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).

Parameters
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false)
iplSupports value-consistency only (ipl = IPL_VAL, default).
Exceptions
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 164 of file cumulatives.cpp.

◆ cumulatives() [8/8]

void Gecode::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.

Post propagators for the cumulatives constraint.

This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.

The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).

Parameters
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false)
iplSupports value-consistency only (ipl = IPL_VAL, default).
Exceptions
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 173 of file cumulatives.cpp.

◆ unary() [1/6]

void Gecode::unary ( Home home,
const IntVarArgs & s,
const IntArgs & p,
IntPropLevel ipl = IPL_DEF )

Post propagators for scheduling tasks on unary resources.

Schedule tasks with start times s and processing times p on a unary resource. The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
  • If both flags are combined (default), all the above listed propagation is performed.

Posting the constraint might throw the following exceptions:

  • Throws an exception of type Int::ArgumentSizeMismatch, if s and p are of different size.
  • Throws an exception of type Int::ArgumentSame, if s contains the same unassigned variable multiply.
  • Throws an exception of type Int::OutOfLimits, if p contains an integer that is negative or that could generate an overflow.

Definition at line 44 of file unary.cpp.

◆ unary() [2/6]

void Gecode::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.

Schedule optional tasks with start times s, processing times p, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a unary resource. The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
  • If both flags are combined (default), all the above listed propagation is performed.

Posting the constraint might throw the following exceptions:

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, or m are of different size.
  • Throws an exception of type Int::ArgumentSame, if s contains the same unassigned variable multiply.
  • Throws an exception of type Int::OutOfLimits, if p contains an integer that is negative or that could generate an overflow.

Definition at line 116 of file unary.cpp.

◆ unary() [3/6]

void Gecode::unary ( Home home,
const TaskTypeArgs & t,
const IntVarArgs & flex,
const IntArgs & fix,
IntPropLevel ipl = IPL_DEF )

Post propagators for scheduling tasks on unary resources.

Schedule tasks with flexible times flex and fixed times fix on a unary resource. For each task, it depends on t how the flexible and fix times are interpreted:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If t[i] is TT_FIXE, then flex[i] is the start time and fix[i] is the end time.

The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
  • If both flags are combined (default), all the above listed propagation is performed.

Posting the constraint might throw the following exceptions:

  • Throws an exception of type Int::ArgumentSizeMismatch, if s and p are of different size.
  • Throws an exception of type Int::OutOfLimits, if p contains an integer that is negative for a task with type TT_FIXP or that could generate an overflow.

Definition at line 85 of file unary.cpp.

◆ unary() [4/6]

void Gecode::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.

Schedule optional tasks with flexible times flex, fixed times fix, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a unary resource. For each task, it depends on t how the flexible and fix times are interpreted:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If t[i] is TT_FIXE, then flex[i] is the start time and fix[i] is the end time.

The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
  • If both flags are combined (default), all the above listed propagation is performed.

Posting the constraint might throw the following exceptions:

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, or m are of different size.
  • Throws an exception of type Int::OutOfLimits, if p contains an integer that is negative for a task with type TT_FIXP or that could generate an overflow.

Definition at line 148 of file unary.cpp.

◆ unary() [5/6]

void Gecode::unary ( Home home,
const IntVarArgs & s,
const IntVarArgs & p,
const IntVarArgs & e,
IntPropLevel ipl = IPL_DEF )

Post propagators for scheduling tasks on unary resources.

Schedule tasks with start times s, processing times p, and end times e on a unary resource. The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
  • If both flags are combined (default), all the above listed propagation is performed.

The processing times are constrained to be non-negative.

Throws an exception of type Int::ArgumentSizeMismatch, if s and p are of different size.

Definition at line 193 of file unary.cpp.

◆ unary() [6/6]

void Gecode::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.

Schedule optional tasks with start times s, processing times p, end times e, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a unary resource. The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
  • If both flags are combined, all the above listed propagation is performed (default).

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The processing times are constrained to be non-negative.

Throws an exception of type Int::ArgumentSizeMismatch, if s, p, or m are of different size.

Definition at line 225 of file unary.cpp.

◆ cumulative() [1/12]

void Gecode::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.

Schedule tasks with flexible times flex, fixed times fix, and use capacity u on a cumulative resource with capacity c. For each task, it depends on t how the flexible and fix times are interpreted:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If t[i] is TT_FIXE, then flex[i] is the start time and fix[i] is the end time.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if t, s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 354 of file cumulative.cpp.

◆ cumulative() [2/12]

void Gecode::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.

Post propagators for scheduling tasks on cumulative resources.

Schedule tasks with flexible times flex, fixed times fix, and use capacity u on a cumulative resource with capacity c. For each task, it depends on t how the flexible and fix times are interpreted:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If t[i] is TT_FIXE, then flex[i] is the start time and fix[i] is the end time.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if t, s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 362 of file cumulative.cpp.

◆ cumulative() [3/12]

void Gecode::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.

Schedule tasks with flexible times flex, fixed times fix, use capacity u, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a cumulative resource with capacity c. For each task, it depends on t how the flexible and fix times are interpreted:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If t[i] is TT_FIXE, then flex[i] is the start time and fix[i] is the end time.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if t, s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 373 of file cumulative.cpp.

◆ cumulative() [4/12]

void Gecode::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.

Post propagators for scheduling optional tasks on cumulative resources.

Schedule tasks with flexible times flex, fixed times fix, use capacity u, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a cumulative resource with capacity c. For each task, it depends on t how the flexible and fix times are interpreted:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If t[i] is TT_FIXE, then flex[i] is the start time and fix[i] is the end time.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if t, s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 381 of file cumulative.cpp.

◆ cumulative() [5/12]

void Gecode::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.

Schedule tasks with start times s, processing times p, and use capacity u on a cumulative resource with capacity c.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 392 of file cumulative.cpp.

◆ cumulative() [6/12]

void Gecode::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.

Post propagators for scheduling tasks on cumulative resources.

Schedule tasks with start times s, processing times p, and use capacity u on a cumulative resource with capacity c.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 399 of file cumulative.cpp.

◆ cumulative() [7/12]

void Gecode::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.

Schedule optional tasks with start times s, processing times p, used capacity u, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a cumulative resource with capacity c.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, u, or m are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 409 of file cumulative.cpp.

◆ cumulative() [8/12]

void Gecode::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.

Post propagators for scheduling optional tasks on cumulative resources.

Schedule optional tasks with start times s, processing times p, used capacity u, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a cumulative resource with capacity c.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, u, or m are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 416 of file cumulative.cpp.

◆ cumulative() [9/12]

void Gecode::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.

Schedule tasks with start times s, processing times p, end times e, and use capacity u on a cumulative resource with capacity c.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if u or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 426 of file cumulative.cpp.

◆ cumulative() [10/12]

void Gecode::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.

Post propagators for scheduling tasks on cumulative resources.

Schedule tasks with start times s, processing times p, end times e, and use capacity u on a cumulative resource with capacity c.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if u or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 434 of file cumulative.cpp.

◆ cumulative() [11/12]

void Gecode::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.

Schedule optional tasks with start times s, processing times p, end times e, used capacity u, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a cumulative resource with capacity c.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, u, or m are of different size.
  • Throws an exception of type Int::OutOfLimits, if u or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 445 of file cumulative.cpp.

◆ cumulative() [12/12]

void Gecode::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.

Post propagators for scheduling optional tasks on cumulative resources.

Schedule optional tasks with start times s, processing times p, end times e, used capacity u, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a cumulative resource with capacity c.

The propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

The propagator performs propagation that depends on the integer propagation level ipl as follows:

  • If IPL_BASIC is set, the propagator performs overload checking and time-tabling propagation.
  • If IPL_ADVANCED is set, the propagator performs overload checking and edge finding.
  • If both flags are combined, all the above listed propagation is performed.

The propagator uses algorithms taken from:

Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.

and

Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, u, or m are of different size.
  • Throws an exception of type Int::OutOfLimits, if u or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 453 of file cumulative.cpp.

◆ circuit() [1/6]

void Gecode::circuit ( Home home,
const IntVarArgs & x,
IntPropLevel ipl = IPL_DEF )

Post propagator such that x forms a circuit.

x forms a circuit if the graph with edges $i\to j$ where $x_i=j$ has a single cycle covering all nodes.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x.

Throws the following exceptions:

Definition at line 73 of file circuit.cpp.

◆ circuit() [2/6]

void Gecode::circuit ( Home home,
int offset,
const IntVarArgs & x,
IntPropLevel ipl = IPL_DEF )

Post propagator such that x forms a circuit.

x forms a circuit if the graph with edges $i\to j$ where $x_{i-\text{offset}}=j$ has a single cycle covering all nodes.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x.

Throws the following exceptions:

Definition at line 41 of file circuit.cpp.

◆ circuit() [3/6]

void Gecode::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.

x forms a circuit if the graph with edges $i\to j$ where $x_i=j$ has a single cycle covering all nodes. The integer array c gives the costs of all possible edges where $c_{i*|x|+j}$ is the cost of the edge $i\to j$. The variable z is the cost of the entire circuit. The variables y define the cost of the edge in x: that is, if $x_i=j$ then $y_i=c_{i*n+j}$.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x for circuit.

Throws the following exceptions:

Definition at line 102 of file circuit.cpp.

◆ circuit() [4/6]

void Gecode::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.

x forms a circuit if the graph with edges $i\to j$ where $x_{i-\text{offset}}=j$ has a single cycle covering all nodes. The integer array c gives the costs of all possible edges where $c_{i*|x|+j}$ is the cost of the edge $i\to j$. The variable z is the cost of the entire circuit. The variables y define the cost of the edge in x: that is, if $x_i=j$ then $y_i=c_{i*n+j}$.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x for circuit.

Throws the following exceptions:

Definition at line 78 of file circuit.cpp.

◆ circuit() [5/6]

void Gecode::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.

x forms a circuit if the graph with edges $i\to j$ where $x_i=j$ has a single cycle covering all nodes. The integer array c gives the costs of all possible edges where $c_{i*|x|+j}$ is the cost of the edge $i\to j$. The variable z is the cost of the entire circuit.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x for circuit.

Throws the following exceptions:

Definition at line 117 of file circuit.cpp.

◆ circuit() [6/6]

void Gecode::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.

x forms a circuit if the graph with edges $i\to j$ where $x_{i-\text{offset}}=j$ has a single cycle covering all nodes. The integer array c gives the costs of all possible edges where $c_{i*|x|+j}$ is the cost of the edge $i\to j$. The variable z is the cost of the entire circuit.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x for circuit.

Throws the following exceptions:

Definition at line 108 of file circuit.cpp.

◆ path() [1/6]

void Gecode::path ( Home home,
const IntVarArgs & x,
IntVar s,
IntVar e,
IntPropLevel ipl = IPL_DEF )

Post propagator such that x forms a Hamiltonian path.

x forms a Hamiltonian path if the graph with edges $i\to j$ where $x_i=j$ visits all nodes exactly once. The path starts at node s and the successor of the last node e is equal to $|x|$.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x.

Throws the following exceptions:

Definition at line 169 of file circuit.cpp.

◆ path() [2/6]

void Gecode::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.

x forms a Hamiltonian path if the graph with edges $i\to j$ where $x_{i-\text{offset}}=j$ visits all nodes exactly once. The path starts at node s and the successor of the last node e is equal to $|x|+\text{offset}$.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x.

Throws the following exceptions:

Definition at line 124 of file circuit.cpp.

◆ path() [3/6]

void Gecode::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.

x forms a Hamiltonian path if the graph with edges $i\to j$ where $x_i=j$ visits all nodes exactly once. The path starts at node s and the successor of the last node e is equal to $|x|$. The integer array c gives the costs of all possible edges where $c_{i*|x|+j}$ is the cost of the edge $i\to j$. The variable z is the cost of the entire path. The variables y define the cost of the edge in x: that is, if $x_i=j$ then $y_i=c_{i*n+j}$.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x for circuit.

Throws the following exceptions:

  • Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Int::TooFewArguments, if x has no elements.
  • Int::ArgumentSizeMismacth, if x and y do not have the same size or if $|x|\times|x|\neq|c|$.

Definition at line 201 of file circuit.cpp.

◆ path() [4/6]

void Gecode::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.

x forms a Hamiltonian path if the graph with edges $i\to j$ where $x_{i-\text{offset}}=j$ visits all nodes exactly once. The path starts at node s and the successor of the last node e is equal to $|x|+\text{offset}$. The integer array c gives the costs of all possible edges where $c_{i*|x|+j}$ is the cost of the edge $i\to j$. The variable z is the cost of the entire path. The variables y define the cost of the edge in x: that is, if $x_i=j$ then $y_i=c_{i*n+j}$.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x for circuit.

Throws the following exceptions:

Definition at line 175 of file circuit.cpp.

◆ path() [5/6]

void Gecode::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.

x forms a Hamiltonian path if the graph with edges $i\to j$ where $x_i=j$ visits all nodes exactly once. The path starts at node s and the successor of the last node e is equal to $|x|$. The integer array c gives the costs of all possible edges where $c_{i*|x|+j}$ is the cost of the edge $i\to j$. The variable z is the cost of the entire path.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x for circuit.

Throws the following exceptions:

Definition at line 217 of file circuit.cpp.

◆ path() [6/6]

void Gecode::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.

x forms a Hamiltonian path if the graph with edges $i\to j$ where $x_{i-\text{offset}}=j$ visits all nodes exactly once. The path starts at node s and the successor of the last node e is equal to $|x|+\text{offset}$. The integer array c gives the costs of all possible edges where $c_{i*|x|+j}$ is the cost of the edge $i\to j$. The variable z is the cost of the entire circuit.

Supports domain (ipl = IPL_DOM) and value propagation (all other values for ipl), where this refers to whether value or domain consistent distinct in enforced on x for circuit.

Throws the following exceptions:

Definition at line 208 of file circuit.cpp.

◆ wait() [3/8]

void Gecode::wait ( Home home,
IntVar x,
std::function< void(Space &home)> c,
IntPropLevel ipl = IPL_DEF )

Execute c when x becomes assigned.

Definition at line 39 of file exec.cpp.

◆ wait() [4/8]

void Gecode::wait ( Home home,
BoolVar x,
std::function< void(Space &home)> c,
IntPropLevel ipl = IPL_DEF )

Execute c when x becomes assigned.

Definition at line 46 of file exec.cpp.

◆ wait() [5/8]

void Gecode::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.

Definition at line 53 of file exec.cpp.

◆ wait() [6/8]

void Gecode::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.

Definition at line 61 of file exec.cpp.

◆ when() [1/2]

void Gecode::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.

Definition at line 70 of file exec.cpp.

◆ when() [2/2]

void Gecode::when ( Home home,
BoolVar x,
std::function< void(Space &home)> t,
IntPropLevel ipl = IPL_DEF )

Execute t (then) when x is assigned one.

Definition at line 79 of file exec.cpp.

◆ unshare() [1/2]

void Gecode::unshare ( Home home,
IntVarArgs & x,
IntPropLevel ipl = IPL_DEF )

Replace multiple variable occurences in x by fresh variables.

Supports domain consistency (ipl = IPL_DOM, default) and bounds consistency (ipl = IPL_BND).

Definition at line 136 of file unshare.cpp.

◆ unshare() [2/2]

void Gecode::unshare ( Home home,
BoolVarArgs & x,
IntPropLevel ipl = IPL_DEF )

Replace multiple variable occurences in x by fresh variables.

Definition at line 141 of file unshare.cpp.

◆ INT_VAR_NONE()

IntVarBranch Gecode::INT_VAR_NONE ( void )
inline

Select first unassigned variable.

Definition at line 96 of file var.hpp.

◆ INT_VAR_RND()

IntVarBranch Gecode::INT_VAR_RND ( Rnd r)
inline

Select random variable (uniform distribution, for tie breaking)

Definition at line 101 of file var.hpp.

◆ INT_VAR_MERIT_MIN()

IntVarBranch Gecode::INT_VAR_MERIT_MIN ( IntBranchMerit bm,
BranchTbl tbl = nullptr )
inline

Select variable with least merit according to branch merit function bm.

Definition at line 106 of file var.hpp.

◆ INT_VAR_MERIT_MAX()

IntVarBranch Gecode::INT_VAR_MERIT_MAX ( IntBranchMerit bm,
BranchTbl tbl = nullptr )
inline

Select variable with highest merit according to branch merit function bm.

Definition at line 111 of file var.hpp.

◆ INT_VAR_DEGREE_MIN()

IntVarBranch Gecode::INT_VAR_DEGREE_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest degree.

Definition at line 116 of file var.hpp.

◆ INT_VAR_DEGREE_MAX()

IntVarBranch Gecode::INT_VAR_DEGREE_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest degree.

Definition at line 121 of file var.hpp.

◆ INT_VAR_AFC_MIN() [1/2]

IntVarBranch Gecode::INT_VAR_AFC_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with smallest accumulated failure count with decay factor d.

Definition at line 126 of file var.hpp.

◆ INT_VAR_AFC_MIN() [2/2]

IntVarBranch Gecode::INT_VAR_AFC_MIN ( IntAFC a,
BranchTbl tbl = nullptr )
inline

Select variable with smallest accumulated failure count.

Definition at line 131 of file var.hpp.

◆ INT_VAR_AFC_MAX() [1/2]

IntVarBranch Gecode::INT_VAR_AFC_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with largest accumulated failure count with decay factor d.

Definition at line 136 of file var.hpp.

◆ INT_VAR_AFC_MAX() [2/2]

IntVarBranch Gecode::INT_VAR_AFC_MAX ( IntAFC a,
BranchTbl tbl = nullptr )
inline

Select variable with largest accumulated failure count.

Definition at line 141 of file var.hpp.

◆ INT_VAR_ACTION_MIN() [1/2]

IntVarBranch Gecode::INT_VAR_ACTION_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with lowest action with decay factor d.

Definition at line 146 of file var.hpp.

◆ INT_VAR_ACTION_MIN() [2/2]

IntVarBranch Gecode::INT_VAR_ACTION_MIN ( IntAction a,
BranchTbl tbl = nullptr )
inline

Select variable with lowest action.

Definition at line 151 of file var.hpp.

◆ INT_VAR_ACTION_MAX() [1/2]

IntVarBranch Gecode::INT_VAR_ACTION_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with highest action with decay factor d.

Definition at line 156 of file var.hpp.

◆ INT_VAR_ACTION_MAX() [2/2]

IntVarBranch Gecode::INT_VAR_ACTION_MAX ( IntAction a,
BranchTbl tbl = nullptr )
inline

Select variable with highest action.

Definition at line 161 of file var.hpp.

◆ INT_VAR_CHB_MIN() [1/2]

IntVarBranch Gecode::INT_VAR_CHB_MIN ( IntCHB c,
BranchTbl tbl = nullptr )
inline

Select variable with lowest CHB Q-score.

Definition at line 166 of file var.hpp.

◆ INT_VAR_CHB_MIN() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with lowest CHB Q-score.

Definition at line 171 of file var.hpp.

◆ INT_VAR_CHB_MAX() [1/2]

IntVarBranch Gecode::INT_VAR_CHB_MAX ( IntCHB c,
BranchTbl tbl = nullptr )
inline

Select variable with largest CHB Q-score.

Definition at line 176 of file var.hpp.

◆ INT_VAR_CHB_MAX() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest CHB Q-score.

Definition at line 181 of file var.hpp.

◆ INT_VAR_MIN_MIN()

IntVarBranch Gecode::INT_VAR_MIN_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest min.

Definition at line 186 of file var.hpp.

◆ INT_VAR_MIN_MAX()

IntVarBranch Gecode::INT_VAR_MIN_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest min.

Definition at line 191 of file var.hpp.

◆ INT_VAR_MAX_MIN()

IntVarBranch Gecode::INT_VAR_MAX_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest max.

Definition at line 196 of file var.hpp.

◆ INT_VAR_MAX_MAX()

IntVarBranch Gecode::INT_VAR_MAX_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest max.

Definition at line 201 of file var.hpp.

◆ INT_VAR_SIZE_MIN()

IntVarBranch Gecode::INT_VAR_SIZE_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest domain size.

Definition at line 206 of file var.hpp.

◆ INT_VAR_SIZE_MAX()

IntVarBranch Gecode::INT_VAR_SIZE_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest domain size.

Definition at line 211 of file var.hpp.

◆ INT_VAR_DEGREE_SIZE_MIN()

IntVarBranch Gecode::INT_VAR_DEGREE_SIZE_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest degree divided by domain size.

Definition at line 216 of file var.hpp.

◆ INT_VAR_DEGREE_SIZE_MAX()

IntVarBranch Gecode::INT_VAR_DEGREE_SIZE_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest degree divided by domain size.

Definition at line 221 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MIN() [1/2]

IntVarBranch Gecode::INT_VAR_AFC_SIZE_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with smallest accumulated failure count divided by domain size with decay factor d.

Definition at line 226 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MIN() [2/2]

IntVarBranch Gecode::INT_VAR_AFC_SIZE_MIN ( IntAFC a,
BranchTbl tbl = nullptr )
inline

Select variable with smallest accumulated failure count divided by domain size.

Definition at line 231 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MAX() [1/2]

IntVarBranch Gecode::INT_VAR_AFC_SIZE_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with largest accumulated failure count divided by domain size with decay factor d.

Definition at line 236 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MAX() [2/2]

IntVarBranch Gecode::INT_VAR_AFC_SIZE_MAX ( IntAFC a,
BranchTbl tbl = nullptr )
inline

Select variable with largest accumulated failure count divided by domain size.

Definition at line 241 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MIN() [1/2]

IntVarBranch Gecode::INT_VAR_ACTION_SIZE_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with smallest action divided by domain size with decay factor d.

Definition at line 246 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MIN() [2/2]

IntVarBranch Gecode::INT_VAR_ACTION_SIZE_MIN ( IntAction a,
BranchTbl tbl = nullptr )
inline

Select variable with smallest action divided by domain size.

Definition at line 251 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MAX() [1/2]

IntVarBranch Gecode::INT_VAR_ACTION_SIZE_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with largest action divided by domain size with decay factor d.

Definition at line 256 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MAX() [2/2]

IntVarBranch Gecode::INT_VAR_ACTION_SIZE_MAX ( IntAction a,
BranchTbl tbl = nullptr )
inline

Select variable with largest action divided by domain size.

Definition at line 261 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MIN() [1/2]

IntVarBranch Gecode::INT_VAR_CHB_SIZE_MIN ( IntCHB c,
BranchTbl tbl = nullptr )
inline

Select variable with smallest CHB Q-score divided by domain size.

Definition at line 266 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MIN() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_SIZE_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest CHB Q-score divided by domain size.

Definition at line 271 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MAX() [1/2]

IntVarBranch Gecode::INT_VAR_CHB_SIZE_MAX ( IntCHB c,
BranchTbl tbl = nullptr )
inline

Select variable with largest CHB Q-score divided by domain size.

Definition at line 276 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MAX() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_SIZE_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest CHB Q-score divided by domain size.

Definition at line 281 of file var.hpp.

◆ INT_VAR_REGRET_MIN_MIN()

IntVarBranch Gecode::INT_VAR_REGRET_MIN_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest min-regret.

The min-regret of a variable is the difference between the smallest and second-smallest value still in the domain.

Definition at line 286 of file var.hpp.

◆ INT_VAR_REGRET_MIN_MAX()

IntVarBranch Gecode::INT_VAR_REGRET_MIN_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest min-regret.

The min-regret of a variable is the difference between the smallest and second-smallest value still in the domain.

Definition at line 291 of file var.hpp.

◆ INT_VAR_REGRET_MAX_MIN()

IntVarBranch Gecode::INT_VAR_REGRET_MAX_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest max-regret.

The max-regret of a variable is the difference between the largest and second-largest value still in the domain.

Definition at line 296 of file var.hpp.

◆ INT_VAR_REGRET_MAX_MAX()

IntVarBranch Gecode::INT_VAR_REGRET_MAX_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest max-regret.

The max-regret of a variable is the difference between the largest and second-largest value still in the domain.

Definition at line 301 of file var.hpp.

◆ BOOL_VAR_NONE()

BoolVarBranch Gecode::BOOL_VAR_NONE ( void )
inline

Select first unassigned variable.

Definition at line 364 of file var.hpp.

◆ BOOL_VAR_RND()

BoolVarBranch Gecode::BOOL_VAR_RND ( Rnd r)
inline

Select random variable (uniform distribution, for tie breaking)

Definition at line 369 of file var.hpp.

◆ BOOL_VAR_MERIT_MIN()

BoolVarBranch Gecode::BOOL_VAR_MERIT_MIN ( BoolBranchMerit bm,
BranchTbl tbl = nullptr )
inline

Select variable with least merit according to branch merit function bm.

Definition at line 374 of file var.hpp.

◆ BOOL_VAR_MERIT_MAX()

BoolVarBranch Gecode::BOOL_VAR_MERIT_MAX ( BoolBranchMerit bm,
BranchTbl tbl = nullptr )
inline

Select variable with highest merit according to branch merit function bm.

Definition at line 379 of file var.hpp.

◆ BOOL_VAR_DEGREE_MIN()

BoolVarBranch Gecode::BOOL_VAR_DEGREE_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with smallest degree.

Definition at line 384 of file var.hpp.

◆ BOOL_VAR_DEGREE_MAX()

BoolVarBranch Gecode::BOOL_VAR_DEGREE_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest degree.

Definition at line 389 of file var.hpp.

◆ BOOL_VAR_AFC_MIN() [1/2]

BoolVarBranch Gecode::BOOL_VAR_AFC_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with smallest accumulated failure count with decay factor d.

Definition at line 394 of file var.hpp.

◆ BOOL_VAR_AFC_MIN() [2/2]

BoolVarBranch Gecode::BOOL_VAR_AFC_MIN ( BoolAFC a,
BranchTbl tbl = nullptr )
inline

Select variable with smallest accumulated failure count.

Definition at line 399 of file var.hpp.

◆ BOOL_VAR_AFC_MAX() [1/2]

BoolVarBranch Gecode::BOOL_VAR_AFC_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with largest accumulated failure count with decay factor d.

Definition at line 404 of file var.hpp.

◆ BOOL_VAR_AFC_MAX() [2/2]

BoolVarBranch Gecode::BOOL_VAR_AFC_MAX ( BoolAFC a,
BranchTbl tbl = nullptr )
inline

Select variable with largest accumulated failure count.

Definition at line 409 of file var.hpp.

◆ BOOL_VAR_ACTION_MIN() [1/2]

BoolVarBranch Gecode::BOOL_VAR_ACTION_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with lowest action with decay factor d.

Definition at line 414 of file var.hpp.

◆ BOOL_VAR_ACTION_MIN() [2/2]

BoolVarBranch Gecode::BOOL_VAR_ACTION_MIN ( BoolAction a,
BranchTbl tbl = nullptr )
inline

Select variable with lowest action.

Definition at line 419 of file var.hpp.

◆ BOOL_VAR_ACTION_MAX() [1/2]

BoolVarBranch Gecode::BOOL_VAR_ACTION_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Select variable with highest action with decay factor d.

Definition at line 424 of file var.hpp.

◆ BOOL_VAR_ACTION_MAX() [2/2]

BoolVarBranch Gecode::BOOL_VAR_ACTION_MAX ( BoolAction a,
BranchTbl tbl = nullptr )
inline

Select variable with highest action.

Definition at line 429 of file var.hpp.

◆ BOOL_VAR_CHB_MIN() [1/2]

BoolVarBranch Gecode::BOOL_VAR_CHB_MIN ( BoolCHB c,
BranchTbl tbl = nullptr )
inline

Select variable with lowest CHB Q-score.

Definition at line 434 of file var.hpp.

◆ BOOL_VAR_CHB_MIN() [2/2]

BoolVarBranch Gecode::BOOL_VAR_CHB_MIN ( BranchTbl tbl = nullptr)
inline

Select variable with lowest CHB Q-score.

Definition at line 439 of file var.hpp.

◆ BOOL_VAR_CHB_MAX() [1/2]

BoolVarBranch Gecode::BOOL_VAR_CHB_MAX ( BoolCHB c,
BranchTbl tbl = nullptr )
inline

Select variable with largest CHB Q-score.

Definition at line 444 of file var.hpp.

◆ BOOL_VAR_CHB_MAX() [2/2]

BoolVarBranch Gecode::BOOL_VAR_CHB_MAX ( BranchTbl tbl = nullptr)
inline

Select variable with largest CHB Q-score.

Definition at line 449 of file var.hpp.

◆ INT_VAL_MIN()

IntValBranch Gecode::INT_VAL_MIN ( void )
inline

Select smallest value.

Definition at line 55 of file val.hpp.

◆ INT_VAL_MED()

IntValBranch Gecode::INT_VAL_MED ( void )
inline

Select greatest value not greater than the median.

Definition at line 60 of file val.hpp.

◆ INT_VAL_MAX()

IntValBranch Gecode::INT_VAL_MAX ( void )
inline

Select largest value.

Definition at line 65 of file val.hpp.

◆ INT_VAL_RND()

IntValBranch Gecode::INT_VAL_RND ( Rnd r)
inline

Select random value.

Definition at line 70 of file val.hpp.

◆ INT_VAL_SPLIT_MIN()

IntValBranch Gecode::INT_VAL_SPLIT_MIN ( void )
inline

Select values not greater than mean of smallest and largest value.

Definition at line 75 of file val.hpp.

◆ INT_VAL_SPLIT_MAX()

IntValBranch Gecode::INT_VAL_SPLIT_MAX ( void )
inline

Select values greater than mean of smallest and largest value.

Definition at line 80 of file val.hpp.

◆ INT_VAL_RANGE_MIN()

IntValBranch Gecode::INT_VAL_RANGE_MIN ( void )
inline

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.

Definition at line 85 of file val.hpp.

◆ INT_VAL_RANGE_MAX()

IntValBranch Gecode::INT_VAL_RANGE_MAX ( void )
inline

Select the largest range of the variable domain if it has several ranges, otherwise select values greater than mean of smallest and largest value.

Definition at line 90 of file val.hpp.

◆ INT_VAL()

IntValBranch Gecode::INT_VAL ( IntBranchVal v,
IntBranchCommit c = nullptr )
inline

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.

Definition at line 95 of file val.hpp.

◆ INT_VALUES_MIN()

IntValBranch Gecode::INT_VALUES_MIN ( void )
inline

Try all values starting from smallest.

Definition at line 100 of file val.hpp.

◆ INT_VALUES_MAX()

IntValBranch Gecode::INT_VALUES_MAX ( void )
inline

Try all values starting from largest.

Definition at line 105 of file val.hpp.

◆ BOOL_VAL_MIN()

BoolValBranch Gecode::BOOL_VAL_MIN ( void )
inline

Select smallest value.

Definition at line 130 of file val.hpp.

◆ BOOL_VAL_MAX()

BoolValBranch Gecode::BOOL_VAL_MAX ( void )
inline

Select largest value.

Definition at line 135 of file val.hpp.

◆ BOOL_VAL_RND()

BoolValBranch Gecode::BOOL_VAL_RND ( Rnd r)
inline

Select random value.

Definition at line 140 of file val.hpp.

◆ BOOL_VAL()

BoolValBranch Gecode::BOOL_VAL ( BoolBranchVal v,
BoolBranchCommit c = nullptr )
inline

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.

Definition at line 145 of file val.hpp.

◆ INT_ASSIGN_MIN()

IntAssign Gecode::INT_ASSIGN_MIN ( void )
inline

Select smallest value.

Definition at line 55 of file assign.hpp.

◆ INT_ASSIGN_MED()

IntAssign Gecode::INT_ASSIGN_MED ( void )
inline

Select greatest value not greater than the median.

Definition at line 60 of file assign.hpp.

◆ INT_ASSIGN_MAX()

IntAssign Gecode::INT_ASSIGN_MAX ( void )
inline

Select largest value.

Definition at line 65 of file assign.hpp.

◆ INT_ASSIGN_RND()

IntAssign Gecode::INT_ASSIGN_RND ( Rnd r)
inline

Select random value.

Definition at line 70 of file assign.hpp.

◆ INT_ASSIGN()

IntAssign Gecode::INT_ASSIGN ( IntBranchVal v,
IntBranchCommit c = nullptr )
inline

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

Uses a commit function as default that posts the constraint that a variable x must be equal to the value n.

Definition at line 75 of file assign.hpp.

◆ BOOL_ASSIGN_MIN()

BoolAssign Gecode::BOOL_ASSIGN_MIN ( void )
inline

Select smallest value.

Definition at line 100 of file assign.hpp.

◆ BOOL_ASSIGN_MAX()

BoolAssign Gecode::BOOL_ASSIGN_MAX ( void )
inline

Select largest value.

Definition at line 105 of file assign.hpp.

◆ BOOL_ASSIGN_RND()

BoolAssign Gecode::BOOL_ASSIGN_RND ( Rnd r)
inline

Select random value.

Definition at line 110 of file assign.hpp.

◆ BOOL_ASSIGN()

BoolAssign Gecode::BOOL_ASSIGN ( BoolBranchVal v,
BoolBranchCommit c = nullptr )
inline

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

Uses a commit function as default that posts the constraint that a variable x must be equal to the value n.

Definition at line 115 of file assign.hpp.

◆ VariableSymmetry() [1/4]

SymmetryHandle Gecode::VariableSymmetry ( const IntVarArgs & x)

Variables in x are interchangeable.

Definition at line 62 of file ldsb.cpp.

◆ VariableSymmetry() [2/4]

SymmetryHandle Gecode::VariableSymmetry ( const BoolVarArgs & x)

Variables in x are interchangeable.

Definition at line 68 of file ldsb.cpp.

◆ VariableSymmetry() [3/4]

SymmetryHandle Gecode::VariableSymmetry ( const IntVarArgs & x,
const IntArgs & indices )

Specified variables in x are interchangeable.

Definition at line 74 of file ldsb.cpp.

◆ ValueSymmetry() [1/3]

SymmetryHandle Gecode::ValueSymmetry ( const IntArgs & v)

Values in v are interchangeable.

Definition at line 81 of file ldsb.cpp.

◆ ValueSymmetry() [2/3]

SymmetryHandle Gecode::ValueSymmetry ( const IntSet & v)

Values in v are interchangeable.

Definition at line 84 of file ldsb.cpp.

◆ ValueSymmetry() [3/3]

SymmetryHandle Gecode::ValueSymmetry ( IntVar vars)

All values in the domain of the given variable are interchangeable.

Definition at line 87 of file ldsb.cpp.

◆ VariableSequenceSymmetry() [1/3]

SymmetryHandle Gecode::VariableSequenceSymmetry ( const IntVarArgs & x,
int ss )

Variable sequences in x of size ss are interchangeable.

The size of x must be a multiple of ss.

Definition at line 90 of file ldsb.cpp.

◆ VariableSequenceSymmetry() [2/3]

SymmetryHandle Gecode::VariableSequenceSymmetry ( const BoolVarArgs & x,
int ss )

Variable sequences in x of size ss are interchangeable.

The size of x must be a multiple of ss.

Definition at line 96 of file ldsb.cpp.

◆ ValueSequenceSymmetry()

SymmetryHandle Gecode::ValueSequenceSymmetry ( const IntArgs & v,
int ss )

Value sequences in v of size ss are interchangeable.

The size of v must be a multiple of ss.

Definition at line 102 of file ldsb.cpp.

◆ values_reflect() [1/3]

SymmetryHandle Gecode::values_reflect ( int lower,
int upper )

The values from lower to upper (inclusive) can be reflected.

Definition at line 106 of file ldsb.cpp.

◆ values_reflect() [2/3]

SymmetryHandle Gecode::values_reflect ( IntVar x)

The values in the domain of \x can be reflected.

◆ relax() [2/4]

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

Definition at line 65 of file relax.cpp.

◆ relax() [3/4]

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

Definition at line 76 of file relax.cpp.

◆ branch() [1/2]

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.

◆ assign()

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.

◆ operator<<() [4/60]

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

◆ operator<<() [5/60]

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 227 of file tuple-set.hpp.

◆ operator<<() [6/60]

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 285 of file int-set-1.hpp.

◆ values_reflect() [3/3]

SymmetryHandle Gecode::values_reflect ( const IntVar & x)

Definition at line 121 of file ldsb.cpp.

◆ operator<<() [7/60]

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 1 of file print.hpp.

◆ operator<<() [8/60]

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 1 of file print.hpp.

◆ branch() [2/2]

void Gecode::branch ( Home home,
std::function< void(Space &home)> f )

Call the function f (with the current space as argument) for branching.

Definition at line 147 of file function.cpp.

◆ operator<<() [9/60]

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

Definition at line 195 of file archive.hpp.

◆ operator<<() [10/60]

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

Definition at line 200 of file archive.hpp.

◆ operator<<() [11/60]

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

Definition at line 205 of file archive.hpp.

◆ operator<<() [12/60]

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

Definition at line 210 of file archive.hpp.

◆ operator<<() [13/60]

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

Definition at line 215 of file archive.hpp.

◆ operator<<() [14/60]

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

Definition at line 220 of file archive.hpp.

◆ operator<<() [15/60]

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

Definition at line 225 of file archive.hpp.

◆ operator<<() [16/60]

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

Definition at line 230 of file archive.hpp.

◆ operator<<() [17/60]

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

Definition at line 236 of file archive.hpp.

◆ operator>>() [2/20]

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

Definition at line 244 of file archive.hpp.

◆ operator>>() [3/20]

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

Definition at line 249 of file archive.hpp.

◆ operator>>() [4/20]

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

Definition at line 254 of file archive.hpp.

◆ operator>>() [5/20]

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

Definition at line 259 of file archive.hpp.

◆ operator>>() [6/20]

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

Definition at line 264 of file archive.hpp.

◆ operator>>() [7/20]

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

Definition at line 269 of file archive.hpp.

◆ operator>>() [8/20]

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

Definition at line 274 of file archive.hpp.

◆ operator>>() [9/20]

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

Definition at line 279 of file archive.hpp.

◆ operator>>() [10/20]

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

Definition at line 286 of file archive.hpp.

◆ operator<<() [18/60]

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 335 of file action.hpp.

◆ operator<<() [19/60]

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 167 of file afc.hpp.

◆ operator<<() [20/60]

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 358 of file chb.hpp.

◆ tiebreak() [1/3]

template<class VarBranch>
TieBreak< VarBranch > Gecode::tiebreak ( VarBranch a,
VarBranch b )

Combine variable selection criteria a and b for tie-breaking.

Definition at line 80 of file tiebreak.hpp.

◆ tiebreak() [2/3]

template<class VarBranch>
TieBreak< VarBranch > Gecode::tiebreak ( VarBranch a,
VarBranch b,
VarBranch c )

Combine variable selection criteria a, b, and c for tie-breaking.

Definition at line 87 of file tiebreak.hpp.

◆ tiebreak() [3/3]

template<class VarBranch>
TieBreak< VarBranch > Gecode::tiebreak ( VarBranch a,
VarBranch b,
VarBranch c,
VarBranch d )

Combine variable selection criteria a, b, c, and d for tie-breaking.

Definition at line 94 of file tiebreak.hpp.

◆ postviewvalbrancher()

template<class View, int n, class Val, unsigned int a>
void Gecode::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 )
inline

Post view value brancher.

Definition at line 341 of file view-val.hpp.

◆ operator+() [5/61]

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

Definition at line 1052 of file array.hpp.

◆ operator+() [6/61]

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

Definition at line 1063 of file array.hpp.

◆ operator+() [7/61]

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

Definition at line 1074 of file array.hpp.

◆ operator+() [8/61]

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

Definition at line 1085 of file array.hpp.

◆ operator+() [9/61]

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

Definition at line 1095 of file array.hpp.

◆ shared() [1/8]

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

Definition at line 1472 of file array.hpp.

◆ shared() [2/8]

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

Definition at line 1495 of file array.hpp.

◆ shared() [3/8]

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

Definition at line 1506 of file array.hpp.

◆ shared() [4/8]

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

Definition at line 1512 of file array.hpp.

◆ operator+() [10/61]

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

Definition at line 1817 of file array.hpp.

◆ operator+() [11/61]

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

Definition at line 1824 of file array.hpp.

◆ operator+() [12/61]

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

Definition at line 1831 of file array.hpp.

◆ operator+() [13/61]

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

Definition at line 1906 of file array.hpp.

◆ operator+() [14/61]

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

Definition at line 1913 of file array.hpp.

◆ operator+() [15/61]

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

Definition at line 1920 of file array.hpp.

◆ same() [1/8]

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

Definition at line 1943 of file array.hpp.

◆ same() [2/8]

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

Definition at line 1966 of file array.hpp.

◆ same() [3/8]

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

Definition at line 1977 of file array.hpp.

◆ same() [4/8]

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

Definition at line 1983 of file array.hpp.

◆ operator<<() [21/60]

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 2004 of file array.hpp.

◆ operator<<() [22/60]

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 2004 of file array.hpp.

◆ operator<<() [23/60]

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 2004 of file array.hpp.

◆ operator<<() [24/60]

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 358 of file shared-array.hpp.

◆ operator==() [4/46]

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

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.

◆ operator!=() [4/46]

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

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.

◆ operator==() [5/46]

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

Definition at line 457 of file allocators.hpp.

◆ operator!=() [5/46]

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

Definition at line 469 of file allocators.hpp.

◆ operator-() [5/40]

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

Return negative expression of e.

Definition at line 126 of file filter.cpp.

◆ propagator()

TFE Gecode::propagator ( PropagatorGroup g)

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

Definition at line 131 of file filter.cpp.

◆ post()

TFE Gecode::post ( PropagatorGroup g)

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

Definition at line 138 of file filter.cpp.

◆ operator+() [16/61]

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.

◆ operator+() [17/61]

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

Positive expression.

Definition at line 233 of file filter.hpp.

◆ operator-() [6/40]

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.

◆ operator==() [6/46]

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.

◆ operator==() [7/46]

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.

◆ operator==() [8/46]

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.

◆ operator==() [9/46]

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.

◆ operator==() [10/46]

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.

◆ operator==() [11/46]

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.

◆ operator==() [12/46]

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.

◆ operator==() [13/46]

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.

◆ operator==() [14/46]

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.

◆ operator!=() [6/46]

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.

◆ operator!=() [7/46]

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.

◆ operator!=() [8/46]

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.

◆ operator!=() [9/46]

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.

◆ operator!=() [10/46]

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.

◆ operator!=() [11/46]

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.

◆ operator!=() [12/46]

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.

◆ operator!=() [13/46]

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.

◆ operator!=() [14/46]

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.

◆ operator+() [18/61]

LinIntExpr Gecode::operator+ ( int c,
const IntVar & x )

Construct linear expression as sum of integer variable and integer.

Definition at line 588 of file int-expr.cpp.

◆ operator+() [19/61]

LinIntExpr Gecode::operator+ ( int c,
const BoolVar & x )

Construct linear expression as sum of Boolean variable and integer.

Definition at line 596 of file int-expr.cpp.

◆ operator+() [20/61]

LinIntExpr Gecode::operator+ ( int c,
const LinIntExpr & e )

Construct linear expression as sum of linear expression and integer.

Definition at line 604 of file int-expr.cpp.

◆ operator+() [21/61]

LinIntExpr Gecode::operator+ ( const IntVar & x,
int c )

Construct linear expression as sum of integer variable and integer.

Definition at line 608 of file int-expr.cpp.

◆ operator+() [22/61]

LinIntExpr Gecode::operator+ ( const BoolVar & x,
int c )

Construct linear expression as sum of Boolean variable and integer.

Definition at line 616 of file int-expr.cpp.

◆ operator+() [23/61]

LinIntExpr Gecode::operator+ ( const LinIntExpr & e,
int c )

Construct linear expression as sum of linear expression and integer.

Definition at line 624 of file int-expr.cpp.

◆ operator+() [24/61]

LinIntExpr Gecode::operator+ ( const IntVar & x,
const IntVar & y )

Construct linear expression as sum of integer variables.

Definition at line 628 of file int-expr.cpp.

◆ operator+() [25/61]

LinIntExpr Gecode::operator+ ( const IntVar & x,
const BoolVar & y )

Construct linear expression as sum of integer and Boolean variable.

Definition at line 637 of file int-expr.cpp.

◆ operator+() [26/61]

LinIntExpr Gecode::operator+ ( const BoolVar & x,
const IntVar & y )

Construct linear expression as sum of Boolean and integer variable.

Definition at line 646 of file int-expr.cpp.

◆ operator+() [27/61]

LinIntExpr Gecode::operator+ ( const BoolVar & x,
const BoolVar & y )

Construct linear expression as sum of Boolean variables.

Definition at line 655 of file int-expr.cpp.

◆ operator+() [28/61]

LinIntExpr Gecode::operator+ ( const IntVar & x,
const LinIntExpr & e )

Construct linear expression as sum of integer variable and linear expression.

Definition at line 664 of file int-expr.cpp.

◆ operator+() [29/61]

LinIntExpr Gecode::operator+ ( const BoolVar & x,
const LinIntExpr & e )

Construct linear expression as sum of Boolean variable and linear expression.

Definition at line 671 of file int-expr.cpp.

◆ operator+() [30/61]

LinIntExpr Gecode::operator+ ( const LinIntExpr & e,
const IntVar & x )

Construct linear expression as sum of linear expression and integer variable.

Definition at line 678 of file int-expr.cpp.

◆ operator+() [31/61]

LinIntExpr Gecode::operator+ ( const LinIntExpr & e,
const BoolVar & x )

Construct linear expression as sum of linear expression and Boolean variable.

Definition at line 685 of file int-expr.cpp.

◆ operator+() [32/61]

LinIntExpr Gecode::operator+ ( const LinIntExpr & e1,
const LinIntExpr & e2 )

Construct linear expression as sum of linear expressions.

Definition at line 692 of file int-expr.cpp.

◆ operator-() [7/40]

LinIntExpr Gecode::operator- ( int c,
const IntVar & x )

Construct linear expression as sum of integer variable and integer.

Definition at line 697 of file int-expr.cpp.

◆ operator-() [8/40]

LinIntExpr Gecode::operator- ( int c,
const BoolVar & x )

Construct linear expression as sum of Boolean variable and integer.

Definition at line 705 of file int-expr.cpp.

◆ operator-() [9/40]

LinIntExpr Gecode::operator- ( int c,
const LinIntExpr & e )

Construct linear expression as sum of integer and linear expression.

Definition at line 713 of file int-expr.cpp.

◆ operator-() [10/40]

LinIntExpr Gecode::operator- ( const IntVar & x,
int c )

Construct linear expression as sum of integer variable and integer.

Definition at line 717 of file int-expr.cpp.

◆ operator-() [11/40]

LinIntExpr Gecode::operator- ( const BoolVar & x,
int c )

Construct linear expression as sum of Boolean variable and integer.

Definition at line 725 of file int-expr.cpp.

◆ operator-() [12/40]

LinIntExpr Gecode::operator- ( const LinIntExpr & e,
int c )

Construct linear expression as sum of linear expression and integer.

Definition at line 733 of file int-expr.cpp.

◆ operator-() [13/40]

LinIntExpr Gecode::operator- ( const IntVar & x,
const IntVar & y )

Construct linear expression as sum of integer variables.

Definition at line 737 of file int-expr.cpp.

◆ operator-() [14/40]

LinIntExpr Gecode::operator- ( const IntVar & x,
const BoolVar & y )

Construct linear expression as sum of integer and Boolean variable.

Definition at line 746 of file int-expr.cpp.

◆ operator-() [15/40]

LinIntExpr Gecode::operator- ( const BoolVar & x,
const IntVar & y )

Construct linear expression as sum of Boolean and integer variable.

Definition at line 755 of file int-expr.cpp.

◆ operator-() [16/40]

LinIntExpr Gecode::operator- ( const BoolVar & x,
const BoolVar & y )

Construct linear expression as sum of Boolean variables.

Definition at line 764 of file int-expr.cpp.

◆ operator-() [17/40]

LinIntExpr Gecode::operator- ( const IntVar & x,
const LinIntExpr & e )

Construct linear expression as sum of integer variable and linear expression.

Definition at line 773 of file int-expr.cpp.

◆ operator-() [18/40]

LinIntExpr Gecode::operator- ( const BoolVar & x,
const LinIntExpr & e )

Construct linear expression as sum of Boolean variable and linear expression.

Definition at line 780 of file int-expr.cpp.

◆ operator-() [19/40]

LinIntExpr Gecode::operator- ( const LinIntExpr & e,
const IntVar & x )

Construct linear expression as sum of linear expression and integer variable.

Definition at line 787 of file int-expr.cpp.

◆ operator-() [20/40]

LinIntExpr Gecode::operator- ( const LinIntExpr & e,
const BoolVar & x )

Construct linear expression as sum of linear expression and Boolean variable.

Definition at line 794 of file int-expr.cpp.

◆ operator-() [21/40]

LinIntExpr Gecode::operator- ( const LinIntExpr & e1,
const LinIntExpr & e2 )

Construct linear expression as sum of linear expressions.

Definition at line 801 of file int-expr.cpp.

◆ operator-() [22/40]

LinIntExpr Gecode::operator- ( const IntVar & x)

Construct linear expression as negative of integer variable.

Definition at line 806 of file int-expr.cpp.

◆ operator-() [23/40]

LinIntExpr Gecode::operator- ( const BoolVar & x)

Construct linear expression as negative of Boolean variable.

Definition at line 813 of file int-expr.cpp.

◆ operator-() [24/40]

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

Construct linear expression as negative of linear expression.

Definition at line 820 of file int-expr.cpp.

◆ operator*() [4/21]

LinIntExpr Gecode::operator* ( int a,
const IntVar & x )

Construct linear expression as product of integer coefficient and integer variable.

Definition at line 825 of file int-expr.cpp.

◆ operator*() [5/21]

LinIntExpr Gecode::operator* ( int a,
const BoolVar & x )

Construct linear expression as product of integer coefficient and Boolean variable.

Definition at line 835 of file int-expr.cpp.

◆ operator*() [6/21]

LinIntExpr Gecode::operator* ( const IntVar & x,
int a )

Construct linear expression as product of integer coefficient and integer variable.

Definition at line 845 of file int-expr.cpp.

◆ operator*() [7/21]

LinIntExpr Gecode::operator* ( const BoolVar & x,
int a )

Construct linear expression as product of integer coefficient and Boolean variable.

Definition at line 855 of file int-expr.cpp.

◆ operator*() [8/21]

LinIntExpr Gecode::operator* ( const LinIntExpr & e,
int a )

Construct linear expression as product of integer coefficient and linear expression.

Definition at line 865 of file int-expr.cpp.

◆ operator*() [9/21]

LinIntExpr Gecode::operator* ( int a,
const LinIntExpr & e )

Construct linear expression as product of integer coefficient and linear expression.

Definition at line 872 of file int-expr.cpp.

◆ sum() [1/9]

LinIntExpr Gecode::sum ( const IntVarArgs & x)

Construct linear expression as sum of integer variables.

Definition at line 880 of file int-expr.cpp.

◆ sum() [2/9]

LinIntExpr Gecode::sum ( const IntArgs & a,
const IntVarArgs & x )

Construct linear expression as sum of integer variables with coefficients.

Definition at line 884 of file int-expr.cpp.

◆ sum() [3/9]

LinIntExpr Gecode::sum ( const BoolVarArgs & x)

Construct linear expression as sum of Boolean variables.

Definition at line 888 of file int-expr.cpp.

◆ sum() [4/9]

LinIntExpr Gecode::sum ( const IntArgs & a,
const BoolVarArgs & x )

Construct linear expression as sum of Boolean variables with coefficients.

Definition at line 892 of file int-expr.cpp.

◆ sum() [5/9]

LinIntExpr Gecode::sum ( const IntArgs & args)

Construct linear expression as sum of IntArgs.

Definition at line 906 of file int-expr.cpp.

◆ operator==() [15/46]

LinIntRel Gecode::operator== ( int l,
const IntVar & r )

Construct linear equality relation.

Definition at line 43 of file int-rel.cpp.

◆ operator==() [16/46]

LinIntRel Gecode::operator== ( int l,
const BoolVar & r )

Construct linear equality relation.

Definition at line 47 of file int-rel.cpp.

◆ operator==() [17/46]

LinIntRel Gecode::operator== ( int l,
const LinIntExpr & r )

Construct linear equality relation.

Definition at line 51 of file int-rel.cpp.

◆ operator==() [18/46]

LinIntRel Gecode::operator== ( const IntVar & l,
int r )

Construct linear equality relation.

Definition at line 55 of file int-rel.cpp.

◆ operator==() [19/46]

LinIntRel Gecode::operator== ( const BoolVar & l,
int r )

Construct linear equality relation.

Definition at line 59 of file int-rel.cpp.

◆ operator==() [20/46]

LinIntRel Gecode::operator== ( const LinIntExpr & l,
int r )

Construct linear equality relation.

Definition at line 63 of file int-rel.cpp.

◆ operator==() [21/46]

LinIntRel Gecode::operator== ( const IntVar & l,
const IntVar & r )

Construct linear equality relation.

Definition at line 67 of file int-rel.cpp.

◆ operator==() [22/46]

LinIntRel Gecode::operator== ( const IntVar & l,
const BoolVar & r )

Construct linear equality relation.

Definition at line 71 of file int-rel.cpp.

◆ operator==() [23/46]

LinIntRel Gecode::operator== ( const BoolVar & l,
const IntVar & r )

Construct linear equality relation.

Definition at line 75 of file int-rel.cpp.

◆ operator==() [24/46]

LinIntRel Gecode::operator== ( const BoolVar & l,
const BoolVar & r )

Construct linear equality relation.

Definition at line 79 of file int-rel.cpp.

◆ operator==() [25/46]

LinIntRel Gecode::operator== ( const IntVar & l,
const LinIntExpr & r )

Construct linear equality relation.

Definition at line 83 of file int-rel.cpp.

◆ operator==() [26/46]

LinIntRel Gecode::operator== ( const BoolVar & l,
const LinIntExpr & r )

Construct linear equality relation.

Definition at line 87 of file int-rel.cpp.

◆ operator==() [27/46]

LinIntRel Gecode::operator== ( const LinIntExpr & l,
const IntVar & r )

Construct linear equality relation.

Definition at line 91 of file int-rel.cpp.

◆ operator==() [28/46]

LinIntRel Gecode::operator== ( const LinIntExpr & l,
const BoolVar & r )

Construct linear equality relation.

Definition at line 95 of file int-rel.cpp.

◆ operator==() [29/46]

LinIntRel Gecode::operator== ( const LinIntExpr & l,
const LinIntExpr & r )

Construct linear equality relation.

Definition at line 99 of file int-rel.cpp.

◆ operator!=() [15/46]

LinIntRel Gecode::operator!= ( int l,
const IntVar & r )

Construct linear disequality relation.

Definition at line 104 of file int-rel.cpp.

◆ operator!=() [16/46]

LinIntRel Gecode::operator!= ( int l,
const BoolVar & r )

Construct linear disequality relation.

Definition at line 108 of file int-rel.cpp.

◆ operator!=() [17/46]

LinIntRel Gecode::operator!= ( int l,
const LinIntExpr & r )

Construct linear disequality relation.

Definition at line 112 of file int-rel.cpp.

◆ operator!=() [18/46]

LinIntRel Gecode::operator!= ( const IntVar & l,
int r )

Construct linear disequality relation.

Definition at line 116 of file int-rel.cpp.

◆ operator!=() [19/46]

LinIntRel Gecode::operator!= ( const BoolVar & l,
int r )

Construct linear disequality relation.

Definition at line 120 of file int-rel.cpp.

◆ operator!=() [20/46]

LinIntRel Gecode::operator!= ( const LinIntExpr & l,
int r )

Construct linear disequality relation.

Definition at line 124 of file int-rel.cpp.

◆ operator!=() [21/46]

LinIntRel Gecode::operator!= ( const IntVar & l,
const IntVar & r )

Construct linear disequality relation.

Definition at line 128 of file int-rel.cpp.

◆ operator!=() [22/46]

LinIntRel Gecode::operator!= ( const IntVar & l,
const BoolVar & r )

Construct linear disequality relation.

Definition at line 132 of file int-rel.cpp.

◆ operator!=() [23/46]

LinIntRel Gecode::operator!= ( const BoolVar & l,
const IntVar & r )

Construct linear disequality relation.

Definition at line 136 of file int-rel.cpp.

◆ operator!=() [24/46]

LinIntRel Gecode::operator!= ( const BoolVar & l,
const BoolVar & r )

Construct linear disequality relation.

Definition at line 140 of file int-rel.cpp.

◆ operator!=() [25/46]

LinIntRel Gecode::operator!= ( const IntVar & l,
const LinIntExpr & r )

Construct linear disequality relation.

Definition at line 144 of file int-rel.cpp.

◆ operator!=() [26/46]

LinIntRel Gecode::operator!= ( const BoolVar & l,
const LinIntExpr & r )

Construct linear disequality relation.

Definition at line 148 of file int-rel.cpp.

◆ operator!=() [27/46]

LinIntRel Gecode::operator!= ( const LinIntExpr & l,
const IntVar & r )

Construct linear disequality relation.

Definition at line 152 of file int-rel.cpp.

◆ operator!=() [28/46]

LinIntRel Gecode::operator!= ( const LinIntExpr & l,
const BoolVar & r )

Construct linear disequality relation.

Definition at line 156 of file int-rel.cpp.

◆ operator!=() [29/46]

LinIntRel Gecode::operator!= ( const LinIntExpr & l,
const LinIntExpr & r )

Construct linear disequality relation.

Definition at line 160 of file int-rel.cpp.

◆ operator<() [4/33]

LinIntRel Gecode::operator< ( int l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 164 of file int-rel.cpp.

◆ operator<() [5/33]

LinIntRel Gecode::operator< ( int l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 168 of file int-rel.cpp.

◆ operator<() [6/33]

LinIntRel Gecode::operator< ( int l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 172 of file int-rel.cpp.

◆ operator<() [7/33]

LinIntRel Gecode::operator< ( const IntVar & l,
int r )

Construct linear inequality relation.

Definition at line 176 of file int-rel.cpp.

◆ operator<() [8/33]

LinIntRel Gecode::operator< ( const BoolVar & l,
int r )

Construct linear inequality relation.

Definition at line 180 of file int-rel.cpp.

◆ operator<() [9/33]

LinIntRel Gecode::operator< ( const LinIntExpr & l,
int r )

Construct linear inequality relation.

Definition at line 184 of file int-rel.cpp.

◆ operator<() [10/33]

LinIntRel Gecode::operator< ( const IntVar & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 188 of file int-rel.cpp.

◆ operator<() [11/33]

LinIntRel Gecode::operator< ( const IntVar & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 192 of file int-rel.cpp.

◆ operator<() [12/33]

LinIntRel Gecode::operator< ( const BoolVar & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 196 of file int-rel.cpp.

◆ operator<() [13/33]

LinIntRel Gecode::operator< ( const BoolVar & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 200 of file int-rel.cpp.

◆ operator<() [14/33]

LinIntRel Gecode::operator< ( const IntVar & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 204 of file int-rel.cpp.

◆ operator<() [15/33]

LinIntRel Gecode::operator< ( const BoolVar & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 208 of file int-rel.cpp.

◆ operator<() [16/33]

LinIntRel Gecode::operator< ( const LinIntExpr & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 212 of file int-rel.cpp.

◆ operator<() [17/33]

LinIntRel Gecode::operator< ( const LinIntExpr & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 216 of file int-rel.cpp.

◆ operator<() [18/33]

LinIntRel Gecode::operator< ( const LinIntExpr & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 220 of file int-rel.cpp.

◆ operator<=() [4/35]

LinIntRel Gecode::operator<= ( int l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 225 of file int-rel.cpp.

◆ operator<=() [5/35]

LinIntRel Gecode::operator<= ( int l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 229 of file int-rel.cpp.

◆ operator<=() [6/35]

LinIntRel Gecode::operator<= ( int l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 233 of file int-rel.cpp.

◆ operator<=() [7/35]

LinIntRel Gecode::operator<= ( const IntVar & l,
int r )

Construct linear inequality relation.

Definition at line 237 of file int-rel.cpp.

◆ operator<=() [8/35]

LinIntRel Gecode::operator<= ( const BoolVar & l,
int r )

Construct linear inequality relation.

Definition at line 241 of file int-rel.cpp.

◆ operator<=() [9/35]

LinIntRel Gecode::operator<= ( const LinIntExpr & l,
int r )

Construct linear inequality relation.

Definition at line 245 of file int-rel.cpp.

◆ operator<=() [10/35]

LinIntRel Gecode::operator<= ( const IntVar & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 249 of file int-rel.cpp.

◆ operator<=() [11/35]

LinIntRel Gecode::operator<= ( const IntVar & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 253 of file int-rel.cpp.

◆ operator<=() [12/35]

LinIntRel Gecode::operator<= ( const BoolVar & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 257 of file int-rel.cpp.

◆ operator<=() [13/35]

LinIntRel Gecode::operator<= ( const BoolVar & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 261 of file int-rel.cpp.

◆ operator<=() [14/35]

LinIntRel Gecode::operator<= ( const IntVar & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 265 of file int-rel.cpp.

◆ operator<=() [15/35]

LinIntRel Gecode::operator<= ( const BoolVar & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 269 of file int-rel.cpp.

◆ operator<=() [16/35]

LinIntRel Gecode::operator<= ( const LinIntExpr & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 273 of file int-rel.cpp.

◆ operator<=() [17/35]

LinIntRel Gecode::operator<= ( const LinIntExpr & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 277 of file int-rel.cpp.

◆ operator<=() [18/35]

LinIntRel Gecode::operator<= ( const LinIntExpr & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 281 of file int-rel.cpp.

◆ operator>() [4/33]

LinIntRel Gecode::operator> ( int l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 287 of file int-rel.cpp.

◆ operator>() [5/33]

LinIntRel Gecode::operator> ( int l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 291 of file int-rel.cpp.

◆ operator>() [6/33]

LinIntRel Gecode::operator> ( int l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 295 of file int-rel.cpp.

◆ operator>() [7/33]

LinIntRel Gecode::operator> ( const IntVar & l,
int r )

Construct linear inequality relation.

Definition at line 299 of file int-rel.cpp.

◆ operator>() [8/33]

LinIntRel Gecode::operator> ( const BoolVar & l,
int r )

Construct linear inequality relation.

Definition at line 303 of file int-rel.cpp.

◆ operator>() [9/33]

LinIntRel Gecode::operator> ( const LinIntExpr & l,
int r )

Construct linear inequality relation.

Definition at line 307 of file int-rel.cpp.

◆ operator>() [10/33]

LinIntRel Gecode::operator> ( const IntVar & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 311 of file int-rel.cpp.

◆ operator>() [11/33]

LinIntRel Gecode::operator> ( const IntVar & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 315 of file int-rel.cpp.

◆ operator>() [12/33]

LinIntRel Gecode::operator> ( const BoolVar & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 319 of file int-rel.cpp.

◆ operator>() [13/33]

LinIntRel Gecode::operator> ( const BoolVar & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 323 of file int-rel.cpp.

◆ operator>() [14/33]

LinIntRel Gecode::operator> ( const IntVar & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 327 of file int-rel.cpp.

◆ operator>() [15/33]

LinIntRel Gecode::operator> ( const BoolVar & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 331 of file int-rel.cpp.

◆ operator>() [16/33]

LinIntRel Gecode::operator> ( const LinIntExpr & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 335 of file int-rel.cpp.

◆ operator>() [17/33]

LinIntRel Gecode::operator> ( const LinIntExpr & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 339 of file int-rel.cpp.

◆ operator>() [18/33]

LinIntRel Gecode::operator> ( const LinIntExpr & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 343 of file int-rel.cpp.

◆ operator>=() [4/35]

LinIntRel Gecode::operator>= ( int l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 348 of file int-rel.cpp.

◆ operator>=() [5/35]

LinIntRel Gecode::operator>= ( int l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 352 of file int-rel.cpp.

◆ operator>=() [6/35]

LinIntRel Gecode::operator>= ( int l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 356 of file int-rel.cpp.

◆ operator>=() [7/35]

LinIntRel Gecode::operator>= ( const IntVar & l,
int r )

Construct linear inequality relation.

Definition at line 360 of file int-rel.cpp.

◆ operator>=() [8/35]

LinIntRel Gecode::operator>= ( const BoolVar & l,
int r )

Construct linear inequality relation.

Definition at line 364 of file int-rel.cpp.

◆ operator>=() [9/35]

LinIntRel Gecode::operator>= ( const LinIntExpr & l,
int r )

Construct linear inequality relation.

Definition at line 368 of file int-rel.cpp.

◆ operator>=() [10/35]

LinIntRel Gecode::operator>= ( const IntVar & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 372 of file int-rel.cpp.

◆ operator>=() [11/35]

LinIntRel Gecode::operator>= ( const IntVar & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 376 of file int-rel.cpp.

◆ operator>=() [12/35]

LinIntRel Gecode::operator>= ( const BoolVar & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 380 of file int-rel.cpp.

◆ operator>=() [13/35]

LinIntRel Gecode::operator>= ( const BoolVar & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 384 of file int-rel.cpp.

◆ operator>=() [14/35]

LinIntRel Gecode::operator>= ( const IntVar & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 388 of file int-rel.cpp.

◆ operator>=() [15/35]

LinIntRel Gecode::operator>= ( const BoolVar & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 392 of file int-rel.cpp.

◆ operator>=() [16/35]

LinIntRel Gecode::operator>= ( const LinIntExpr & l,
const IntVar & r )

Construct linear inequality relation.

Definition at line 396 of file int-rel.cpp.

◆ operator>=() [17/35]

LinIntRel Gecode::operator>= ( const LinIntExpr & l,
const BoolVar & r )

Construct linear inequality relation.

Definition at line 400 of file int-rel.cpp.

◆ operator>=() [18/35]

LinIntRel Gecode::operator>= ( const LinIntExpr & l,
const LinIntExpr & r )

Construct linear inequality relation.

Definition at line 404 of file int-rel.cpp.

◆ operator+() [33/61]

LinFloatExpr Gecode::operator+ ( const FloatVal & c,
const FloatVar & x )

Construct linear float expression as sum of float variable and float.

Definition at line 399 of file float-expr.cpp.

◆ operator+() [34/61]

LinFloatExpr Gecode::operator+ ( const FloatVal & c,
const LinFloatExpr & e )

Construct linear float expression as sum of linear float expression and float.

Definition at line 406 of file float-expr.cpp.

◆ operator+() [35/61]

LinFloatExpr Gecode::operator+ ( const FloatVar & x,
const FloatVal & c )

Construct linear float expression as sum of float variable and float.

Definition at line 410 of file float-expr.cpp.

◆ operator+() [36/61]

LinFloatExpr Gecode::operator+ ( const LinFloatExpr & e,
const FloatVal & c )

Construct linear float expression as sum of linear float expression and float.

Definition at line 417 of file float-expr.cpp.

◆ operator+() [37/61]

LinFloatExpr Gecode::operator+ ( const FloatVar & x,
const FloatVar & y )

Construct linear float expression as sum of float variables.

Definition at line 421 of file float-expr.cpp.

◆ operator+() [38/61]

LinFloatExpr Gecode::operator+ ( const FloatVar & x,
const LinFloatExpr & e )

Construct linear float expression as sum of float variable and linear float expression.

Definition at line 430 of file float-expr.cpp.

◆ operator+() [39/61]

LinFloatExpr Gecode::operator+ ( const LinFloatExpr & e,
const FloatVar & x )

Construct linear float expression as sum of linear float expression and float variable.

Definition at line 437 of file float-expr.cpp.

◆ operator+() [40/61]

LinFloatExpr Gecode::operator+ ( const LinFloatExpr & e1,
const LinFloatExpr & e2 )

Construct linear float expression as sum of linear float expressions.

Definition at line 444 of file float-expr.cpp.

◆ operator-() [25/40]

LinFloatExpr Gecode::operator- ( const FloatVal & c,
const FloatVar & x )

Construct linear float expression as sum of float variable and float.

Definition at line 449 of file float-expr.cpp.

◆ operator-() [26/40]

LinFloatExpr Gecode::operator- ( const FloatVal & c,
const LinFloatExpr & e )

Construct linear float expression as sum of float and linear float expression.

Definition at line 456 of file float-expr.cpp.

◆ operator-() [27/40]

LinFloatExpr Gecode::operator- ( const FloatVar & x,
const FloatVal & c )

Construct linear float expression as sum of float variable and float.

Definition at line 460 of file float-expr.cpp.

◆ operator-() [28/40]

LinFloatExpr Gecode::operator- ( const LinFloatExpr & e,
const FloatVal & c )

Construct linear float expression as sum of linear float expression and float.

Definition at line 467 of file float-expr.cpp.

◆ operator-() [29/40]

LinFloatExpr Gecode::operator- ( const FloatVar & x,
const FloatVar & y )

Construct linear float expression as sum of float variables.

Definition at line 471 of file float-expr.cpp.

◆ operator-() [30/40]

LinFloatExpr Gecode::operator- ( const FloatVar & x,
const LinFloatExpr & e )

Construct linear float expression as sum of float variable and linear float expression.

Definition at line 480 of file float-expr.cpp.

◆ operator-() [31/40]

LinFloatExpr Gecode::operator- ( const LinFloatExpr & e,
const FloatVar & x )

Construct linear float expression as sum of linear float expression and float variable.

Definition at line 487 of file float-expr.cpp.

◆ operator-() [32/40]

LinFloatExpr Gecode::operator- ( const LinFloatExpr & e1,
const LinFloatExpr & e2 )

Construct linear float expression as sum of linear float expressions.

Definition at line 494 of file float-expr.cpp.

◆ operator-() [33/40]

LinFloatExpr Gecode::operator- ( const FloatVar & x)

Construct linear float expression as negative of float variable.

Definition at line 499 of file float-expr.cpp.

◆ operator-() [34/40]

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

Construct linear float expression as negative of linear float expression.

Definition at line 506 of file float-expr.cpp.

◆ operator*() [10/21]

LinFloatExpr Gecode::operator* ( const FloatVal & a,
const FloatVar & x )

Construct linear float expression as product of float coefficient and float variable.

Definition at line 511 of file float-expr.cpp.

◆ operator*() [11/21]

LinFloatExpr Gecode::operator* ( const FloatVar & x,
const FloatVal & a )

Construct linear float expression as product of float coefficient and float variable.

Definition at line 521 of file float-expr.cpp.

◆ operator*() [12/21]

LinFloatExpr Gecode::operator* ( const LinFloatExpr & e,
const FloatVal & a )

Construct linear float expression as product of float coefficient and linear float expression.

Definition at line 531 of file float-expr.cpp.

◆ operator*() [13/21]

LinFloatExpr Gecode::operator* ( const FloatVal & a,
const LinFloatExpr & e )

Construct linear float expression as product of float coefficient and linear float expression.

Definition at line 538 of file float-expr.cpp.

◆ sum() [6/9]

LinFloatExpr Gecode::sum ( const FloatVarArgs & x)

Construct linear float expression as sum of float variables.

Definition at line 546 of file float-expr.cpp.

◆ sum() [7/9]

LinFloatExpr Gecode::sum ( const FloatValArgs & a,
const FloatVarArgs & x )

Construct linear float expression as sum of float variables with coefficients.

Definition at line 551 of file float-expr.cpp.

◆ operator==() [30/46]

LinFloatRel Gecode::operator== ( const FloatVal & l,
const FloatVar & r )

Construct linear float equality relation.

Definition at line 45 of file float-rel.cpp.

◆ operator==() [31/46]

LinFloatRel Gecode::operator== ( const FloatVal & l,
const LinFloatExpr & r )

Construct linear float equality relation.

Definition at line 49 of file float-rel.cpp.

◆ operator==() [32/46]

LinFloatRel Gecode::operator== ( const FloatVar & l,
const FloatVal & r )

Construct linear float equality relation.

Definition at line 53 of file float-rel.cpp.

◆ operator==() [33/46]

LinFloatRel Gecode::operator== ( const LinFloatExpr & l,
const FloatVal & r )

Construct linear float equality relation.

Definition at line 57 of file float-rel.cpp.

◆ operator==() [34/46]

LinFloatRel Gecode::operator== ( const FloatVar & l,
const FloatVar & r )

Construct linear float equality relation.

Definition at line 61 of file float-rel.cpp.

◆ operator==() [35/46]

LinFloatRel Gecode::operator== ( const FloatVar & l,
const LinFloatExpr & r )

Construct linear float equality relation.

Definition at line 65 of file float-rel.cpp.

◆ operator==() [36/46]

LinFloatRel Gecode::operator== ( const LinFloatExpr & l,
const FloatVar & r )

Construct linear float equality relation.

Definition at line 69 of file float-rel.cpp.

◆ operator==() [37/46]

LinFloatRel Gecode::operator== ( const LinFloatExpr & l,
const LinFloatExpr & r )

Construct linear float equality relation.

Definition at line 73 of file float-rel.cpp.

◆ operator!=() [30/46]

LinFloatRel Gecode::operator!= ( const FloatVal & l,
const FloatVar & r )

Construct linear float disequality relation.

Definition at line 78 of file float-rel.cpp.

◆ operator!=() [31/46]

LinFloatRel Gecode::operator!= ( const FloatVal & l,
const LinFloatExpr & r )

Construct linear float disequality relation.

Definition at line 82 of file float-rel.cpp.

◆ operator!=() [32/46]

LinFloatRel Gecode::operator!= ( const FloatVar & l,
const FloatVal & r )

Construct linear float disequality relation.

Definition at line 86 of file float-rel.cpp.

◆ operator!=() [33/46]

LinFloatRel Gecode::operator!= ( const LinFloatExpr & l,
const FloatVal & r )

Construct linear float disequality relation.

Definition at line 90 of file float-rel.cpp.

◆ operator!=() [34/46]

LinFloatRel Gecode::operator!= ( const FloatVar & l,
const FloatVar & r )

Construct linear float disequality relation.

Definition at line 94 of file float-rel.cpp.

◆ operator!=() [35/46]

LinFloatRel Gecode::operator!= ( const FloatVar & l,
const LinFloatExpr & r )

Construct linear float disequality relation.

Definition at line 98 of file float-rel.cpp.

◆ operator!=() [36/46]

LinFloatRel Gecode::operator!= ( const LinFloatExpr & l,
const FloatVar & r )

Construct linear float disequality relation.

Definition at line 102 of file float-rel.cpp.

◆ operator!=() [37/46]

Construct linear float disequality relation.

Definition at line 106 of file float-rel.cpp.

◆ operator<() [19/33]

LinFloatRel Gecode::operator< ( const FloatVal & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 143 of file float-rel.cpp.

◆ operator<() [20/33]

LinFloatRel Gecode::operator< ( const FloatVal & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 147 of file float-rel.cpp.

◆ operator<() [21/33]

LinFloatRel Gecode::operator< ( const FloatVar & l,
const FloatVal & r )

Construct linear float inequality relation.

Definition at line 151 of file float-rel.cpp.

◆ operator<() [22/33]

LinFloatRel Gecode::operator< ( const LinFloatExpr & l,
const FloatVal & r )

Construct linear float inequality relation.

Definition at line 155 of file float-rel.cpp.

◆ operator<() [23/33]

LinFloatRel Gecode::operator< ( const FloatVar & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 159 of file float-rel.cpp.

◆ operator<() [24/33]

LinFloatRel Gecode::operator< ( const FloatVar & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 163 of file float-rel.cpp.

◆ operator<() [25/33]

LinFloatRel Gecode::operator< ( const LinFloatExpr & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 167 of file float-rel.cpp.

◆ operator<() [26/33]

LinFloatRel Gecode::operator< ( const LinFloatExpr & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 171 of file float-rel.cpp.

◆ operator<=() [19/35]

LinFloatRel Gecode::operator<= ( const FloatVal & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 110 of file float-rel.cpp.

◆ operator<=() [20/35]

LinFloatRel Gecode::operator<= ( const FloatVal & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 114 of file float-rel.cpp.

◆ operator<=() [21/35]

LinFloatRel Gecode::operator<= ( const FloatVar & l,
const FloatVal & r )

Construct linear float inequality relation.

Definition at line 118 of file float-rel.cpp.

◆ operator<=() [22/35]

LinFloatRel Gecode::operator<= ( const LinFloatExpr & l,
const FloatVal & r )

Construct linear float inequality relation.

Definition at line 122 of file float-rel.cpp.

◆ operator<=() [23/35]

LinFloatRel Gecode::operator<= ( const FloatVar & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 126 of file float-rel.cpp.

◆ operator<=() [24/35]

LinFloatRel Gecode::operator<= ( const FloatVar & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 130 of file float-rel.cpp.

◆ operator<=() [25/35]

LinFloatRel Gecode::operator<= ( const LinFloatExpr & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 134 of file float-rel.cpp.

◆ operator<=() [26/35]

LinFloatRel Gecode::operator<= ( const LinFloatExpr & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 138 of file float-rel.cpp.

◆ operator>() [19/33]

LinFloatRel Gecode::operator> ( const FloatVal & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 210 of file float-rel.cpp.

◆ operator>() [20/33]

LinFloatRel Gecode::operator> ( const FloatVal & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 214 of file float-rel.cpp.

◆ operator>() [21/33]

LinFloatRel Gecode::operator> ( const FloatVar & l,
const FloatVal & r )

Construct linear float inequality relation.

Definition at line 218 of file float-rel.cpp.

◆ operator>() [22/33]

LinFloatRel Gecode::operator> ( const LinFloatExpr & l,
const FloatVal & r )

Construct linear float inequality relation.

Definition at line 222 of file float-rel.cpp.

◆ operator>() [23/33]

LinFloatRel Gecode::operator> ( const FloatVar & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 226 of file float-rel.cpp.

◆ operator>() [24/33]

LinFloatRel Gecode::operator> ( const FloatVar & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 230 of file float-rel.cpp.

◆ operator>() [25/33]

LinFloatRel Gecode::operator> ( const LinFloatExpr & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 234 of file float-rel.cpp.

◆ operator>() [26/33]

LinFloatRel Gecode::operator> ( const LinFloatExpr & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 238 of file float-rel.cpp.

◆ operator>=() [19/35]

LinFloatRel Gecode::operator>= ( const FloatVal & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 177 of file float-rel.cpp.

◆ operator>=() [20/35]

LinFloatRel Gecode::operator>= ( const FloatVal & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 181 of file float-rel.cpp.

◆ operator>=() [21/35]

LinFloatRel Gecode::operator>= ( const FloatVar & l,
const FloatVal & r )

Construct linear float inequality relation.

Definition at line 185 of file float-rel.cpp.

◆ operator>=() [22/35]

LinFloatRel Gecode::operator>= ( const LinFloatExpr & l,
const FloatVal & r )

Construct linear float inequality relation.

Definition at line 189 of file float-rel.cpp.

◆ operator>=() [23/35]

LinFloatRel Gecode::operator>= ( const FloatVar & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 193 of file float-rel.cpp.

◆ operator>=() [24/35]

LinFloatRel Gecode::operator>= ( const FloatVar & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 197 of file float-rel.cpp.

◆ operator>=() [25/35]

LinFloatRel Gecode::operator>= ( const LinFloatExpr & l,
const FloatVar & r )

Construct linear float inequality relation.

Definition at line 201 of file float-rel.cpp.

◆ operator>=() [26/35]

LinFloatRel Gecode::operator>= ( const LinFloatExpr & l,
const LinFloatExpr & r )

Construct linear float inequality relation.

Definition at line 205 of file float-rel.cpp.

◆ singleton()

SetExpr Gecode::singleton ( const LinIntExpr & e)

Singleton expression.

Definition at line 691 of file set-expr.cpp.

◆ operator-() [35/40]

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

Complement expression.

Definition at line 683 of file set-expr.cpp.

◆ operator&()

SetExpr Gecode::operator& ( const SetExpr & l,
const SetExpr & r )

Intersection of set expressions.

Definition at line 671 of file set-expr.cpp.

◆ operator|()

SetExpr Gecode::operator| ( const SetExpr & l,
const SetExpr & r )

Union of set expressions.

Definition at line 675 of file set-expr.cpp.

◆ operator+() [41/61]

SetExpr Gecode::operator+ ( const SetExpr & l,
const SetExpr & r )

Disjoint union of set expressions.

Definition at line 679 of file set-expr.cpp.

◆ operator-() [36/40]

SetExpr Gecode::operator- ( const SetExpr & l,
const SetExpr & r )

Difference of set expressions.

Definition at line 687 of file set-expr.cpp.

◆ inter()

SetExpr Gecode::inter ( const SetVarArgs & x)

Intersection of set variables.

Definition at line 696 of file set-expr.cpp.

◆ setunion()

SetExpr Gecode::setunion ( const SetVarArgs & x)

Union of set variables.

Definition at line 705 of file set-expr.cpp.

◆ setdunion()

SetExpr Gecode::setdunion ( const SetVarArgs & x)

Disjoint union of set variables.

Definition at line 714 of file set-expr.cpp.

◆ cardinality() [1/5]

LinIntExpr Gecode::cardinality ( const SetExpr & e)

Cardinality of set expression.

Definition at line 817 of file set-expr.cpp.

◆ min() [8/17]

LinIntExpr Gecode::min ( const SetExpr & e)

Minimum element of set expression.

Definition at line 822 of file set-expr.cpp.

◆ max() [8/17]

LinIntExpr Gecode::max ( const SetExpr & e)

Minimum element of set expression.

Definition at line 827 of file set-expr.cpp.

◆ operator==() [38/46]

SetRel Gecode::operator== ( const SetExpr & e0,
const SetExpr & e1 )

Equality of set expressions.

Definition at line 47 of file set-rel.cpp.

◆ operator!=() [38/46]

SetRel Gecode::operator!= ( const SetExpr & e0,
const SetExpr & e1 )

Disequality of set expressions.

Definition at line 51 of file set-rel.cpp.

◆ operator<=() [27/35]

SetCmpRel Gecode::operator<= ( const SetExpr & e0,
const SetExpr & e1 )

Subset of set expressions.

Definition at line 54 of file set-rel.cpp.

◆ operator<=() [28/35]

BoolExpr Gecode::operator<= ( const SetCmpRel & r,
const SetExpr & l )

Subset of set expressions.

Definition at line 58 of file set-rel.cpp.

◆ operator>=() [27/35]

SetCmpRel Gecode::operator>= ( const SetExpr & e0,
const SetExpr & e1 )

Superset of set expressions.

Definition at line 63 of file set-rel.cpp.

◆ operator>=() [28/35]

BoolExpr Gecode::operator>= ( const SetCmpRel & r,
const SetExpr & l )

Superset of set expressions.

Definition at line 67 of file set-rel.cpp.

◆ operator||() [1/2]

SetRel Gecode::operator|| ( const SetExpr & e0,
const SetExpr & e1 )

Disjointness of set expressions.

Definition at line 71 of file set-rel.cpp.

◆ operator!()

BoolExpr Gecode::operator! ( const BoolExpr & e)

Negated Boolean expression.

Definition at line 600 of file bool-expr.cpp.

◆ operator&&()

BoolExpr Gecode::operator&& ( const BoolExpr & l,
const BoolExpr & r )

Conjunction of Boolean expressions.

Definition at line 587 of file bool-expr.cpp.

◆ operator||() [2/2]

BoolExpr Gecode::operator|| ( const BoolExpr & l,
const BoolExpr & r )

Disjunction of Boolean expressions.

Definition at line 591 of file bool-expr.cpp.

◆ operator^()

BoolExpr Gecode::operator^ ( const BoolExpr & l,
const BoolExpr & r )

Exclusive-or of Boolean expressions.

Definition at line 595 of file bool-expr.cpp.

◆ operator!=() [39/46]

BoolExpr Gecode::operator!= ( const BoolExpr & l,
const BoolExpr & r )

Non-equivalence of Boolean expressions.

Definition at line 605 of file bool-expr.cpp.

◆ operator==() [39/46]

BoolExpr Gecode::operator== ( const BoolExpr & l,
const BoolExpr & r )

Equivalence of Boolean expressions.

Definition at line 609 of file bool-expr.cpp.

◆ operator>>() [11/20]

BoolExpr Gecode::operator>> ( const BoolExpr & l,
const BoolExpr & r )

Implication of Boolean expressions.

Definition at line 613 of file bool-expr.cpp.

◆ operator<<() [25/60]

BoolExpr Gecode::operator<< ( const BoolExpr & l,
const BoolExpr & r )

Reverse implication of Boolean expressions.

Definition at line 617 of file bool-expr.cpp.

◆ dom() [22/40]

BoolExpr Gecode::dom ( const IntVar & x,
int n )

Return expression for $ x=n$.

Definition at line 164 of file dom.cpp.

◆ dom() [23/40]

BoolExpr Gecode::dom ( const IntVar & x,
int l,
int m )

Return expression for $ l\leq x \leq m$.

Definition at line 169 of file dom.cpp.

◆ dom() [24/40]

BoolExpr Gecode::dom ( const IntVar & x,
const IntSet & s )

Return expression for $ x \in s$.

Definition at line 174 of file dom.cpp.

◆ dom() [25/40]

BoolExpr Gecode::dom ( const SetVar & x,
SetRelType rt,
int i )

Return expression for $ x \sim_{rt} \{i\}$.

Definition at line 180 of file dom.cpp.

◆ dom() [26/40]

BoolExpr Gecode::dom ( const SetVar & x,
SetRelType rt,
int i,
int j )

Return expression for $ x \sim_{rt} \{i,\dots,j\}$.

Definition at line 185 of file dom.cpp.

◆ dom() [27/40]

BoolExpr Gecode::dom ( const SetVar & x,
SetRelType rt,
const IntSet & s )

Return expression for $ x \sim_{rt} s$.

Definition at line 190 of file dom.cpp.

◆ dom() [28/40]

BoolExpr Gecode::dom ( const FloatVar & x,
const FloatVal & n )

Return expression for $ x=n$.

Definition at line 197 of file dom.cpp.

◆ dom() [29/40]

BoolExpr Gecode::dom ( const FloatVar & x,
FloatNum l,
FloatNum u )

Return expression for $ l\leq x \leq u$.

Definition at line 202 of file dom.cpp.

◆ operator==() [40/46]

BoolExpr Gecode::operator== ( const SetExpr & s,
const LinIntExpr & x )

Return expression for $|s|\geq 1 \land \forall i\in s:\ i=x$.

Definition at line 118 of file set-rel.cpp.

◆ operator==() [41/46]

BoolExpr Gecode::operator== ( const LinIntExpr & x,
const SetExpr & s )

Return expression for $|s|\geq 1 \land \forall i\in s:\ x=i$.

Definition at line 122 of file set-rel.cpp.

◆ operator==() [42/46]

BoolExpr Gecode::operator== ( const LinIntExpr & ,
IntSet  )
delete

Prevent comparison with IntSet.

◆ operator==() [43/46]

BoolExpr Gecode::operator== ( IntSet ,
const LinIntExpr &  )
delete

Prevent comparison with IntSet.

◆ operator!=() [40/46]

BoolExpr Gecode::operator!= ( const SetExpr & s,
const LinIntExpr & x )

Return expression for $|s|\geq 1 \land \forall i\in s:\ i\neq x$.

Definition at line 127 of file set-rel.cpp.

◆ operator!=() [41/46]

BoolExpr Gecode::operator!= ( const LinIntExpr & x,
const SetExpr & s )

Return expression for $|s|\geq 1 \land \forall i\in s:\ x\neq i$.

Definition at line 132 of file set-rel.cpp.

◆ operator!=() [42/46]

BoolExpr Gecode::operator!= ( const LinIntExpr & ,
IntSet  )
delete

Prevent comparison with IntSet.

◆ operator!=() [43/46]

BoolExpr Gecode::operator!= ( IntSet ,
const LinIntExpr &  )
delete

Prevent comparison with IntSet.

◆ operator<=() [29/35]

BoolExpr Gecode::operator<= ( const SetExpr & s,
const LinIntExpr & x )

Return expression for $|s|\geq 6 \land \forall i\in s:\ i\leq x$.

Definition at line 136 of file set-rel.cpp.

◆ operator<=() [30/35]

BoolExpr Gecode::operator<= ( const LinIntExpr & x,
const SetExpr & s )

Return expression for $|s|\geq 1 \land \forall i\in s:\ x\leq i$.

Definition at line 141 of file set-rel.cpp.

◆ operator<=() [31/35]

BoolExpr Gecode::operator<= ( const LinIntExpr & ,
IntSet  )
delete

Prevent comparison with IntSet.

◆ operator<=() [32/35]

BoolExpr Gecode::operator<= ( IntSet ,
const LinIntExpr &  )
delete

Prevent comparison with IntSet.

◆ operator<() [27/33]

BoolExpr Gecode::operator< ( const SetExpr & s,
const LinIntExpr & x )

Return expression for $|s|\geq 1 \land \forall i\in s:\ i<x$.

Definition at line 146 of file set-rel.cpp.

◆ operator<() [28/33]

BoolExpr Gecode::operator< ( const LinIntExpr & x,
const SetExpr & s )

Return expression for $|s|\geq 1 \land \forall i\in s:\ x<i$.

Definition at line 151 of file set-rel.cpp.

◆ operator<() [29/33]

BoolExpr Gecode::operator< ( const LinIntExpr & ,
IntSet  )
delete

Prevent comparison with IntSet.

◆ operator<() [30/33]

BoolExpr Gecode::operator< ( IntSet ,
const LinIntExpr &  )
delete

Prevent comparison with IntSet.

◆ operator>=() [29/35]

BoolExpr Gecode::operator>= ( const SetExpr & s,
const LinIntExpr & x )

Return expression for $|s|\geq 1 \land \forall i\in s:\ i\geq x$.

Definition at line 157 of file set-rel.cpp.

◆ operator>=() [30/35]

BoolExpr Gecode::operator>= ( const LinIntExpr & x,
const SetExpr & s )

Return expression for $|s|\geq 1 \land \forall i\in s:\ x\geq i$.

Definition at line 162 of file set-rel.cpp.

◆ operator>=() [31/35]

BoolExpr Gecode::operator>= ( const LinIntExpr & ,
IntSet  )
delete

Prevent comparison with IntSet.

◆ operator>=() [32/35]

BoolExpr Gecode::operator>= ( IntSet ,
const LinIntExpr &  )
delete

Prevent comparison with IntSet.

◆ operator>() [27/33]

BoolExpr Gecode::operator> ( const SetExpr & s,
const LinIntExpr & x )

Return expression for $|s|\geq 1 \land \forall i\in s:\ i>x$.

Definition at line 167 of file set-rel.cpp.

◆ operator>() [28/33]

BoolExpr Gecode::operator> ( const LinIntExpr & x,
const SetExpr & s )

Return expression for $|s|\geq 1 \land \forall i\in s:\ x>i$.

Definition at line 172 of file set-rel.cpp.

◆ operator>() [29/33]

BoolExpr Gecode::operator> ( const LinIntExpr & ,
IntSet  )
delete

Prevent comparison with IntSet.

◆ operator>() [30/33]

BoolExpr Gecode::operator> ( IntSet ,
const LinIntExpr &  )
delete

Prevent comparison with IntSet.

◆ expr() [1/4]

IntVar Gecode::expr ( Home home,
const LinIntExpr & e,
const IntPropLevels & ipls = IntPropLevels::def )

Post linear expression and return its value.

Definition at line 915 of file int-expr.cpp.

◆ expr() [2/4]

FloatVar Gecode::expr ( Home home,
const LinFloatExpr & e )

Post float expression and return its value.

Definition at line 556 of file float-expr.cpp.

◆ expr() [3/4]

SetVar Gecode::expr ( Home home,
const SetExpr & e )

Post set expression and return its value.

Definition at line 837 of file set-expr.cpp.

◆ expr() [4/4]

BoolVar Gecode::expr ( Home home,
const BoolExpr & e,
const IntPropLevels & ipls = IntPropLevels::def )

Post Boolean expression and return its value.

Definition at line 629 of file bool-expr.cpp.

◆ rel() [1/21]

void Gecode::rel ( Home home,
const BoolExpr & e,
const IntPropLevels & ipls = IntPropLevels::def )

Post Boolean relation.

Definition at line 638 of file bool-expr.cpp.

◆ operator*() [14/21]

LinIntExpr Gecode::operator* ( const LinIntExpr & x,
const LinIntExpr & y )

Return expression for $x\cdot y$.

Definition at line 397 of file int-arith.cpp.

◆ operator/() [4/8]

LinIntExpr Gecode::operator/ ( const LinIntExpr & x,
const LinIntExpr & y )

Return expression for $x\ \mathrm{div}\ y$.

Definition at line 443 of file int-arith.cpp.

◆ operator%()

LinIntExpr Gecode::operator% ( const LinIntExpr & x,
const LinIntExpr & y )

Return expression for $x\ \mathrm{mod}\ y$.

Definition at line 453 of file int-arith.cpp.

◆ abs() [4/6]

LinIntExpr Gecode::abs ( const LinIntExpr & e)

Return expression for $|e|$.

Definition at line 300 of file int-arith.cpp.

◆ min() [9/17]

LinIntExpr Gecode::min ( const LinIntExpr & x,
const LinIntExpr & y )

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

Definition at line 311 of file int-arith.cpp.

◆ min() [10/17]

LinIntExpr Gecode::min ( const IntVarArgs & x)

Return expression for $\min(x)$.

Definition at line 377 of file int-arith.cpp.

◆ max() [9/17]

LinIntExpr Gecode::max ( const LinIntExpr & x,
const LinIntExpr & y )

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

Definition at line 344 of file int-arith.cpp.

◆ max() [10/17]

LinIntExpr Gecode::max ( const IntVarArgs & x)

Return expression for $\max(x)$.

Definition at line 387 of file int-arith.cpp.

◆ sqr() [4/6]

LinIntExpr Gecode::sqr ( const LinIntExpr & x)

Return expression for $x^2$.

Definition at line 407 of file int-arith.cpp.

◆ sqrt() [4/6]

LinIntExpr Gecode::sqrt ( const LinIntExpr & x)

Return expression for $\lfloor\sqrt{x}\rfloor$.

Definition at line 416 of file int-arith.cpp.

◆ pow() [5/7]

LinIntExpr Gecode::pow ( const LinIntExpr & x,
int n )

Return expression for $x^n$.

Definition at line 425 of file int-arith.cpp.

◆ nroot() [4/6]

LinIntExpr Gecode::nroot ( const LinIntExpr & x,
int n )

Return expression for $\lfloor\sqrt[n]{x}\rfloor$.

Definition at line 434 of file int-arith.cpp.

◆ element() [12/35]

LinIntExpr Gecode::element ( const IntVarArgs & x,
const LinIntExpr & y )

Return expression for $x[y]$.

Definition at line 463 of file int-arith.cpp.

◆ element() [13/35]

BoolExpr Gecode::element ( const BoolVarArgs & x,
const LinIntExpr & y )

Return expression for $x[y]$.

Definition at line 694 of file bool-expr.cpp.

◆ element() [14/35]

LinIntExpr Gecode::element ( const IntArgs & x,
const LinIntExpr & y )

Return expression for $x[y]$.

Definition at line 474 of file int-arith.cpp.

◆ ite() [1/2]

LinIntExpr Gecode::ite ( const BoolExpr & b,
const LinIntExpr & x,
const LinIntExpr & y )

Return expression for if-then-else $b?x:y$.

Definition at line 485 of file int-arith.cpp.

◆ operator*() [15/21]

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

Return expression as product of float variables.

Definition at line 425 of file float-arith.cpp.

◆ operator*() [16/21]

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

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

Definition at line 445 of file float-arith.cpp.

◆ operator*() [17/21]

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

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

Definition at line 435 of file float-arith.cpp.

◆ abs() [5/6]

LinFloatExpr Gecode::abs ( const LinFloatExpr & e)

Return expression for $|e|$.

Definition at line 328 of file float-arith.cpp.

◆ min() [11/17]

LinFloatExpr Gecode::min ( const LinFloatExpr & x,
const LinFloatExpr & y )

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

Definition at line 339 of file float-arith.cpp.

◆ min() [12/17]

LinFloatExpr Gecode::min ( const FloatVarArgs & x)

Return expression for $\min(x)$.

Definition at line 372 of file float-arith.cpp.

◆ max() [11/17]

LinFloatExpr Gecode::max ( const LinFloatExpr & x,
const LinFloatExpr & y )

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

Definition at line 382 of file float-arith.cpp.

◆ max() [12/17]

LinFloatExpr Gecode::max ( const FloatVarArgs & x)

Return expression for $\max(x)$.

Definition at line 415 of file float-arith.cpp.

◆ operator*() [18/21]

LinFloatExpr Gecode::operator* ( const LinFloatExpr & x,
const LinFloatExpr & y )

Return expression for $x\cdot y$.

Definition at line 455 of file float-arith.cpp.

◆ operator/() [5/8]

LinFloatExpr Gecode::operator/ ( const LinFloatExpr & x,
const LinFloatExpr & y )

Return expression for $x/y$.

Definition at line 465 of file float-arith.cpp.

◆ sqr() [5/6]

LinFloatExpr Gecode::sqr ( const LinFloatExpr & x)

Return expression for $x^2$.

Definition at line 475 of file float-arith.cpp.

◆ sqrt() [5/6]

LinFloatExpr Gecode::sqrt ( const LinFloatExpr & x)

Return expression for $\sqrt{x}$.

Definition at line 484 of file float-arith.cpp.

◆ pow() [6/7]

LinFloatExpr Gecode::pow ( const LinFloatExpr & x,
int n )

Return expression for $x^n$.

Definition at line 493 of file float-arith.cpp.

◆ nroot() [5/6]

LinFloatExpr Gecode::nroot ( const LinFloatExpr & x,
int n )

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

Definition at line 502 of file float-arith.cpp.

◆ exp() [3/4]

LinFloatExpr Gecode::exp ( const LinFloatExpr & x)

Return expression for $ \mathrm{exp}(x)$.

Definition at line 513 of file float-arith.cpp.

◆ log() [4/5]

LinFloatExpr Gecode::log ( const LinFloatExpr & x)

Return expression for $ \mathrm{log}(x)$.

Definition at line 522 of file float-arith.cpp.

◆ asin() [3/4]

LinFloatExpr Gecode::asin ( const LinFloatExpr & x)

Return expression for $ \mathrm{asin}(x)$.

Definition at line 531 of file float-arith.cpp.

◆ sin() [3/4]

LinFloatExpr Gecode::sin ( const LinFloatExpr & x)

Return expression for $ \mathrm{sin}(x)$.

Definition at line 540 of file float-arith.cpp.

◆ acos() [3/4]

LinFloatExpr Gecode::acos ( const LinFloatExpr & x)

Return expression for $ \mathrm{acos}(x)$.

Definition at line 549 of file float-arith.cpp.

◆ cos() [3/4]

LinFloatExpr Gecode::cos ( const LinFloatExpr & x)

Return expression for $ \mathrm{cos}(x)$.

Definition at line 558 of file float-arith.cpp.

◆ atan() [3/4]

LinFloatExpr Gecode::atan ( const LinFloatExpr & x)

Return expression for $ \mathrm{atan}(x)$.

Definition at line 567 of file float-arith.cpp.

◆ tan() [3/4]

LinFloatExpr Gecode::tan ( const LinFloatExpr & x)

Return expression for $ \mathrm{tan}(x)$.

Definition at line 576 of file float-arith.cpp.

◆ channel() [10/17]

BoolVar Gecode::channel ( Home home,
IntVar x,
IntPropLevel ipl = IPL_DEF )
inline

Return Boolean variable equal to $x$.

Definition at line 39 of file channel.hpp.

◆ channel() [11/17]

IntVar Gecode::channel ( Home home,
BoolVar b,
IntPropLevel ipl = IPL_DEF )
inline

Return integer variable equal to $b$.

Definition at line 46 of file channel.hpp.

◆ channel() [12/17]

IntVar Gecode::channel ( Home home,
FloatVar f )
inline

Return integer variable equal to $f$.

Definition at line 54 of file channel.hpp.

◆ channel() [13/17]

SetVar Gecode::channel ( Home home,
const IntVarArgs & x,
IntPropLevel ipl = IPL_DEF )
inline

Return set variable equal to $\{x_0,\dots,x_{n-1}\}$.

Definition at line 67 of file channel.hpp.

◆ atmost() [1/6]

void Gecode::atmost ( Home home,
const IntVarArgs & x,
int n,
int m,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\leq m$.

Supports domain consistent propagation only.

Definition at line 39 of file aliases.hpp.

◆ atmost() [2/6]

void Gecode::atmost ( Home home,
const IntVarArgs & x,
IntVar y,
int m,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\leq m$.

Supports domain consistent propagation only.

Definition at line 44 of file aliases.hpp.

◆ atmost() [3/6]

void Gecode::atmost ( Home home,
const IntVarArgs & x,
const IntArgs & y,
int m,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\leq m$.

Supports domain consistent propagation only.

Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.

Definition at line 49 of file aliases.hpp.

◆ atmost() [4/6]

void Gecode::atmost ( Home home,
const IntVarArgs & x,
int n,
IntVar z,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\leq z$.

Supports domain consistent propagation only.

Definition at line 54 of file aliases.hpp.

◆ atmost() [5/6]

void Gecode::atmost ( Home home,
const IntVarArgs & x,
IntVar y,
IntVar z,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\leq z$.

Supports domain consistent propagation only.

Definition at line 59 of file aliases.hpp.

◆ atmost() [6/6]

void Gecode::atmost ( Home home,
const IntVarArgs & x,
const IntArgs & y,
IntVar z,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\leq z$.

Supports domain consistent propagation only.

Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.

Definition at line 64 of file aliases.hpp.

◆ atleast() [1/6]

void Gecode::atleast ( Home home,
const IntVarArgs & x,
int n,
int m,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\geq m$.

Supports domain consistent propagation only.

Definition at line 70 of file aliases.hpp.

◆ atleast() [2/6]

void Gecode::atleast ( Home home,
const IntVarArgs & x,
IntVar y,
int m,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\geq m$.

Supports domain consistent propagation only.

Definition at line 75 of file aliases.hpp.

◆ atleast() [3/6]

void Gecode::atleast ( Home home,
const IntVarArgs & x,
const IntArgs & y,
int m,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\geq m$.

Supports domain consistent propagation only.

Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.

Definition at line 80 of file aliases.hpp.

◆ atleast() [4/6]

void Gecode::atleast ( Home home,
const IntVarArgs & x,
int n,
IntVar z,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\geq z$.

Supports domain consistent propagation only.

Definition at line 85 of file aliases.hpp.

◆ atleast() [5/6]

void Gecode::atleast ( Home home,
const IntVarArgs & x,
IntVar y,
IntVar z,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\geq z$.

Supports domain consistent propagation only.

Definition at line 90 of file aliases.hpp.

◆ atleast() [6/6]

void Gecode::atleast ( Home home,
const IntVarArgs & x,
const IntArgs & y,
IntVar z,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\geq z$.

Supports domain consistent propagation only.

Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.

Definition at line 95 of file aliases.hpp.

◆ exactly() [1/6]

void Gecode::exactly ( Home home,
const IntVarArgs & x,
int n,
int m,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}=m$.

Supports domain consistent propagation only.

Definition at line 101 of file aliases.hpp.

◆ exactly() [2/6]

void Gecode::exactly ( Home home,
const IntVarArgs & x,
IntVar y,
int m,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}=m$.

Supports domain consistent propagation only.

Definition at line 106 of file aliases.hpp.

◆ exactly() [3/6]

void Gecode::exactly ( Home home,
const IntVarArgs & x,
const IntArgs & y,
int m,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}=m$.

Supports domain consistent propagation only.

Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.

Definition at line 111 of file aliases.hpp.

◆ exactly() [4/6]

void Gecode::exactly ( Home home,
const IntVarArgs & x,
int n,
IntVar z,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}=z$.

Supports domain consistent propagation only.

Definition at line 116 of file aliases.hpp.

◆ exactly() [5/6]

void Gecode::exactly ( Home home,
const IntVarArgs & x,
IntVar y,
IntVar z,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}=z$.

Supports domain consistent propagation only.

Definition at line 121 of file aliases.hpp.

◆ exactly() [6/6]

void Gecode::exactly ( Home home,
const IntVarArgs & x,
const IntArgs & y,
IntVar z,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}=z$.

Supports domain consistent propagation only.

Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.

Definition at line 126 of file aliases.hpp.

◆ lex() [1/2]

void Gecode::lex ( Home home,
const IntVarArgs & x,
IntRelType r,
const IntVarArgs & y,
IntPropLevel ipl = IPL_DEF )
inline

Post lexical order between x and y.

Definition at line 132 of file aliases.hpp.

◆ lex() [2/2]

void Gecode::lex ( Home home,
const BoolVarArgs & x,
IntRelType r,
const BoolVarArgs & y,
IntPropLevel ipl = IPL_DEF )
inline

Post lexical order between x and y.

Definition at line 137 of file aliases.hpp.

◆ values()

void Gecode::values ( Home home,
const IntVarArgs & x,
IntSet y,
IntPropLevel ipl = IPL_DEF )
inline

Post constraint $\{x_0,\dots,x_{n-1}\}=y$.

Definition at line 143 of file aliases.hpp.

◆ channel() [14/17]

void Gecode::channel ( Home home,
const IntVarArgs & x,
SetVar y )
inline

Post constraint $\{x_0,\dots,x_{n-1}\}=y$.

In addition to constraining y to the union of the x, this also posts an nvalue constraint for additional cardinality propagation.

Definition at line 152 of file aliases.hpp.

◆ range()

void Gecode::range ( Home home,
const IntVarArgs & x,
SetVar y,
SetVar z )
inline

Post constraint $\bigcup_{i\in y}\{x_i\}=z$.

Definition at line 158 of file aliases.hpp.

◆ roots()

void Gecode::roots ( Home home,
const IntVarArgs & x,
SetVar y,
SetVar z )
inline

Post constraint $\bigcup_{i\in z}\{j\ |\ x_j=i\}=z$.

Note that this creates one temporary set variable for each element in the upper bound of z, so make sure that the bound is tight.

Definition at line 163 of file aliases.hpp.

◆ operator+() [42/61]

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

Concatenate x and y.

Definition at line 91 of file matrix.hpp.

◆ operator+() [43/61]

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

Concatenate x and y.

Definition at line 99 of file matrix.hpp.

◆ operator+() [44/61]

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

Concatenate x and y.

Definition at line 106 of file matrix.hpp.

◆ operator+() [45/61]

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

Concatenate x and y.

Definition at line 113 of file matrix.hpp.

◆ operator+() [46/61]

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

Concatenate x and y.

Definition at line 120 of file matrix.hpp.

◆ sum() [8/9]

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

Construct linear expression as sum of IntArgs Slice elements.

Definition at line 896 of file int-expr.cpp.

◆ sum() [9/9]

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

Construct linear expression as sum of IntArgs Matrix elements.

Definition at line 901 of file int-expr.cpp.

◆ rows_interchange() [1/2]

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

Interchangeable rows symmetry specification.

Definition at line 40 of file ldsb.hpp.

◆ columns_interchange() [1/2]

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

Interchangeable columns symmetry specification.

Definition at line 51 of file ldsb.hpp.

◆ rows_reflect() [1/2]

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

Reflect rows symmetry specification.

Definition at line 62 of file ldsb.hpp.

◆ columns_reflect() [1/2]

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

Reflect columns symmetry specification.

Definition at line 85 of file ldsb.hpp.

◆ diagonal_reflect() [1/2]

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.

◆ operator<<() [26/60]

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 183 of file matrix.hpp.

◆ operator<<() [27/60]

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 183 of file matrix.hpp.

◆ element() [15/35]

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.

◆ element() [16/35]

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.

◆ element() [17/35]

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.

◆ element() [18/35]

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.

◆ element() [19/35]

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

Definition at line 230 of file matrix.hpp.

◆ element() [20/35]

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

Definition at line 235 of file matrix.hpp.

◆ operator<<() [28/60]

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 38 of file reg.hpp.

◆ dfs() [1/2]

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

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

Definition at line 73 of file dfs.hpp.

◆ dfs() [2/2]

template<class T>
SEB Gecode::dfs ( const Search::Options & o = Search::Options::def)

Return a depth-first search engine builder.

Definition at line 80 of file dfs.hpp.

◆ bab()

template<class T>
SEB Gecode::bab ( const Search::Options & o = Search::Options::def)

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

Definition at line 88 of file bab.hpp.

◆ lds()

template<class T>
SEB Gecode::lds ( const Search::Options & o = Search::Options::def)

Return a limited discrepancy search engine builder.

Definition at line 81 of file lds.hpp.

◆ rbs()

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

Return a restart search engine builder.

Definition at line 118 of file rbs.hpp.

◆ pbs() [1/2]

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

Return a portfolio search engine builder.

◆ pbs() [2/2]

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

Definition at line 316 of file pbs.hpp.

◆ dom() [30/40]

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

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

Definition at line 43 of file dom.cpp.

◆ dom() [31/40]

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

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

Definition at line 50 of file dom.cpp.

◆ dom() [32/40]

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

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

Definition at line 57 of file dom.cpp.

◆ dom() [33/40]

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

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

Definition at line 65 of file dom.cpp.

◆ dom() [34/40]

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

Propagates $ x \sim_r s$.

Definition at line 73 of file dom.cpp.

◆ dom() [35/40]

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

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

Definition at line 190 of file dom.cpp.

◆ cardinality() [2/5]

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

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

Definition at line 44 of file cardinality.cpp.

◆ cardinality() [3/5]

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

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

Definition at line 54 of file cardinality.cpp.

◆ dom() [36/40]

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

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

Definition at line 343 of file dom.cpp.

◆ dom() [37/40]

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

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

Definition at line 350 of file dom.cpp.

◆ dom() [38/40]

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

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

Definition at line 358 of file dom.cpp.

◆ dom() [39/40]

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

Constrain domain of x according to domain of d.

Definition at line 630 of file dom.cpp.

◆ dom() [40/40]

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

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

Definition at line 645 of file dom.cpp.

◆ rel() [2/21]

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

Post propagator for $ x \sim_r y$.

Definition at line 171 of file rel.cpp.

◆ rel() [3/21]

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

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

Definition at line 200 of file rel.cpp.

◆ rel() [4/21]

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

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

Definition at line 177 of file rel.cpp.

◆ rel() [5/21]

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

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

Definition at line 185 of file rel.cpp.

◆ rel() [6/21]

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

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

Definition at line 217 of file rel.cpp.

◆ rel() [7/21]

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

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

Definition at line 236 of file rel.cpp.

◆ rel() [8/21]

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

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

Definition at line 44 of file int.cpp.

◆ rel() [9/21]

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

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

Definition at line 37 of file int.hpp.

◆ rel() [10/21]

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

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

Definition at line 136 of file int.cpp.

◆ rel() [11/21]

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

Post reified propagator for .

Definition at line 42 of file int.hpp.

◆ f$()

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

◆ ite() [2/2]

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

Post propagator for if-then-else constraint.

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

Definition at line 39 of file bool.cpp.

◆ convex() [1/2]

void Gecode::convex ( Home home,
SetVar x )

Definition at line 41 of file convex.cpp.

◆ convex() [2/2]

void Gecode::convex ( Home home,
SetVar x,
SetVar y )

Definition at line 48 of file convex.cpp.

◆ SET_VAR_NONE()

SetVarBranch Gecode::SET_VAR_NONE ( void )
inline

Definition at line 96 of file var.hpp.

◆ variable()

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

◆ SET_VAR_MERIT_MIN()

SetVarBranch Gecode::SET_VAR_MERIT_MIN ( SetBranchMerit bm,
BranchTbl tbl = nullptr )
inline

Definition at line 106 of file var.hpp.

◆ SET_VAR_MERIT_MAX()

SetVarBranch Gecode::SET_VAR_MERIT_MAX ( SetBranchMerit bm,
BranchTbl tbl = nullptr )
inline

Definition at line 111 of file var.hpp.

◆ SET_VAR_DEGREE_MIN()

SetVarBranch Gecode::SET_VAR_DEGREE_MIN ( BranchTbl tbl = nullptr)
inline

Definition at line 116 of file var.hpp.

◆ SET_VAR_DEGREE_MAX()

SetVarBranch Gecode::SET_VAR_DEGREE_MAX ( BranchTbl tbl = nullptr)
inline

Definition at line 121 of file var.hpp.

◆ SET_VAR_AFC_MIN() [1/2]

SetVarBranch Gecode::SET_VAR_AFC_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Definition at line 126 of file var.hpp.

◆ SET_VAR_AFC_MIN() [2/2]

SetVarBranch Gecode::SET_VAR_AFC_MIN ( SetAFC a,
BranchTbl tbl = nullptr )
inline

Definition at line 131 of file var.hpp.

◆ SET_VAR_AFC_MAX() [1/2]

SetVarBranch Gecode::SET_VAR_AFC_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Definition at line 136 of file var.hpp.

◆ SET_VAR_AFC_MAX() [2/2]

SetVarBranch Gecode::SET_VAR_AFC_MAX ( SetAFC a,
BranchTbl tbl = nullptr )
inline

Definition at line 141 of file var.hpp.

◆ SET_VAR_ACTION_MIN() [1/2]

SetVarBranch Gecode::SET_VAR_ACTION_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Definition at line 146 of file var.hpp.

◆ SET_VAR_ACTION_MIN() [2/2]

SetVarBranch Gecode::SET_VAR_ACTION_MIN ( SetAction a,
BranchTbl tbl = nullptr )
inline

Definition at line 151 of file var.hpp.

◆ SET_VAR_ACTION_MAX() [1/2]

SetVarBranch Gecode::SET_VAR_ACTION_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Definition at line 156 of file var.hpp.

◆ SET_VAR_ACTION_MAX() [2/2]

SetVarBranch Gecode::SET_VAR_ACTION_MAX ( SetAction a,
BranchTbl tbl = nullptr )
inline

Definition at line 161 of file var.hpp.

◆ SET_VAR_CHB_MIN() [1/2]

SetVarBranch Gecode::SET_VAR_CHB_MIN ( BranchTbl tbl = nullptr)
inline

Definition at line 166 of file var.hpp.

◆ SET_VAR_CHB_MIN() [2/2]

SetVarBranch Gecode::SET_VAR_CHB_MIN ( SetCHB c,
BranchTbl tbl = nullptr )
inline

Definition at line 171 of file var.hpp.

◆ SET_VAR_CHB_MAX() [1/2]

SetVarBranch Gecode::SET_VAR_CHB_MAX ( BranchTbl tbl = nullptr)
inline

Definition at line 176 of file var.hpp.

◆ SET_VAR_CHB_MAX() [2/2]

SetVarBranch Gecode::SET_VAR_CHB_MAX ( SetCHB c,
BranchTbl tbl = nullptr )
inline

Definition at line 181 of file var.hpp.

◆ SET_VAR_MIN_MIN()

SetVarBranch Gecode::SET_VAR_MIN_MIN ( BranchTbl tbl = nullptr)
inline

Definition at line 186 of file var.hpp.

◆ SET_VAR_MIN_MAX()

SetVarBranch Gecode::SET_VAR_MIN_MAX ( BranchTbl tbl = nullptr)
inline

Definition at line 191 of file var.hpp.

◆ SET_VAR_MAX_MIN()

SetVarBranch Gecode::SET_VAR_MAX_MIN ( BranchTbl tbl = nullptr)
inline

Definition at line 196 of file var.hpp.

◆ SET_VAR_MAX_MAX()

SetVarBranch Gecode::SET_VAR_MAX_MAX ( BranchTbl tbl = nullptr)
inline

Definition at line 201 of file var.hpp.

◆ SET_VAR_SIZE_MIN()

SetVarBranch Gecode::SET_VAR_SIZE_MIN ( BranchTbl tbl = nullptr)
inline

Definition at line 206 of file var.hpp.

◆ SET_VAR_SIZE_MAX()

SetVarBranch Gecode::SET_VAR_SIZE_MAX ( BranchTbl tbl = nullptr)
inline

Definition at line 211 of file var.hpp.

◆ SET_VAR_DEGREE_SIZE_MIN()

SetVarBranch Gecode::SET_VAR_DEGREE_SIZE_MIN ( BranchTbl tbl = nullptr)
inline

Definition at line 216 of file var.hpp.

◆ SET_VAR_DEGREE_SIZE_MAX()

SetVarBranch Gecode::SET_VAR_DEGREE_SIZE_MAX ( BranchTbl tbl = nullptr)
inline

Definition at line 221 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MIN() [1/2]

SetVarBranch Gecode::SET_VAR_AFC_SIZE_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Definition at line 226 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MIN() [2/2]

SetVarBranch Gecode::SET_VAR_AFC_SIZE_MIN ( SetAFC a,
BranchTbl tbl = nullptr )
inline

Definition at line 231 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MAX() [1/2]

SetVarBranch Gecode::SET_VAR_AFC_SIZE_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Definition at line 236 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MAX() [2/2]

SetVarBranch Gecode::SET_VAR_AFC_SIZE_MAX ( SetAFC a,
BranchTbl tbl = nullptr )
inline

Definition at line 241 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MIN() [1/2]

SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MIN ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Definition at line 246 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MIN() [2/2]

SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MIN ( SetAction a,
BranchTbl tbl = nullptr )
inline

Definition at line 251 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MAX() [1/2]

SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MAX ( double d = 1.0,
BranchTbl tbl = nullptr )
inline

Definition at line 256 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MAX() [2/2]

SetVarBranch Gecode::SET_VAR_ACTION_SIZE_MAX ( SetAction a,
BranchTbl tbl = nullptr )
inline

Definition at line 261 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MIN() [1/2]

SetVarBranch Gecode::SET_VAR_CHB_SIZE_MIN ( BranchTbl tbl = nullptr)
inline

Definition at line 266 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MIN() [2/2]

SetVarBranch Gecode::SET_VAR_CHB_SIZE_MIN ( SetCHB c,
BranchTbl tbl = nullptr )
inline

Definition at line 271 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MAX() [1/2]

SetVarBranch Gecode::SET_VAR_CHB_SIZE_MAX ( BranchTbl tbl = nullptr)
inline

Definition at line 276 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MAX() [2/2]

SetVarBranch Gecode::SET_VAR_CHB_SIZE_MAX ( SetCHB c,
BranchTbl tbl = nullptr )
inline

Definition at line 281 of file var.hpp.

◆ SET_VAL_MIN_INC()

SetValBranch Gecode::SET_VAL_MIN_INC ( void )
inline

Definition at line 55 of file val.hpp.

◆ SET_VAL_MIN_EXC()

SetValBranch Gecode::SET_VAL_MIN_EXC ( void )
inline

Definition at line 60 of file val.hpp.

◆ element() [21/35]

Exclude median Gecode::element ( rounding downwards)

◆ SET_VAL_MAX_INC()

SetValBranch Gecode::SET_VAL_MAX_INC ( void )
inline

Definition at line 75 of file val.hpp.

◆ SET_VAL_MAX_EXC()

SetValBranch Gecode::SET_VAL_MAX_EXC ( void )
inline

Definition at line 80 of file val.hpp.

◆ SET_VAL_RND_INC()

SetValBranch Gecode::SET_VAL_RND_INC ( Rnd r)
inline

Definition at line 85 of file val.hpp.

◆ SET_VAL_RND_EXC()

SetValBranch Gecode::SET_VAL_RND_EXC ( Rnd r)
inline

Definition at line 90 of file val.hpp.

◆ SET_VAL()

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

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

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

Definition at line 95 of file val.hpp.

◆ SET_ASSIGN_MIN_INC()

SetAssign Gecode::SET_ASSIGN_MIN_INC ( void )
inline

Definition at line 55 of file assign.hpp.

◆ SET_ASSIGN_MIN_EXC()

SetAssign Gecode::SET_ASSIGN_MIN_EXC ( void )
inline

Definition at line 60 of file assign.hpp.

◆ SET_ASSIGN_MAX_INC()

SetAssign Gecode::SET_ASSIGN_MAX_INC ( void )
inline

Definition at line 75 of file assign.hpp.

◆ SET_ASSIGN_MAX_EXC()

SetAssign Gecode::SET_ASSIGN_MAX_EXC ( void )
inline

Definition at line 80 of file assign.hpp.

◆ SET_ASSIGN_RND_INC()

SetAssign Gecode::SET_ASSIGN_RND_INC ( Rnd r)
inline

Definition at line 85 of file assign.hpp.

◆ SET_ASSIGN_RND_EXC()

SetAssign Gecode::SET_ASSIGN_RND_EXC ( Rnd r)
inline

Definition at line 90 of file assign.hpp.

◆ SET_ASSIGN()

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

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

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

Definition at line 95 of file assign.hpp.

◆ VariableSymmetry() [4/4]

SymmetryHandle Gecode::VariableSymmetry ( const SetVarArgs & x)

Definition at line 44 of file ldsb.cpp.

◆ VariableSequenceSymmetry() [3/3]

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

Variable sequences in x of size ss are interchangeable.

The size of x must be a multiple of ss.

Definition at line 50 of file ldsb.cpp.

◆ relax() [4/4]

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

Definition at line 62 of file relax.cpp.

◆ SET_ASSIGN_MED_INC()

SetAssign Gecode::SET_ASSIGN_MED_INC ( void )
inline

Definition at line 65 of file assign.hpp.

◆ SET_ASSIGN_MED_EXC()

SetAssign Gecode::SET_ASSIGN_MED_EXC ( void )
inline

Definition at line 70 of file assign.hpp.

◆ SET_VAL_MED_INC()

SetValBranch Gecode::SET_VAL_MED_INC ( void )
inline

Definition at line 65 of file val.hpp.

◆ SET_VAL_MED_EXC()

SetValBranch Gecode::SET_VAL_MED_EXC ( void )
inline

Definition at line 70 of file val.hpp.

◆ SET_VAR_RND()

SetVarBranch Gecode::SET_VAR_RND ( Rnd r)
inline

Definition at line 101 of file var.hpp.

◆ cardinality() [4/5]

void Gecode::cardinality ( Home home,
SetVar s,
IntVar x )

Definition at line 66 of file cardinality.cpp.

◆ cardinality() [5/5]

void Gecode::cardinality ( Home home,
SetVar s,
IntVar x,
Reify r )

Definition at line 72 of file cardinality.cpp.

◆ channelSorted()

void Gecode::channelSorted ( Home home,
const IntVarArgs & x,
SetVar y )

Definition at line 45 of file channel.cpp.

◆ channel() [15/17]

void Gecode::channel ( Home home,
const IntVarArgs & x,
const SetVarArgs & y )

Definition at line 52 of file channel.cpp.

◆ channel() [16/17]

void Gecode::channel ( Home home,
const BoolVarArgs & x,
SetVar y )

Definition at line 64 of file channel.cpp.

◆ channel() [17/17]

void Gecode::channel ( Home home,
const SetVarArgs & x,
const SetVarArgs & y )

Definition at line 72 of file channel.cpp.

◆ atmostOne()

void Gecode::atmostOne ( Home home,
const SetVarArgs & xa,
unsigned int c )

Definition at line 41 of file distinct.cpp.

◆ element() [22/35]

void Gecode::element ( Home home,
SetOpType op,
const SetVarArgs & x,
SetVar y,
SetVar z,
const IntSet & universe )

Definition at line 52 of file element.cpp.

◆ element() [23/35]

void Gecode::element ( Home home,
SetOpType op,
const IntVarArgs & x,
SetVar y,
SetVar z,
const IntSet & universe )

Definition at line 92 of file element.cpp.

◆ element() [24/35]

void Gecode::element ( Home home,
SetOpType op,
const IntSetArgs & x,
SetVar y,
SetVar z,
const IntSet & universe )

Definition at line 132 of file element.cpp.

◆ element() [25/35]

void Gecode::element ( Home home,
SetOpType op,
const IntArgs & x,
SetVar y,
SetVar z,
const IntSet & universe )

Definition at line 177 of file element.cpp.

◆ element() [26/35]

void Gecode::element ( Home home,
const SetVarArgs & x,
IntVar y,
SetVar z )

Definition at line 186 of file element.cpp.

◆ element() [27/35]

void Gecode::element ( Home home,
const IntSetArgs & x,
IntVar y,
SetVar z )

Definition at line 201 of file element.cpp.

◆ element() [28/35]

void Gecode::element ( Home home,
const IntSetArgs & a,
IntVar x,
int w,
IntVar y,
int h,
SetVar z )

Definition at line 227 of file element.cpp.

◆ element() [29/35]

void Gecode::element ( Home home,
const SetVarArgs & a,
IntVar x,
int w,
IntVar y,
int h,
SetVar z )

Definition at line 238 of file element.cpp.

◆ wait() [7/8]

void Gecode::wait ( Home home,
SetVar x,
std::function< void(Space &home)> c )

Definition at line 39 of file exec.cpp.

◆ wait() [8/8]

void Gecode::wait ( Home home,
const SetVarArgs & x,
std::function< void(Space &home)> c )

Definition at line 45 of file exec.cpp.

◆ min() [13/17]

void Gecode::min ( Home home,
SetVar s,
IntVar x )

Definition at line 229 of file int.cpp.

◆ notMin()

void Gecode::notMin ( Home home,
SetVar s,
IntVar x )

Definition at line 235 of file int.cpp.

◆ min() [14/17]

void Gecode::min ( Home home,
SetVar s,
IntVar x,
Reify r )

Definition at line 241 of file int.cpp.

◆ max() [13/17]

void Gecode::max ( Home home,
SetVar s,
IntVar x )

Definition at line 261 of file int.cpp.

◆ notMax()

void Gecode::notMax ( Home home,
SetVar s,
IntVar x )

Definition at line 267 of file int.cpp.

◆ max() [14/17]

void Gecode::max ( Home home,
SetVar s,
IntVar x,
Reify r )

Definition at line 273 of file int.cpp.

◆ weights()

void Gecode::weights ( Home home,
IntSharedArray elements,
IntSharedArray weights,
SetVar x,
IntVar y )

Definition at line 292 of file int.cpp.

◆ precede() [1/2]

void Gecode::precede ( Home home,
const SetVarArgs & x,
int s,
int t )

Definition at line 45 of file precede.cpp.

◆ precede() [2/2]

void Gecode::precede ( Home home,
const SetVarArgs & x,
const IntArgs & c )

Definition at line 56 of file precede.cpp.

◆ rel() [12/21]

void Gecode::rel ( Home home,
const IntSet & x,
SetOpType op,
SetVar y,
SetRelType r,
const IntSet & z )

Definition at line 47 of file rel-op-const-cvc.cpp.

◆ rel() [13/21]

void Gecode::rel ( Home home,
const IntSet & x,
SetOpType op,
SetVar y,
SetRelType r,
SetVar z )

Definition at line 47 of file rel-op-const-cvv.cpp.

◆ rel() [14/21]

void Gecode::rel ( Home home,
SetVar x,
SetOpType op,
const IntSet & y,
SetRelType r,
const IntSet & z )

Definition at line 47 of file rel-op-const-vcc.cpp.

◆ rel() [15/21]

void Gecode::rel ( Home home,
SetVar x,
SetOpType op,
const IntSet & y,
SetRelType r,
SetVar z )

Definition at line 47 of file rel-op-const-vcv.cpp.

◆ rel() [16/21]

void Gecode::rel ( Home home,
SetVar x,
SetOpType op,
SetVar y,
SetRelType r,
const IntSet & z )

Definition at line 47 of file rel-op-const-vvc.cpp.

◆ rel() [17/21]

void Gecode::rel ( Home home,
SetOpType op,
const IntVarArgs & x,
SetVar y )

Definition at line 45 of file rel-op-singleton.cpp.

◆ rel() [18/21]

void Gecode::rel ( Home home,
SetOpType op,
const IntVarArgs & x,
const IntSet & z,
SetVar y )

Definition at line 77 of file rel-op-singleton.cpp.

◆ rel() [19/21]

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

Definition at line 45 of file rel-op-ternary.cpp.

◆ rel() [20/21]

void Gecode::rel ( Home home,
SetOpType op,
const SetVarArgs & x,
SetVar y )

Definition at line 45 of file rel-op.cpp.

◆ rel() [21/21]

void Gecode::rel ( Home home,
SetOpType op,
const SetVarArgs & x,
const IntSet & z,
SetVar y )

Definition at line 72 of file rel-op.cpp.

◆ viewarrayshared()

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

Definition at line 47 of file common.hpp.

◆ viewarrayshared< Set::SingletonView, Set::SetView >()

Definition at line 52 of file common.hpp.

◆ sequence() [3/4]

void Gecode::sequence ( Home home,
const SetVarArgs & xa )

Definition at line 43 of file sequence.cpp.

◆ sequence() [4/4]

void Gecode::sequence ( Home home,
const SetVarArgs & xa,
SetVar y )

Definition at line 52 of file sequence.cpp.

◆ operator<<() [29/60]

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 1 of file print.hpp.

◆ ptr_cast()

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.

◆ cmb_hash()

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.

Variable Documentation

◆ SetVarValPrint

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

Definition at line 1291 of file set.hh.

◆ ME_GEN_FAILED

const ModEvent Gecode::ME_GEN_FAILED = -1

Generic modification event: failed variable.

Definition at line 65 of file core.hpp.

◆ ME_GEN_NONE

const ModEvent Gecode::ME_GEN_NONE = 0

Generic modification event: no modification.

Definition at line 67 of file core.hpp.

◆ ME_GEN_ASSIGNED

const ModEvent Gecode::ME_GEN_ASSIGNED = 1

Generic modification event: variable is assigned a value.

Definition at line 69 of file core.hpp.

◆ PC_GEN_NONE

const PropCond Gecode::PC_GEN_NONE = -1

Propagation condition to be ignored (convenience)

Definition at line 74 of file core.hpp.

◆ PC_GEN_ASSIGNED

const PropCond Gecode::PC_GEN_ASSIGNED = 0

Propagation condition for an assigned variable.

Definition at line 76 of file core.hpp.

◆ x

Post propagator for SetVar Gecode::x

Definition at line 773 of file set.hh.

◆ op

Post propagator for SetVar SetOpType Gecode::op

Definition at line 773 of file set.hh.

◆ y

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

Definition at line 773 of file set.hh.

◆ r

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

Definition at line 773 of file set.hh.

◆ z

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

Definition at line 773 of file set.hh.