Generated on Tue Jan 28 2020 00:00:00 for Gecode by doxygen 1.8.17

Gecode toplevel namespace More...

Namespaces

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

Classes

class  Action
 Class for action management. More...
 
class  Actor
 Base-class for both propagators and branchers. More...
 
class  ActorLink
 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< IntSet > >
 Traits of IntSetArgs. More...
 
class  ArrayTraits< ArgArray< SymmetryHandle > >
 Traits of Symmetries. 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< PrimArgArray< int > >
 Traits of IntArgs. More...
 
class  ArrayTraits< PrimArgArray< SEB > >
 Traits of SEBs. More...
 
class  ArrayTraits< PrimArgArray< TaskType > >
 Traits of TaskTypeArgs. 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  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  FunctionBranch
 Brancher for calling a function More...
 
class  GPI
 Global propagator information. 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  HeapChunk
 Memory chunk allocated from heap with proper alignment. 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  IntMaximizeSpace
 Class for maximizing integer cost. More...
 
class  IntMinimizeSpace
 Class for minimizing integer cost. 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  MemoryChunk
 Memory chunk with size information. More...
 
class  MemoryExhausted
 Exception: Memory exhausted More...
 
class  MemoryManager
 Manage memory for space. 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  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  PosValChoice
 Choice storing position and value More...
 
class  PrimArgArray
 Argument array for primtive types. 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  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  SharedMemory
 Shared object for several memory areas. 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  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  UninitializedAction
 Exception: uninitialized action More...
 
class  UninitializedAFC
 Exception: uninitialized AFC More...
 
class  UninitializedCHB
 Exception: uninitialized action 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. More...
 
typedef Driver::ScriptBase< Driver::IgnoreStepOption< MinimizeSpace > > MinimizeScript
 Base-class for scripts for finding solution of lowest integer cost. More...
 
typedef Driver::ScriptBase< Driver::IgnoreStepOption< MaximizeSpace > > MaximizeScript
 Base-class for scripts for finding solution of highest integer cost. More...
 
typedef Driver::ScriptBase< Driver::IgnoreStepOption< IntMinimizeSpace > > IntMinimizeScript
 Base-class for scripts for finding solution of lowest integer cost. More...
 
typedef Driver::ScriptBase< Driver::IgnoreStepOption< IntMaximizeSpace > > IntMaximizeScript
 Base-class for scripts for finding solution of highest integer cost. More...
 
typedef Driver::ScriptBase< Driver::ExtractStepOption< FloatMinimizeSpace > > FloatMinimizeScript
 Base-class for scripts for finding solution of lowest float cost. More...
 
typedef Driver::ScriptBase< Driver::ExtractStepOption< FloatMaximizeSpace > > FloatMaximizeScript
 Base-class for scripts for finding solution of highest float cost. More...
 
typedef double FloatNum
 Floating point number base type. More...
 
typedef std::function< bool(const Space &home, FloatVar x, int i)> FloatBranchFilter
 Branch filter function type for float variables. More...
 
typedef std::function< double(const Space &home, FloatVar x, int i)> FloatBranchMerit
 Branch merit function type for float variables. More...
 
typedef std::function< FloatNumBranch(const Space &home, FloatVar x, int i)> FloatBranchVal
 Branch value function type for float variables. More...
 
typedef std::function< void(Space &home, unsigned int a, FloatVar x, int i, FloatNumBranch nl)> FloatBranchCommit
 Branch commit function type for float variables. More...
 
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. More...
 
typedef ViewTracer< Float::FloatViewFloatTracer
 Tracer for float variables. More...
 
typedef ViewTraceRecorder< Float::FloatViewFloatTraceRecorder
 Trace recorder for float variables. More...
 
typedef ArgArray< Int::LDSB::LiteralLiteralArgs
 An array of literals. More...
 
typedef ArgArray< IntSetIntSetArgs
 Passing set arguments. More...
 
typedef PrimArgArray< TaskTypeTaskTypeArgs
 Argument arrays for passing task type arguments. More...
 
typedef SharedArray< int > IntSharedArray
 Arrays of integers that can be shared among several element constraints. More...
 
typedef std::function< bool(const Space &home, IntVar x, int i)> IntBranchFilter
 Branch filter function type for integer variables. More...
 
typedef std::function< bool(const Space &home, BoolVar x, int i)> BoolBranchFilter
 Branch filter function type for Boolean variables. More...
 
typedef std::function< double(const Space &home, IntVar x, int i)> IntBranchMerit
 Branch merit function type for integer variables. More...
 
typedef std::function< double(const Space &home, BoolVar x, int i)> BoolBranchMerit
 Branch merit function type for Boolean variables. More...
 
typedef std::function< int(const Space &home, IntVar x, int i)> IntBranchVal
 Branch value function type for integer variables. More...
 
typedef std::function< int(const Space &home, BoolVar x, int i)> BoolBranchVal
 Branch value function type for Boolean variables. More...
 
typedef std::function< void(Space &home, unsigned int a, IntVar x, int i, int n)> IntBranchCommit
 Branch commit function type for integer variables. More...
 
typedef std::function< void(Space &home, unsigned int a, BoolVar x, int i, int n)> BoolBranchCommit
 Branch commit function type for Boolean variables. More...
 
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. More...
 
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. More...
 
typedef ViewTracer< Int::IntViewIntTracer
 Tracer for integer variables. More...
 
typedef ViewTraceRecorder< Int::IntViewIntTraceRecorder
 Trace recorder for integer variables. More...
 
typedef ViewTracer< Int::BoolViewBoolTracer
 Tracer for Boolean variables. More...
 
typedef ViewTraceRecorder< Int::BoolViewBoolTraceRecorder
 Trace recorder for Boolean variables. More...
 
typedef std::function< double(const Space &home, double w, double b)> BranchTbl
 Tie-break limit function. More...
 
template<class Var >
using BranchFilter = std::function< bool(const Space &home, Var x, int i)>
 Function type for branch filter functions. More...
 
template<class Var , class Val >
using VarValPrint = std::function< void(const Space &home, const Brancher &b, unsigned int a, Var x, int i, const Val &m, std::ostream &o)>
 Function type for printing variable and value selection. More...
 
typedef int ModEvent
 Type for modification events. More...
 
typedef int PropCond
 Type for propagation conditions. More...
 
typedef int ModEventDelta
 Modification event deltas. More...
 
typedef IntMinimizeSpace MinimizeSpace
 Class for minimizing integer cost. More...
 
typedef IntMaximizeSpace MaximizeSpace
 Class for maximizing integer cost. More...
 
typedef Search::BuilderSEB
 Type for a search engine builder. More...
 
typedef std::function< bool(const Space &home, SetVar x, int i)> SetBranchFilter
 Branch filter function type for set variables. More...
 
typedef std::function< double(const Space &home, SetVar x, int i)> SetBranchMerit
 Branch merit function type for set variables. More...
 
typedef std::function< int(const Space &home, SetVar x, int i)> SetBranchVal
 Branch value function type for set variables. More...
 
typedef std::function< void(Space &home, unsigned int a, SetVar x, int i, int n)> SetBranchCommit
 Branch commit function type for set variables. More...
 
typedef ViewTracer< Set::SetViewSetTracer
 Tracer for set variables. More...
 
typedef ViewTraceRecorder< Set::SetViewSetTraceRecorder
 Trace recorder for set variables. More...
 

Enumerations

enum  ScriptMode { SM_SOLUTION, SM_TIME, SM_STAT, SM_GIST }
 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_SPEED = 4, IPL_MEMORY = 8, IPL_BASIC = 16, IPL_ADVANCED = 32,
  IPL_BASIC_ADVANCED = IPL_BASIC | IPL_ADVANCED
}
 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
}
 Which events to trace. More...
 
enum  SetRelType {
  SRT_EQ, SRT_NQ, SRT_SUB, SRT_SUP,
  SRT_DISJ, SRT_CMPL, SRT_LQ, SRT_LE,
  SRT_GQ, SRT_GR
}
 Common relation types for sets. More...
 
enum  SetOpType { SOT_UNION, SOT_DUNION, SOT_INTER, SOT_MINUS }
 Common operations for sets. More...
 

Functions

void abs (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ |x_0|=x_1$. More...
 
void max (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $ \max\{x_0,x_1\}=x_2$. More...
 
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. More...
 
void min (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $ \min\{x_0,x_1\}=x_2$. More...
 
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. More...
 
void mult (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $x_0\cdot x_1=x_2$. More...
 
void sqr (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $x_0\cdot x_0=x_1$. More...
 
void sqrt (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $\sqrt{x_0}=x_1$. More...
 
void pow (Home home, FloatVar x0, int n, FloatVar x1)
 Post propagator for ${x_0}^{n}=x_1$ for $n\geq 0$. More...
 
void nroot (Home home, FloatVar x0, int n, FloatVar x1)
 Post propagator for ${x_0}^{1/n}=x_1$ for $n\geq 0$. More...
 
void div (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$. More...
 
void ite (Home home, BoolVar b, FloatVar x, FloatVar y, FloatVar z)
 Post propagator for if-then-else constraint. More...
 
FloatAssign FLOAT_ASSIGN_MIN (void)
 Select median value of the lower part. More...
 
FloatAssign FLOAT_ASSIGN_MAX (void)
 Select median value of the upper part. More...
 
FloatAssign FLOAT_ASSIGN_RND (Rnd r)
 Select median value of a randomly chosen part. More...
 
FloatAssign FLOAT_ASSIGN (FloatBranchVal v, FloatBranchCommit c)
 
Archiveoperator<< (Archive &e, FloatNumBranch nl)
 
Archiveoperator>> (Archive &e, FloatNumBranch &nl)
 
FloatValBranch FLOAT_VAL_SPLIT_MIN (void)
 Select values not greater than mean of smallest and largest value. More...
 
FloatValBranch FLOAT_VAL_SPLIT_MAX (void)
 Select values greater than mean of smallest and largest value. More...
 
FloatValBranch FLOAT_VAL_SPLIT_RND (Rnd r)
 Select values randomly which are not greater or not smaller than mean of largest and smallest value. More...
 
FloatValBranch FLOAT_VAL (FloatBranchVal v, FloatBranchCommit c)
 
FloatVarBranch FLOAT_VAR_NONE (void)
 Select first unassigned variable. More...
 
FloatVarBranch FLOAT_VAR_MERIT_MIN (FloatBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with least merit according to branch merit function bm. More...
 
FloatVarBranch FLOAT_VAR_MERIT_MAX (FloatBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with highest merit according to branch merit function bm. More...
 
FloatVarBranch FLOAT_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking) More...
 
FloatVarBranch FLOAT_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree. More...
 
FloatVarBranch FLOAT_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree. More...
 
FloatVarBranch FLOAT_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count with decay factor d. More...
 
FloatVarBranch FLOAT_VAR_AFC_MIN (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count. More...
 
FloatVarBranch FLOAT_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count with decay factor d. More...
 
FloatVarBranch FLOAT_VAR_AFC_MAX (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count. More...
 
FloatVarBranch FLOAT_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with lowest action with decay factor d. More...
 
FloatVarBranch FLOAT_VAR_ACTION_MIN (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with lowest action. More...
 
FloatVarBranch FLOAT_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with highest action with decay factor d. More...
 
FloatVarBranch FLOAT_VAR_ACTION_MAX (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with highest action. More...
 
FloatVarBranch FLOAT_VAR_CHB_MIN (BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
FloatVarBranch FLOAT_VAR_CHB_MIN (FloatCHB a, BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
FloatVarBranch FLOAT_VAR_CHB_MAX (BranchTbl tbl=nullptr)
 Select variable with highest CHB Q-score. More...
 
FloatVarBranch FLOAT_VAR_CHB_MAX (FloatCHB a, BranchTbl tbl=nullptr)
 Select variable with highest CHB Q-score. More...
 
FloatVarBranch FLOAT_VAR_MIN_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest min. More...
 
FloatVarBranch FLOAT_VAR_MIN_MAX (BranchTbl tbl=nullptr)
 Select variable with largest min. More...
 
FloatVarBranch FLOAT_VAR_MAX_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest max. More...
 
FloatVarBranch FLOAT_VAR_MAX_MAX (BranchTbl tbl=nullptr)
 Select variable with largest max. More...
 
FloatVarBranch FLOAT_VAR_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest domain size. More...
 
FloatVarBranch FLOAT_VAR_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest domain size. More...
 
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree divided by domain size. More...
 
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree divided by domain size. More...
 
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. More...
 
FloatVarBranch FLOAT_VAR_AFC_SIZE_MIN (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count divided by domain size. More...
 
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. More...
 
FloatVarBranch FLOAT_VAR_AFC_SIZE_MAX (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size. More...
 
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. More...
 
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MIN (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size. More...
 
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. More...
 
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MAX (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size. More...
 
FloatVarBranch FLOAT_VAR_CHB_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size. More...
 
FloatVarBranch FLOAT_VAR_CHB_SIZE_MIN (FloatCHB c, BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size. More...
 
FloatVarBranch FLOAT_VAR_CHB_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size. More...
 
FloatVarBranch FLOAT_VAR_CHB_SIZE_MAX (FloatCHB a, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size. More...
 
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. More...
 
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. More...
 
void branch (Home home, FloatVar x, FloatValBranch vals, FloatVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void assign (Home home, const FloatVarArgs &x, FloatAssign vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Assign all x with value selection vals. More...
 
void assign (Home home, FloatVar x, FloatAssign vals, FloatVarValPrint vvp=nullptr)
 Assign x with value selection vals. More...
 
void channel (Home home, FloatVar x0, IntVar x1)
 Post propagator for channeling a float and an integer variable $ x_0 = x_1$. More...
 
void channel (Home home, FloatVar x0, BoolVar x1)
 Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$. More...
 
void channel (Home home, IntVar x0, FloatVar x1)
 Post propagator for channeling a float and an integer variable $ x_0 = x_1$. More...
 
void channel (Home home, BoolVar x0, FloatVar x1)
 Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$. More...
 
void dom (Home home, FloatVar x, FloatVal n)
 Propagates $x=n$. More...
 
void dom (Home home, const FloatVarArgs &x, FloatVal n)
 Propagates $ x_i=n$ for all $0\leq i<|x|$. More...
 
void dom (Home home, FloatVar x, FloatNum l, FloatNum m)
 Propagates $ l\leq x\leq u$. More...
 
void dom (Home home, const FloatVarArgs &x, FloatNum l, FloatNum u)
 Propagates $ l\leq x_i\leq u$ for all $0\leq i<|x|$. More...
 
void dom (Home home, FloatVar x, FloatVal n, Reify r)
 Post domain consistent propagator for $ (x=n) \equiv r$. More...
 
void dom (Home home, FloatVar x, FloatNum l, FloatNum u, Reify r)
 Post domain consistent propagator for $ (l\leq x \leq u) \equiv r$. More...
 
void dom (Home home, FloatVar x, FloatVar d)
 Constrain domain of x according to domain of d. More...
 
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|$. More...
 
void wait (Home home, FloatVar x, std::function< void(Space &home)> c)
 Execute c when x becomes assigned. More...
 
void wait (Home home, const FloatVarArgs &x, std::function< void(Space &home)> c)
 Execute c when all variables in x become assigned. More...
 
void linear (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVal c)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{frt} c$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
void linear (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVar y)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{frt} y$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
FloatNum pi_half_lower (void)
 Return lower bound of $\pi/2$. More...
 
FloatNum pi_half_upper (void)
 Return upper bound of $\pi/2$. More...
 
FloatNum pi_lower (void)
 Return lower bound of $\pi$. More...
 
FloatNum pi_upper (void)
 Return upper bound of $\pi$. More...
 
FloatNum pi_twice_lower (void)
 Return lower bound of $2\pi$. More...
 
FloatNum pi_twice_upper (void)
 Return upper bound of $2\pi$. More...
 
void rel (Home home, FloatVar x, FloatRelType frt, FloatVal c)
 Propagates $ x \sim_{frt} c$. More...
 
void rel (Home home, FloatVar x0, FloatRelType frt, FloatVar x1)
 Post propagator for $ x_0 \sim_{frt} x_1$. More...
 
void rel (Home home, FloatVar x0, FloatRelType frt, FloatVar x1, Reify r)
 Post propagator for $(x_0 \sim_{frt} x_1)\equiv r$. More...
 
void rel (Home home, FloatVar x, FloatRelType frt, FloatVal c, Reify r)
 Post propagator for $(x \sim_{frt} c)\equiv r$. More...
 
void rel (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVal c)
 Propagates $ x_i \sim_{frt} c $ for all $0\leq i<|x|$. More...
 
void rel (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVar y)
 Propagates $ x_i \sim_{frt} y $ for all $0\leq i<|x|$. More...
 
void relax (Home home, const FloatVarArgs &x, const FloatVarArgs &sx, Rnd r, double p)
 
void trace (Home home, const FloatVarArgs &x, TraceFilter tf, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), FloatTracer &t=StdFloatTracer::def)
 Create a tracer for float variables. More...
 
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. More...
 
void exp (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{exp}(x_0)=x_1$. More...
 
void log (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{log}_e(x_0)=x_1$. More...
 
void log (Home home, FloatNum base, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{log}_{\mathit{base}}(x_0)=x_1$. More...
 
void pow (Home home, FloatNum base, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathit{base}^{x_0}=x_1$. More...
 
void asin (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{asin}(x_0)=x_1$. More...
 
void sin (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{sin}(x_0)=x_1$. More...
 
void acos (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{acos}(x_0)=x_1$. More...
 
void cos (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{cos}(x_0)=x_1$. More...
 
void atan (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{atan}(x_0)=x_1$. More...
 
void tan (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{tan}(x_0)=x_1$. More...
 
FloatVal operator+ (const FloatVal &x)
 
FloatVal operator- (const FloatVal &x)
 
FloatVal operator+ (const FloatVal &x, const FloatVal &y)
 
FloatVal operator+ (const FloatVal &x, const FloatNum &y)
 
FloatVal operator+ (const FloatNum &x, const FloatVal &y)
 
FloatVal operator- (const FloatVal &x, const FloatVal &y)
 
FloatVal operator- (const FloatVal &x, const FloatNum &y)
 
FloatVal operator- (const FloatNum &x, const FloatVal &y)
 
FloatVal operator* (const FloatVal &x, const FloatVal &y)
 
FloatVal operator* (const FloatVal &x, const FloatNum &y)
 
FloatVal operator* (const FloatNum &x, const FloatVal &y)
 
FloatVal operator/ (const FloatVal &x, const FloatVal &y)
 
FloatVal operator/ (const FloatVal &x, const FloatNum &y)
 
FloatVal operator/ (const FloatNum &x, const FloatVal &y)
 
bool operator< (const FloatVal &x, const FloatVal &y)
 
bool operator< (const FloatVal &x, const FloatNum &y)
 
bool operator<= (const FloatVal &x, const FloatVal &y)
 
bool operator<= (const FloatVal &x, const FloatNum &y)
 
bool operator> (const FloatVal &x, const FloatVal &y)
 
bool operator> (const FloatVal &x, const FloatNum &y)
 
bool operator>= (const FloatVal &x, const FloatVal &y)
 
bool operator>= (const FloatVal &x, const FloatNum &y)
 
bool operator== (const FloatVal &x, const FloatVal &y)
 
bool operator== (const FloatVal &x, const FloatNum &y)
 
bool operator!= (const FloatVal &x, const FloatVal &y)
 
bool operator!= (const FloatVal &x, const FloatNum &y)
 
bool operator< (const FloatNum &x, const FloatVal &y)
 
bool operator<= (const FloatNum &x, const FloatVal &y)
 
bool operator> (const FloatNum &x, const FloatVal &y)
 
bool operator>= (const FloatNum &x, const FloatVal &y)
 
bool operator== (const FloatNum &x, const FloatVal &y)
 
bool operator!= (const FloatNum &x, const FloatVal &y)
 
template<class Char , class Traits >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const FloatVal &x)
 
FloatVal abs (const FloatVal &x)
 
FloatVal sqrt (const FloatVal &x)
 
FloatVal sqr (const FloatVal &x)
 
FloatVal pow (const FloatVal &x, int n)
 
FloatVal nroot (const FloatVal &x, int n)
 
FloatVal max (const FloatVal &x, const FloatVal &y)
 
FloatVal max (const FloatVal &x, const FloatNum &y)
 
FloatVal max (const FloatNum &x, const FloatVal &y)
 
FloatVal min (const FloatVal &x, const FloatVal &y)
 
FloatVal min (const FloatVal &x, const FloatNum &y)
 
FloatVal min (const FloatNum &x, const FloatVal &y)
 
FloatVal exp (const FloatVal &x)
 
FloatVal log (const FloatVal &x)
 
FloatVal fmod (const FloatVal &x, const FloatVal &y)
 
FloatVal fmod (const FloatVal &x, const FloatNum &y)
 
FloatVal fmod (const FloatNum &x, const FloatVal &y)
 
FloatVal sin (const FloatVal &x)
 
FloatVal cos (const FloatVal &x)
 
FloatVal tan (const FloatVal &x)
 
FloatVal asin (const FloatVal &x)
 
FloatVal acos (const FloatVal &x)
 
FloatVal atan (const FloatVal &x)
 
FloatVal sinh (const FloatVal &x)
 
FloatVal cosh (const FloatVal &x)
 
FloatVal tanh (const FloatVal &x)
 
FloatVal asinh (const FloatVal &x)
 
FloatVal acosh (const FloatVal &x)
 
FloatVal atanh (const FloatVal &x)
 
template<class Char , class Traits >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const FloatVar &x)
 
void abs (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ |x_0|=x_1$. More...
 
void max (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \max\{x_0,x_1\}=x_2$. More...
 
void max (Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \max x=y$. More...
 
void min (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \min\{x_0,x_1\}=x_2$. More...
 
void min (Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \min x=y$. More...
 
void argmax (Home home, const IntVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)=y$. More...
 
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$. More...
 
void argmin (Home home, const IntVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)=y$. More...
 
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$. More...
 
void mult (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0\cdot x_1=x_2$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
void sqr (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0^2=x_1$. More...
 
void sqrt (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\lfloor\sqrt{x_0}\rfloor=x_1$. More...
 
void pow (Home home, IntVar x0, int n, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0^n=x_1$. More...
 
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$. More...
 
void binpacking (Home home, const IntVarArgs &l, const IntVarArgs &b, const IntArgs &s, IntPropLevel ipl=IPL_DEF)
 Post propagator for bin packing. More...
 
IntSet binpacking (Home home, int d, const IntVarArgs &l, const IntVarArgs &b, const IntArgs &s, const IntArgs &c, IntPropLevel)
 
void rel (Home home, BoolVar x0, IntRelType irt, BoolVar x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ x_0 \sim_{irt} x_1$. More...
 
void rel (Home home, BoolVar x, IntRelType irt, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $ x \sim_{irt} n$. More...
 
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$. More...
 
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$. More...
 
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|$. More...
 
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|$. More...
 
void rel (Home home, const BoolVarArgs &x, IntRelType irt, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for relation between elements in x. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void rel (Home home, BoolOpType o, const BoolVarArgs &x, BoolVar y, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for Boolean operation on x. More...
 
void rel (Home home, BoolOpType o, const BoolVarArgs &x, int n, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for Boolean operation on x. More...
 
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. More...
 
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. More...
 
void ite (Home home, BoolVar b, IntVar x, IntVar y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for if-then-else constraint. More...
 
void ite (Home home, BoolVar b, BoolVar x, BoolVar y, BoolVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for if-then-else constraint. More...
 
IntAssign INT_ASSIGN_MIN (void)
 Select smallest value. More...
 
IntAssign INT_ASSIGN_MED (void)
 Select greatest value not greater than the median. More...
 
IntAssign INT_ASSIGN_MAX (void)
 Select largest value. More...
 
IntAssign INT_ASSIGN_RND (Rnd r)
 Select random value. More...
 
IntAssign INT_ASSIGN (IntBranchVal v, IntBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c. More...
 
BoolAssign BOOL_ASSIGN_MIN (void)
 Select smallest value. More...
 
BoolAssign BOOL_ASSIGN_MAX (void)
 Select largest value. More...
 
BoolAssign BOOL_ASSIGN_RND (Rnd r)
 Select random value. More...
 
BoolAssign BOOL_ASSIGN (BoolBranchVal v, BoolBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c. More...
 
IntValBranch INT_VAL_MIN (void)
 Select smallest value. More...
 
IntValBranch INT_VAL_MED (void)
 Select greatest value not greater than the median. More...
 
IntValBranch INT_VAL_MAX (void)
 Select largest value. More...
 
IntValBranch INT_VAL_RND (Rnd r)
 Select random value. More...
 
IntValBranch INT_VAL_SPLIT_MIN (void)
 Select values not greater than mean of smallest and largest value. More...
 
IntValBranch INT_VAL_SPLIT_MAX (void)
 Select values greater than mean of smallest and largest value. More...
 
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. More...
 
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. More...
 
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. More...
 
IntValBranch INT_VALUES_MIN (void)
 Try all values starting from smallest. More...
 
IntValBranch INT_VALUES_MAX (void)
 Try all values starting from largest. More...
 
BoolValBranch BOOL_VAL_MIN (void)
 Select smallest value. More...
 
BoolValBranch BOOL_VAL_MAX (void)
 Select largest value. More...
 
BoolValBranch BOOL_VAL_RND (Rnd r)
 Select random value. More...
 
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. More...
 
IntVarBranch INT_VAR_NONE (void)
 Select first unassigned variable. More...
 
IntVarBranch INT_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking) More...
 
IntVarBranch INT_VAR_MERIT_MIN (IntBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with least merit according to branch merit function bm. More...
 
IntVarBranch INT_VAR_MERIT_MAX (IntBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with highest merit according to branch merit function bm. More...
 
IntVarBranch INT_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree. More...
 
IntVarBranch INT_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree. More...
 
IntVarBranch INT_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count with decay factor d. More...
 
IntVarBranch INT_VAR_AFC_MIN (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count. More...
 
IntVarBranch INT_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count with decay factor d. More...
 
IntVarBranch INT_VAR_AFC_MAX (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count. More...
 
IntVarBranch INT_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with lowest action with decay factor d. More...
 
IntVarBranch INT_VAR_ACTION_MIN (IntAction a, BranchTbl tbl=nullptr)
 Select variable with lowest action. More...
 
IntVarBranch INT_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with highest action with decay factor d. More...
 
IntVarBranch INT_VAR_ACTION_MAX (IntAction a, BranchTbl tbl=nullptr)
 Select variable with highest action. More...
 
IntVarBranch INT_VAR_CHB_MIN (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
IntVarBranch INT_VAR_CHB_MIN (BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
IntVarBranch INT_VAR_CHB_MAX (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score. More...
 
IntVarBranch INT_VAR_CHB_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score. More...
 
IntVarBranch INT_VAR_MIN_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest min. More...
 
IntVarBranch INT_VAR_MIN_MAX (BranchTbl tbl=nullptr)
 Select variable with largest min. More...
 
IntVarBranch INT_VAR_MAX_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest max. More...
 
IntVarBranch INT_VAR_MAX_MAX (BranchTbl tbl=nullptr)
 Select variable with largest max. More...
 
IntVarBranch INT_VAR_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest domain size. More...
 
IntVarBranch INT_VAR_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest domain size. More...
 
IntVarBranch INT_VAR_DEGREE_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree divided by domain size. More...
 
IntVarBranch INT_VAR_DEGREE_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree divided by domain size. More...
 
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. More...
 
IntVarBranch INT_VAR_AFC_SIZE_MIN (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count divided by domain size. More...
 
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. More...
 
IntVarBranch INT_VAR_AFC_SIZE_MAX (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size. More...
 
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. More...
 
IntVarBranch INT_VAR_ACTION_SIZE_MIN (IntAction a, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size. More...
 
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. More...
 
IntVarBranch INT_VAR_ACTION_SIZE_MAX (IntAction a, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size. More...
 
IntVarBranch INT_VAR_CHB_SIZE_MIN (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size. More...
 
IntVarBranch INT_VAR_CHB_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size. More...
 
IntVarBranch INT_VAR_CHB_SIZE_MAX (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size. More...
 
IntVarBranch INT_VAR_CHB_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size. More...
 
IntVarBranch INT_VAR_REGRET_MIN_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest min-regret. More...
 
IntVarBranch INT_VAR_REGRET_MIN_MAX (BranchTbl tbl=nullptr)
 Select variable with largest min-regret. More...
 
IntVarBranch INT_VAR_REGRET_MAX_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest max-regret. More...
 
IntVarBranch INT_VAR_REGRET_MAX_MAX (BranchTbl tbl=nullptr)
 Select variable with largest max-regret. More...
 
BoolVarBranch BOOL_VAR_NONE (void)
 Select first unassigned variable. More...
 
BoolVarBranch BOOL_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking) More...
 
BoolVarBranch BOOL_VAR_MERIT_MIN (BoolBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with least merit according to branch merit function bm. More...
 
BoolVarBranch BOOL_VAR_MERIT_MAX (BoolBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with highest merit according to branch merit function bm. More...
 
BoolVarBranch BOOL_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree. More...
 
BoolVarBranch BOOL_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree. More...
 
BoolVarBranch BOOL_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count with decay factor d. More...
 
BoolVarBranch BOOL_VAR_AFC_MIN (BoolAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count. More...
 
BoolVarBranch BOOL_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count with decay factor d. More...
 
BoolVarBranch BOOL_VAR_AFC_MAX (BoolAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count. More...
 
BoolVarBranch BOOL_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with lowest action with decay factor d. More...
 
BoolVarBranch BOOL_VAR_ACTION_MIN (BoolAction a, BranchTbl tbl=nullptr)
 Select variable with lowest action. More...
 
BoolVarBranch BOOL_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with highest action with decay factor d. More...
 
BoolVarBranch BOOL_VAR_ACTION_MAX (BoolAction a, BranchTbl tbl=nullptr)
 Select variable with highest action. More...
 
BoolVarBranch BOOL_VAR_CHB_MIN (BoolCHB c, BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
BoolVarBranch BOOL_VAR_CHB_MIN (BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
BoolVarBranch BOOL_VAR_CHB_MAX (BoolCHB c, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score. More...
 
BoolVarBranch BOOL_VAR_CHB_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score. More...
 
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. More...
 
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. More...
 
void branch (Home home, IntVar x, IntValBranch vals, IntVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void assign (Home home, const IntVarArgs &x, IntAssign vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with value selection vals. More...
 
void assign (Home home, IntVar x, IntAssign vals, IntVarValPrint vvp=nullptr)
 Assign x with value selection vals. More...
 
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. More...
 
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. More...
 
void branch (Home home, BoolVar x, BoolValBranch vals, BoolVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void assign (Home home, const BoolVarArgs &x, BoolAssign vals, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Assign all x with value selection vals. More...
 
void assign (Home home, BoolVar x, BoolAssign vals, BoolVarValPrint vvp=nullptr)
 Assign x with value selection vals. More...
 
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|$. More...
 
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|$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
void circuit (Home home, int offset, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit. More...
 
void circuit (Home home, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void path (Home home, const IntVarArgs &x, IntVar s, IntVar e, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a Hamiltonian path. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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|$. More...
 
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|$. More...
 
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|$. More...
 
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|$. More...
 
void dom (Home home, IntVar x, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $x=n$. More...
 
void dom (Home home, const IntVarArgs &x, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $ x_i=n$ for all $0\leq i<|x|$. More...
 
void dom (Home home, IntVar x, int l, int m, IntPropLevel ipl=IPL_DEF)
 Propagates $ l\leq x\leq m$. More...
 
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|$. More...
 
void dom (Home home, IntVar x, const IntSet &s, IntPropLevel ipl=IPL_DEF)
 Propagates $ x\in s $. More...
 
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|$. More...
 
void dom (Home home, IntVar x, int n, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ (x=n) \equiv r$. More...
 
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$. More...
 
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$. More...
 
void dom (Home home, IntVar x, IntVar d, IntPropLevel ipl=IPL_DEF)
 Constrain domain of x according to domain of d. More...
 
void dom (Home home, BoolVar x, BoolVar d, IntPropLevel ipl=IPL_DEF)
 Constrain domain of x according to domain of d. More...
 
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|$. More...
 
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|$. More...
 
void element (Home home, IntSharedArray n, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ n_{x_0}=x_1$. More...
 
void element (Home home, IntSharedArray n, IntVar x0, BoolVar x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ n_{x_0}=x_1$. More...
 
void element (Home home, IntSharedArray n, IntVar x0, int x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ n_{x_0}=x_1$. More...
 
void element (Home home, const IntVarArgs &x, IntVar y0, IntVar y1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_{y_0}=y_1$. More...
 
void element (Home home, const IntVarArgs &x, IntVar y0, int y1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_{y_0}=y_1$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
void wait (Home home, IntVar x, std::function< void(Space &home)> c, IntPropLevel ipl=IPL_DEF)
 Execute c when x becomes assigned. More...
 
void wait (Home home, BoolVar x, std::function< void(Space &home)> c, IntPropLevel ipl=IPL_DEF)
 Execute c when x becomes assigned. More...
 
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. More...
 
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. More...
 
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. More...
 
void when (Home home, BoolVar x, std::function< void(Space &home)> t, IntPropLevel ipl=IPL_DEF)
 Execute t (then) when x is assigned one. More...
 
template<class Char , class Traits >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const DFA &d)
 
template<class Char , class Traits , class T >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const TupleSet &ts)
 
void extensional (Home home, const IntVarArgs &x, DFA d, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for extensional constraint described by a DFA. More...
 
void extensional (Home home, const BoolVarArgs &x, DFA d, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for extensional constraint described by a DFA. More...
 
void extensional (Home home, const IntVarArgs &x, const TupleSet &t, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$. More...
 
void extensional (Home home, const BoolVarArgs &x, const TupleSet &t, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$. More...
 
void count (Home home, const IntVarArgs &x, const IntVarArgs &c, const IntArgs &v, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint. More...
 
void count (Home home, const IntVarArgs &x, const IntVarArgs &c, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint. More...
 
void count (Home home, const IntVarArgs &x, const IntSetArgs &c, const IntArgs &v, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint. More...
 
void count (Home home, const IntVarArgs &x, const IntSetArgs &c, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint. More...
 
void count (Home home, const IntVarArgs &x, const IntSet &c, const IntArgs &v, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint. More...
 
template<class Char , class Traits >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const IntSet &is)
 
IntPropLevel vbd (IntPropLevel ipl)
 Extract value, bounds, or domain propagation from propagation level. More...
 
IntPropLevel sm (IntPropLevel ipl)
 Extract speed or memory from propagation level. More...
 
IntPropLevel ba (IntPropLevel ipl)
 Extract basic or advanced from propagation level. More...
 
IntRelType swap (IntRelType irt)
 Return swapped relation type of irt. More...
 
IntRelType neg (IntRelType irt)
 Return negated relation type of irt. More...
 
SymmetryHandle VariableSymmetry (const IntVarArgs &x)
 Variables in x are interchangeable. More...
 
SymmetryHandle VariableSymmetry (const BoolVarArgs &x)
 Variables in x are interchangeable. More...
 
SymmetryHandle VariableSymmetry (const IntVarArgs &x, const IntArgs &indices)
 Specified variables in x are interchangeable. More...
 
SymmetryHandle ValueSymmetry (const IntArgs &v)
 Values in v are interchangeable. More...
 
SymmetryHandle ValueSymmetry (const IntSet &v)
 Values in v are interchangeable. More...
 
SymmetryHandle ValueSymmetry (IntVar vars)
 All values in the domain of the given variable are interchangeable. More...
 
SymmetryHandle VariableSequenceSymmetry (const IntVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable. More...
 
SymmetryHandle VariableSequenceSymmetry (const BoolVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable. More...
 
SymmetryHandle ValueSequenceSymmetry (const IntArgs &v, int ss)
 Value sequences in v of size ss are interchangeable. More...
 
SymmetryHandle values_reflect (int lower, int upper)
 The values from lower to upper (inclusive) can be reflected. More...
 
SymmetryHandle values_reflect (const IntVar &x)
 
void branch (Home home, const IntVarArgs &x, IntVarBranch vars, IntValBranch vals, const Symmetries &syms, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals with symmetry breaking. More...
 
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. More...
 
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. More...
 
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. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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}\}$. More...
 
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}\}$. More...
 
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$. More...
 
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$. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
void precede (Home home, const IntVarArgs &x, int s, int t, IntPropLevel=IPL_DEF)
 Post propagator that s precedes t in x. More...
 
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. More...
 
Reify eqv (BoolVar x)
 Use equivalence for reification. More...
 
Reify imp (BoolVar x)
 Use implication for reification. More...
 
Reify pmi (BoolVar x)
 Use reverse implication for reification. More...
 
void rel (Home home, IntVar x, IntRelType irt, int c, IntPropLevel ipl=IPL_DEF)
 Propagates $ x \sim_{irt} c$. More...
 
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|$. More...
 
void rel (Home home, IntVar x0, IntRelType irt, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_0 \sim_{irt} x_1$. More...
 
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|$. More...
 
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$. More...
 
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$. More...
 
void rel (Home home, const IntVarArgs &x, IntRelType irt, IntPropLevel ipl=IPL_DEF)
 Post propagator for relation among elements in x. More...
 
void rel (Home home, const IntVarArgs &x, IntRelType irt, const IntVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post propagator for relation between x and y. More...
 
void rel (Home home, const IntVarArgs &x, IntRelType irt, const IntArgs &y, IntPropLevel ipl=IPL_DEF)
 Post propagator for relation between x and y. More...
 
void rel (Home home, const IntArgs &x, IntRelType irt, const IntVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post propagator for relation between x and y. More...
 
void relax (Home home, const IntVarArgs &x, const IntVarArgs &sx, Rnd r, double p)
 
void relax (Home home, const BoolVarArgs &x, const BoolVarArgs &sx, Rnd r, double p)
 
void sequence (Home home, const IntVarArgs &x, const IntSet &s, int q, int l, int u, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\operatorname{sequence}(x,s,q,l,u)$. More...
 
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)$. More...
 
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. More...
 
void sorted (Home home, const IntVarArgs &x, const IntVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post propagator that y is x sorted in increasing order. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void unary (Home home, const IntVarArgs &s, const IntArgs &p, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on unary resources. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void unshare (Home home, IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Replace multiple variable occurences in x by fresh variables. More...
 
void unshare (Home home, BoolVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Replace multiple variable occurences in x by fresh variables. More...
 
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)
 
SymmetryHandle values_reflect (IntVar x)
 The values in the domain of \x can be reflected. More...
 
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 T1 , class T2 >
bool operator== (space_allocator< T1 > const &al1, space_allocator< T2 > const &al2) throw ()
 Tests two space allocators for equality. More...
 
template<class T1 , class T2 >
bool operator!= (space_allocator< T1 > const &al1, space_allocator< T2 > const &al2) throw ()
 Tests two space allocators for inequality. More...
 
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 ()
 
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 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 View >
bool __before (const View &x, const View &y)
 
template<class X , class Y >
bool __same (const X &x, const Y &y)
 
template<class X , class Y >
bool __shared (const X &x, const Y &y)
 
template<class T >
ArrayTraits< PrimArgArray< T > >::ArgsType operator+ (const PrimArgArray< T > &x, const PrimArgArray< T > &y)
 
template<class T >
ArrayTraits< PrimArgArray< T > >::ArgsType operator+ (const PrimArgArray< T > &x, const T &y)
 
template<class T >
ArrayTraits< PrimArgArray< T > >::ArgsType operator+ (const T &x, const PrimArgArray< T > &y)
 
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 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 VarBranch >
TieBreak< VarBranchtiebreak (VarBranch a, VarBranch b)
 Combine variable selection criteria a and b for tie-breaking. More...
 
template<class VarBranch >
TieBreak< VarBranchtiebreak (VarBranch a, VarBranch b, VarBranch c)
 Combine variable selection criteria a, b, and c for tie-breaking. More...
 
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. More...
 
void branch (Home home, std::function< void(Space &home)> f)
 Call the function f (with the current space as argument) for branching. More...
 
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. More...
 
template<class Char , class Traits >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const CHB &chb)
 
bool me_failed (ModEvent me)
 Check whether modification event me is failed. More...
 
bool me_modified (ModEvent me)
 Check whether modification event me describes variable modification. More...
 
template<class Char , class Traits , class T >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const SharedArray< T > &x)
 
TFE operator- (const TFE &e)
 Return negative expression of e. More...
 
TFE propagator (PropagatorGroup g)
 Only propagators (but not post functions) from g are considered. More...
 
TFE post (PropagatorGroup g)
 Only post functions (but not propagators) from g are considered. More...
 
TFE operator+ (TFE l, const TFE &r)
 Disjunctive combination of trace filter expressions l and r. More...
 
TFE operator+ (const TFE &e)
 Positive expression. More...
 
TFE operator- (TFE l, const TFE &r)
 Combine positive expression l and negative expression r. More...
 
void trace (Home home, TraceFilter tf, int te=(TE_PROPAGATE|TE_COMMIT), Tracer &t=StdTracer::def)
 Create tracer. More...
 
void trace (Home home, int te=(TE_PROPAGATE|TE_COMMIT), Tracer &t=StdTracer::def)
 Create tracer. More...
 
BoolExpr operator&& (const BoolExpr &, const BoolExpr &)
 Conjunction of Boolean expressions. More...
 
BoolExpr operator|| (const BoolExpr &, const BoolExpr &)
 Disjunction of Boolean expressions. More...
 
BoolExpr operator^ (const BoolExpr &, const BoolExpr &)
 Exclusive-or of Boolean expressions. More...
 
BoolExpr operator! (const BoolExpr &)
 Negated Boolean expression. More...
 
BoolExpr operator!= (const BoolExpr &, const BoolExpr &)
 Non-equivalence of Boolean expressions. More...
 
BoolExpr operator== (const BoolExpr &, const BoolExpr &)
 Equivalence of Boolean expressions. More...
 
BoolExpr operator>> (const BoolExpr &, const BoolExpr &)
 Implication of Boolean expressions. More...
 
BoolExpr operator<< (const BoolExpr &, const BoolExpr &)
 Reverse implication of Boolean expressions. More...
 
BoolVar expr (Home home, const BoolExpr &e, IntPropLevel ipl=IPL_DEF)
 Post Boolean expression and return its value. More...
 
void rel (Home home, const BoolExpr &e, IntPropLevel ipl=IPL_DEF)
 Post Boolean relation. More...
 
BoolExpr element (const BoolVarArgs &x, const LinIntExpr &y)
 Return expression for $x[y]$. More...
 
LinFloatExpr abs (const LinFloatExpr &e)
 Return expression for $|e|$. More...
 
LinFloatExpr min (const LinFloatExpr &x, const LinFloatExpr &y)
 Return expression for $\min(x,y)$. More...
 
LinFloatExpr min (const FloatVarArgs &x)
 Return expression for $\min(x)$. More...
 
LinFloatExpr max (const LinFloatExpr &x, const LinFloatExpr &y)
 Return expression for $\max(x,y)$. More...
 
LinFloatExpr max (const FloatVarArgs &x)
 Return expression for $\max(x)$. More...
 
LinFloatExpr operator* (const FloatVar &, const FloatVar &)
 Return expression as product of float variables. More...
 
LinFloatExpr operator* (const LinFloatExpr &, const FloatVar &)
 Return expression as product of linear float expression and float variable. More...
 
LinFloatExpr operator* (const FloatVar &, const LinFloatExpr &)
 Return expression as product of float variable and linear float expression. More...
 
LinFloatExpr operator* (const LinFloatExpr &x, const LinFloatExpr &y)
 Return expression for $x\cdot y$. More...
 
LinFloatExpr operator/ (const LinFloatExpr &x, const LinFloatExpr &y)
 Return expression for $x/y$. More...
 
LinFloatExpr sqr (const LinFloatExpr &x)
 Return expression for $x^2$. More...
 
LinFloatExpr sqrt (const LinFloatExpr &x)
 Return expression for $\sqrt{x}$. More...
 
LinFloatExpr pow (const LinFloatExpr &x, int n)
 Return expression for $x^n$. More...
 
LinFloatExpr nroot (const LinFloatExpr &x, int n)
 Return expression for $x^{1/n}$. More...
 
LinFloatExpr exp (const LinFloatExpr &x)
 Return expression for $ \mathrm{exp}(x)$. More...
 
LinFloatExpr log (const LinFloatExpr &x)
 Return expression for $ \mathrm{log}(x)$. More...
 
LinFloatExpr asin (const LinFloatExpr &x)
 Return expression for $ \mathrm{asin}(x)$. More...
 
LinFloatExpr sin (const LinFloatExpr &x)
 Return expression for $ \mathrm{sin}(x)$. More...
 
LinFloatExpr acos (const LinFloatExpr &x)
 Return expression for $ \mathrm{acos}(x)$. More...
 
LinFloatExpr cos (const LinFloatExpr &x)
 Return expression for $ \mathrm{cos}(x)$. More...
 
LinFloatExpr atan (const LinFloatExpr &x)
 Return expression for $ \mathrm{atan}(x)$. More...
 
LinFloatExpr tan (const LinFloatExpr &x)
 Return expression for $ \mathrm{tan}(x)$. More...
 
LinFloatExpr operator+ (const FloatVal &, const FloatVar &)
 Construct linear float expression as sum of float variable and float. More...
 
LinFloatExpr operator+ (const FloatVal &, const LinFloatExpr &)
 Construct linear float expression as sum of linear float expression and float. More...
 
LinFloatExpr operator+ (const FloatVar &, const FloatVal &)
 Construct linear float expression as sum of float variable and float. More...
 
LinFloatExpr operator+ (const LinFloatExpr &, const FloatVal &)
 Construct linear float expression as sum of linear float expression and float. More...
 
LinFloatExpr operator+ (const FloatVar &, const FloatVar &)
 Construct linear float expression as sum of float variables. More...
 
LinFloatExpr operator+ (const FloatVar &, const LinFloatExpr &)
 Construct linear float expression as sum of float variable and linear float expression. More...
 
LinFloatExpr operator+ (const LinFloatExpr &, const FloatVar &)
 Construct linear float expression as sum of linear float expression and float variable. More...
 
LinFloatExpr operator+ (const LinFloatExpr &, const LinFloatExpr &)
 Construct linear float expression as sum of linear float expressions. More...
 
LinFloatExpr operator- (const FloatVal &, const FloatVar &)
 Construct linear float expression as sum of float variable and float. More...
 
LinFloatExpr operator- (const FloatVal &, const LinFloatExpr &)
 Construct linear float expression as sum of float and linear float expression. More...
 
LinFloatExpr operator- (const FloatVar &, const FloatVal &)
 Construct linear float expression as sum of float variable and float. More...
 
LinFloatExpr operator- (const LinFloatExpr &, const FloatVal &)
 Construct linear float expression as sum of linear float expression and float. More...
 
LinFloatExpr operator- (const FloatVar &, const FloatVar &)
 Construct linear float expression as sum of float variables. More...
 
LinFloatExpr operator- (const FloatVar &, const LinFloatExpr &)
 Construct linear float expression as sum of float variable and linear float expression. More...
 
LinFloatExpr operator- (const LinFloatExpr &, const FloatVar &)
 Construct linear float expression as sum of linear float expression and float variable. More...
 
LinFloatExpr operator- (const LinFloatExpr &, const LinFloatExpr &)
 Construct linear float expression as sum of linear float expressions. More...
 
LinFloatExpr operator- (const FloatVar &)
 Construct linear float expression as negative of float variable. More...
 
LinFloatExpr operator- (const LinFloatExpr &)
 Construct linear float expression as negative of linear float expression. More...
 
LinFloatExpr operator* (const FloatVal &, const FloatVar &)
 Construct linear float expression as product of float coefficient and float variable. More...
 
LinFloatExpr operator* (const FloatVar &, const FloatVal &)
 Construct linear float expression as product of float coefficient and float variable. More...
 
LinFloatExpr operator* (const LinFloatExpr &, const FloatVal &)
 Construct linear float expression as product of float coefficient and linear float expression. More...
 
LinFloatExpr operator* (const FloatVal &, const LinFloatExpr &)
 Construct linear float expression as product of float coefficient and linear float expression. More...
 
LinFloatExpr sum (const FloatVarArgs &x)
 Construct linear float expression as sum of float variables. More...
 
LinFloatExpr sum (const FloatValArgs &a, const FloatVarArgs &x)
 Construct linear float expression as sum of float variables with coefficients. More...
 
FloatVar expr (Home home, const LinFloatExpr &e)
 Post float expression and return its value. More...
 
LinFloatRel operator== (const FloatVal &l, const FloatVar &r)
 Construct linear float equality relation. More...
 
LinFloatRel operator== (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float equality relation. More...
 
LinFloatRel operator== (const FloatVar &l, const FloatVal &r)
 Construct linear float equality relation. More...
 
LinFloatRel operator== (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float equality relation. More...
 
LinFloatRel operator== (const FloatVar &l, const FloatVar &r)
 Construct linear float equality relation. More...
 
LinFloatRel operator== (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float equality relation. More...
 
LinFloatRel operator== (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float equality relation. More...
 
LinFloatRel operator== (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float equality relation. More...
 
LinFloatRel operator!= (const FloatVal &l, const FloatVar &r)
 Construct linear float disequality relation. More...
 
LinFloatRel operator!= (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float disequality relation. More...
 
LinFloatRel operator!= (const FloatVar &l, const FloatVal &r)
 Construct linear float disequality relation. More...
 
LinFloatRel operator!= (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float disequality relation. More...
 
LinFloatRel operator!= (const FloatVar &l, const FloatVar &r)
 Construct linear float disequality relation. More...
 
LinFloatRel operator!= (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float disequality relation. More...
 
LinFloatRel operator!= (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float disequality relation. More...
 
LinFloatRel operator!= (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float disequality relation. More...
 
LinFloatRel operator<= (const FloatVal &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator<= (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator<= (const FloatVar &l, const FloatVal &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator<= (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator<= (const FloatVar &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator<= (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator<= (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator<= (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator< (const FloatVal &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator< (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator< (const FloatVar &l, const FloatVal &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator< (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator< (const FloatVar &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator< (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator< (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator< (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator>= (const FloatVal &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator>= (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator>= (const FloatVar &l, const FloatVal &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator>= (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator>= (const FloatVar &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator>= (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator>= (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator>= (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator> (const FloatVal &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator> (const FloatVal &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator> (const FloatVar &l, const FloatVal &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator> (const LinFloatExpr &l, const FloatVal &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator> (const FloatVar &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator> (const FloatVar &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator> (const LinFloatExpr &l, const FloatVar &r)
 Construct linear float inequality relation. More...
 
LinFloatRel operator> (const LinFloatExpr &l, const LinFloatExpr &r)
 Construct linear float inequality relation. More...
 
LinIntExpr abs (const LinIntExpr &e)
 Return expression for $|e|$. More...
 
LinIntExpr min (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $\min(x,y)$. More...
 
LinIntExpr max (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $\max(x,y)$. More...
 
LinIntExpr min (const IntVarArgs &x)
 Return expression for $\min(x)$. More...
 
LinIntExpr max (const IntVarArgs &x)
 Return expression for $\max(x)$. More...
 
LinIntExpr operator* (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $x\cdot y$. More...
 
LinIntExpr sqr (const LinIntExpr &x)
 Return expression for $x^2$. More...
 
LinIntExpr sqrt (const LinIntExpr &x)
 Return expression for $\lfloor\sqrt{x}\rfloor$. More...
 
LinIntExpr pow (const LinIntExpr &x, int n)
 Return expression for $x^n$. More...
 
LinIntExpr nroot (const LinIntExpr &x, int n)
 Return expression for $\lfloor\sqrt[n]{x}\rfloor$. More...
 
LinIntExpr operator/ (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $x\ \mathrm{div}\ y$. More...
 
LinIntExpr operator% (const LinIntExpr &x, const LinIntExpr &y)
 Return expression for $x\ \mathrm{mod}\ y$. More...
 
LinIntExpr element (const IntVarArgs &x, const LinIntExpr &y)
 Return expression for $x[y]$. More...
 
LinIntExpr element (const IntArgs &x, const LinIntExpr &y)
 Return expression for $x[y]$. More...
 
LinIntExpr ite (const BoolExpr &b, const LinIntExpr &x, const LinIntExpr &y)
 Return expression for if-then-else $b?x:y$. More...
 
LinIntExpr operator+ (int, const IntVar &)
 Construct linear expression as sum of integer variable and integer. More...
 
LinIntExpr operator+ (int, const BoolVar &)
 Construct linear expression as sum of Boolean variable and integer. More...
 
LinIntExpr operator+ (int, const LinIntExpr &)
 Construct linear expression as sum of linear expression and integer. More...
 
LinIntExpr operator+ (const IntVar &, int)
 Construct linear expression as sum of integer variable and integer. More...
 
LinIntExpr operator+ (const BoolVar &, int)
 Construct linear expression as sum of Boolean variable and integer. More...
 
LinIntExpr operator+ (const LinIntExpr &, int)
 Construct linear expression as sum of linear expression and integer. More...
 
LinIntExpr operator+ (const IntVar &, const IntVar &)
 Construct linear expression as sum of integer variables. More...
 
LinIntExpr operator+ (const IntVar &, const BoolVar &)
 Construct linear expression as sum of integer and Boolean variable. More...
 
LinIntExpr operator+ (const BoolVar &, const IntVar &)
 Construct linear expression as sum of Boolean and integer variable. More...
 
LinIntExpr operator+ (const BoolVar &, const BoolVar &)
 Construct linear expression as sum of Boolean variables. More...
 
LinIntExpr operator+ (const IntVar &, const LinIntExpr &)
 Construct linear expression as sum of integer variable and linear expression. More...
 
LinIntExpr operator+ (const BoolVar &, const LinIntExpr &)
 Construct linear expression as sum of Boolean variable and linear expression. More...
 
LinIntExpr operator+ (const LinIntExpr &, const IntVar &)
 Construct linear expression as sum of linear expression and integer variable. More...
 
LinIntExpr operator+ (const LinIntExpr &, const BoolVar &)
 Construct linear expression as sum of linear expression and Boolean variable. More...
 
LinIntExpr operator+ (const LinIntExpr &, const LinIntExpr &)
 Construct linear expression as sum of linear expressions. More...
 
LinIntExpr operator- (int, const IntVar &)
 Construct linear expression as sum of integer variable and integer. More...
 
LinIntExpr operator- (int, const BoolVar &)
 Construct linear expression as sum of Boolean variable and integer. More...
 
LinIntExpr operator- (int, const LinIntExpr &)
 Construct linear expression as sum of integer and linear expression. More...
 
LinIntExpr operator- (const IntVar &, int)
 Construct linear expression as sum of integer variable and integer. More...
 
LinIntExpr operator- (const BoolVar &, int)
 Construct linear expression as sum of Boolean variable and integer. More...
 
LinIntExpr operator- (const LinIntExpr &, int)
 Construct linear expression as sum of linear expression and integer. More...
 
LinIntExpr operator- (const IntVar &, const IntVar &)
 Construct linear expression as sum of integer variables. More...
 
LinIntExpr operator- (const IntVar &, const BoolVar &)
 Construct linear expression as sum of integer and Boolean variable. More...
 
LinIntExpr operator- (const BoolVar &, const IntVar &)
 Construct linear expression as sum of Boolean and integer variable. More...
 
LinIntExpr operator- (const BoolVar &, const BoolVar &)
 Construct linear expression as sum of Boolean variables. More...
 
LinIntExpr operator- (const IntVar &, const LinIntExpr &)
 Construct linear expression as sum of integer variable and linear expression. More...
 
LinIntExpr operator- (const BoolVar &, const LinIntExpr &)
 Construct linear expression as sum of Boolean variable and linear expression. More...
 
LinIntExpr operator- (const LinIntExpr &, const IntVar &)
 Construct linear expression as sum of linear expression and integer variable. More...
 
LinIntExpr operator- (const LinIntExpr &, const BoolVar &)
 Construct linear expression as sum of linear expression and Boolean variable. More...
 
LinIntExpr operator- (const LinIntExpr &, const LinIntExpr &)
 Construct linear expression as sum of linear expressions. More...
 
LinIntExpr operator- (const IntVar &)
 Construct linear expression as negative of integer variable. More...
 
LinIntExpr operator- (const BoolVar &)
 Construct linear expression as negative of Boolean variable. More...
 
LinIntExpr operator- (const LinIntExpr &)
 Construct linear expression as negative of linear expression. More...
 
LinIntExpr operator* (int, const IntVar &)
 Construct linear expression as product of integer coefficient and integer variable. More...
 
LinIntExpr operator* (int, const BoolVar &)
 Construct linear expression as product of integer coefficient and Boolean variable. More...
 
LinIntExpr operator* (const IntVar &, int)
 Construct linear expression as product of integer coefficient and integer variable. More...
 
LinIntExpr operator* (const BoolVar &, int)
 Construct linear expression as product of integer coefficient and Boolean variable. More...
 
LinIntExpr operator* (const LinIntExpr &, int)
 Construct linear expression as product of integer coefficient and linear expression. More...
 
LinIntExpr operator* (int, const LinIntExpr &)
 Construct linear expression as product of integer coefficient and linear expression. More...
 
LinIntExpr sum (const IntVarArgs &x)
 Construct linear expression as sum of integer variables. More...
 
LinIntExpr sum (const IntArgs &a, const IntVarArgs &x)
 Construct linear expression as sum of integer variables with coefficients. More...
 
LinIntExpr sum (const BoolVarArgs &x)
 Construct linear expression as sum of Boolean variables. More...
 
LinIntExpr sum (const IntArgs &a, const BoolVarArgs &x)
 Construct linear expression as sum of Boolean variables with coefficients. More...
 
LinIntExpr sum (const Slice< IntArgs > &slice)
 Construct linear expression as sum of IntArgs Slice elements. More...
 
LinIntExpr sum (const Matrix< IntArgs > &matrix)
 Construct linear expression as sum of IntArgs Matrix elements. More...
 
LinIntExpr sum (const IntArgs &args)
 Construct linear expression as sum of IntArgs. More...
 
IntVar expr (Home home, const LinIntExpr &e, IntPropLevel ipl=IPL_DEF)
 Post linear expression and return its value. More...
 
LinIntRel operator== (int l, const IntVar &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (int l, const BoolVar &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (int l, const LinIntExpr &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const IntVar &l, int r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const BoolVar &l, int r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const LinIntExpr &l, int r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const IntVar &l, const IntVar &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const IntVar &l, const BoolVar &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const BoolVar &l, const IntVar &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const BoolVar &l, const BoolVar &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const IntVar &l, const LinIntExpr &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const BoolVar &l, const LinIntExpr &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const LinIntExpr &l, const IntVar &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const LinIntExpr &l, const BoolVar &r)
 Construct linear equality relation. More...
 
LinIntRel operator== (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear equality relation. More...
 
LinIntRel operator!= (int l, const IntVar &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (int l, const BoolVar &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (int l, const LinIntExpr &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const IntVar &l, int r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const BoolVar &l, int r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const LinIntExpr &l, int r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const IntVar &l, const IntVar &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const IntVar &l, const BoolVar &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const BoolVar &l, const IntVar &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const BoolVar &l, const BoolVar &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const IntVar &l, const LinIntExpr &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const BoolVar &l, const LinIntExpr &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const LinIntExpr &l, const IntVar &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const LinIntExpr &l, const BoolVar &r)
 Construct linear disequality relation. More...
 
LinIntRel operator!= (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear disequality relation. More...
 
LinIntRel operator< (int l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (int l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (int l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const IntVar &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const BoolVar &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const LinIntExpr &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const IntVar &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const IntVar &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const BoolVar &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const IntVar &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const BoolVar &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const LinIntExpr &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const LinIntExpr &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator< (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (int l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (int l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (int l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const IntVar &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const BoolVar &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const LinIntExpr &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const IntVar &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const IntVar &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const BoolVar &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const IntVar &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const BoolVar &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const LinIntExpr &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const LinIntExpr &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator<= (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (int l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (int l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (int l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const IntVar &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const BoolVar &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const LinIntExpr &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const IntVar &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const IntVar &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const BoolVar &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const IntVar &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const BoolVar &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const LinIntExpr &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const LinIntExpr &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator> (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (int l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (int l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (int l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const IntVar &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const BoolVar &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const LinIntExpr &l, int r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const IntVar &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const IntVar &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const BoolVar &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const BoolVar &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const IntVar &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const BoolVar &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const LinIntExpr &l, const IntVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const LinIntExpr &l, const BoolVar &r)
 Construct linear inequality relation. More...
 
LinIntRel operator>= (const LinIntExpr &l, const LinIntExpr &r)
 Construct linear inequality relation. More...
 
template<class A >
SymmetryHandle rows_interchange (const Matrix< A > &m)
 Interchangeable rows symmetry specification. More...
 
template<class A >
SymmetryHandle columns_interchange (const Matrix< A > &m)
 Interchangeable columns symmetry specification. More...
 
template<class A >
SymmetryHandle rows_reflect (const Matrix< A > &m)
 Reflect rows symmetry specification. More...
 
template<class A >
SymmetryHandle columns_reflect (const Matrix< A > &m)
 Reflect columns symmetry specification. More...
 
template<class A >
SymmetryHandle diagonal_reflect (const Matrix< A > &m)
 Reflect around main diagonal symmetry specification. More...
 
template<class A >
Slice< A >::ArgsType operator+ (const Slice< A > &x, const Slice< A > &y)
 Concatenate x and y. More...
 
template<class A >
Slice< A >::ArgsType operator+ (const Slice< A > &x, const typename ArrayTraits< A >::ArgsType &y)
 Concatenate x and y. More...
 
template<class A >
Slice< A >::ArgsType operator+ (const typename ArrayTraits< A >::ArgsType &x, const Slice< A > &y)
 Concatenate x and y. More...
 
template<class A >
Slice< A >::ArgsType operator+ (const Slice< A > &x, const typename ArrayTraits< A >::ValueType &y)
 Concatenate x and y. More...
 
template<class A >
Slice< A >::ArgsType operator+ (const typename ArrayTraits< A >::ValueType &x, const Slice< A > &y)
 Concatenate x and y. More...
 
template<class Char , class Traits , class A >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const Matrix< A > &m)
 
template<class Char , class Traits , class A >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const Slice< A > &s)
 
void element (Home home, const Matrix< IntArgs > &m, IntVar x, IntVar y, IntVar z, IntPropLevel ipl)
 
void element (Home home, const Matrix< IntArgs > &m, IntVar x, IntVar y, BoolVar z, IntPropLevel ipl)
 
void element (Home home, const Matrix< IntVarArgs > &m, IntVar x, IntVar y, IntVar z, IntPropLevel ipl)
 
void element (Home home, const Matrix< BoolVarArgs > &m, IntVar x, IntVar y, BoolVar z, IntPropLevel ipl)
 
void element (Home home, const Matrix< IntSetArgs > &m, IntVar x, IntVar y, SetVar z)
 
void element (Home home, const Matrix< SetVarArgs > &m, IntVar x, IntVar y, SetVar z)
 
template<class Char , class Traits >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const REG &r)
 
SetExpr operator& (const SetExpr &, const SetExpr &)
 Intersection of set expressions. More...
 
SetExpr operator| (const SetExpr &, const SetExpr &)
 Union of set expressions. More...
 
SetExpr operator+ (const SetExpr &, const SetExpr &)
 Disjoint union of set expressions. More...
 
SetExpr operator- (const SetExpr &)
 Complement expression. More...
 
SetExpr operator- (const SetExpr &, const SetExpr &)
 Difference of set expressions. More...
 
SetExpr singleton (const LinIntExpr &)
 Singleton expression. More...
 
SetExpr inter (const SetVarArgs &)
 Intersection of set variables. More...
 
SetExpr setunion (const SetVarArgs &)
 Union of set variables. More...
 
SetExpr setdunion (const SetVarArgs &)
 Disjoint union of set variables. More...
 
LinIntExpr cardinality (const SetExpr &)
 Cardinality of set expression. More...
 
LinIntExpr min (const SetExpr &)
 Minimum element of set expression. More...
 
LinIntExpr max (const SetExpr &)
 Minimum element of set expression. More...
 
SetVar expr (Home home, const SetExpr &e)
 Post set expression and return its value. More...
 
SetRel operator== (const SetExpr &, const SetExpr &)
 Equality of set expressions. More...
 
SetRel operator!= (const SetExpr &, const SetExpr &)
 Disequality of set expressions. More...
 
SetCmpRel operator<= (const SetExpr &, const SetExpr &)
 Subset of set expressions. More...
 
BoolExpr operator<= (const SetCmpRel &, const SetExpr &)
 Subset of set expressions. More...
 
SetCmpRel operator>= (const SetExpr &, const SetExpr &)
 Superset of set expressions. More...
 
BoolExpr operator>= (const SetCmpRel &, const SetExpr &)
 Superset of set expressions. More...
 
SetRel operator|| (const SetExpr &, const SetExpr &)
 Disjointness of set expressions. More...
 
BoolVar channel (Home home, IntVar x, IntPropLevel ipl=IPL_DEF)
 Return Boolean variable equal to $x$. More...
 
IntVar channel (Home home, BoolVar b, IntPropLevel ipl=IPL_DEF)
 Return integer variable equal to $b$. More...
 
IntVar channel (Home home, FloatVar f)
 Return integer variable equal to $f$. More...
 
SetVar channel (Home home, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Return set variable equal to $\{x_0,\dots,x_{n-1}\}$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
void lex (Home home, const IntVarArgs &x, IntRelType r, const IntVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post lexical order between x and y. More...
 
void lex (Home home, const BoolVarArgs &x, IntRelType r, const BoolVarArgs &y, IntPropLevel ipl=IPL_DEF)
 Post lexical order between x and y. More...
 
void values (Home home, const IntVarArgs &x, IntSet y, IntPropLevel ipl=IPL_DEF)
 Post constraint $\{x_0,\dots,x_{n-1}\}=y$. More...
 
void channel (Home home, const IntVarArgs &x, SetVar y)
 Post constraint $\{x_0,\dots,x_{n-1}\}=y$. More...
 
void range (Home home, const IntVarArgs &x, SetVar y, SetVar z)
 Post constraint $\bigcup_{i\in y}\{x_i\}=z$. More...
 
void roots (Home home, const IntVarArgs &x, SetVar y, SetVar z)
 Post constraint $\bigcup_{i\in z}\{j\ |\ x_j=i\}=z$. More...
 
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. More...
 
template<class T >
SEB bab (const Search::Options &o=Search::Options::def)
 Return a depth-first branch-and-bound search engine builder. More...
 
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. More...
 
template<class T >
SEB dfs (const Search::Options &o=Search::Options::def)
 Return a depth-first search engine builder. More...
 
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. More...
 
template<class T >
SEB lds (const Search::Options &o=Search::Options::def)
 Return a limited discrepancy search engine builder. More...
 
template<class T , template< class > class E>
T * pbs (T *s, const Search::Options &o=Search::Options::def)
 Run a portfolio of search engines. More...
 
template<class T , template< class > class E>
SEB pbs (const Search::Options &o)
 Return a portfolio search engine builder. More...
 
template<class T , template< class > class E>
T * rbs (T *s, const Search::Options &o)
 Perform restart-based search. More...
 
template<class T , template< class > class E>
SEB rbs (const Search::Options &o)
 Return a restart search engine builder. More...
 
template<class T >
SEB pbs (const Search::Options &o=Search::Options::def)
 Return a portfolio search engine builder. More...
 
void ite (Home home, BoolVar b, SetVar x, SetVar y, SetVar z)
 Post propagator for if-then-else constraint. More...
 
SetAssign SET_ASSIGN_MIN_INC (void)
 
SetAssign SET_ASSIGN_MIN_EXC (void)
 
SetAssign SET_ASSIGN_MED_INC (void)
 
SetAssign SET_ASSIGN_MED_EXC (void)
 
SetAssign SET_ASSIGN_MAX_INC (void)
 
SetAssign SET_ASSIGN_MAX_EXC (void)
 
SetAssign SET_ASSIGN_RND_INC (Rnd r)
 
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. More...
 
SetValBranch SET_VAL_MIN_INC (void)
 
SetValBranch SET_VAL_MIN_EXC (void)
 
SetValBranch SET_VAL_MED_INC (void)
 
SetValBranch SET_VAL_MED_EXC (void)
 
SetValBranch SET_VAL_MAX_INC (void)
 
SetValBranch SET_VAL_MAX_EXC (void)
 
SetValBranch SET_VAL_RND_INC (Rnd r)
 
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. More...
 
SetVarBranch SET_VAR_NONE (void)
 
SetVarBranch SET_VAR_RND (Rnd r)
 
SetVarBranch SET_VAR_MERIT_MIN (SetBranchMerit bm, BranchTbl tbl)
 
SetVarBranch SET_VAR_MERIT_MAX (SetBranchMerit bm, BranchTbl tbl)
 
SetVarBranch SET_VAR_DEGREE_MIN (BranchTbl tbl)
 
SetVarBranch SET_VAR_DEGREE_MAX (BranchTbl tbl)
 
SetVarBranch SET_VAR_AFC_MIN (double d, BranchTbl tbl)
 
SetVarBranch SET_VAR_AFC_MIN (SetAFC a, BranchTbl tbl)
 
SetVarBranch SET_VAR_AFC_MAX (double d, BranchTbl tbl)
 
SetVarBranch SET_VAR_AFC_MAX (SetAFC a, BranchTbl tbl)
 
SetVarBranch SET_VAR_ACTION_MIN (double d, BranchTbl tbl)
 
SetVarBranch SET_VAR_ACTION_MIN (SetAction a, BranchTbl tbl)
 
SetVarBranch SET_VAR_ACTION_MAX (double d, BranchTbl tbl)
 
SetVarBranch SET_VAR_ACTION_MAX (SetAction a, BranchTbl tbl)
 
SetVarBranch SET_VAR_CHB_MIN (BranchTbl tbl)
 
SetVarBranch SET_VAR_CHB_MIN (SetCHB c, BranchTbl tbl)
 
SetVarBranch SET_VAR_CHB_MAX (BranchTbl tbl)
 
SetVarBranch SET_VAR_CHB_MAX (SetCHB c, BranchTbl tbl)
 
SetVarBranch SET_VAR_MIN_MIN (BranchTbl tbl)
 
SetVarBranch SET_VAR_MIN_MAX (BranchTbl tbl)
 
SetVarBranch SET_VAR_MAX_MIN (BranchTbl tbl)
 
SetVarBranch SET_VAR_MAX_MAX (BranchTbl tbl)
 
SetVarBranch SET_VAR_SIZE_MIN (BranchTbl tbl)
 
SetVarBranch SET_VAR_SIZE_MAX (BranchTbl tbl)
 
SetVarBranch SET_VAR_DEGREE_SIZE_MIN (BranchTbl tbl)
 
SetVarBranch SET_VAR_DEGREE_SIZE_MAX (BranchTbl tbl)
 
SetVarBranch SET_VAR_AFC_SIZE_MIN (double d, BranchTbl tbl)
 
SetVarBranch SET_VAR_AFC_SIZE_MIN (SetAFC a, BranchTbl tbl)
 
SetVarBranch SET_VAR_AFC_SIZE_MAX (double d, BranchTbl tbl)
 
SetVarBranch SET_VAR_AFC_SIZE_MAX (SetAFC a, BranchTbl tbl)
 
SetVarBranch SET_VAR_ACTION_SIZE_MIN (double d, BranchTbl tbl)
 
SetVarBranch SET_VAR_ACTION_SIZE_MIN (SetAction a, BranchTbl tbl)
 
SetVarBranch SET_VAR_ACTION_SIZE_MAX (double d, BranchTbl tbl)
 
SetVarBranch SET_VAR_ACTION_SIZE_MAX (SetAction a, BranchTbl tbl)
 
SetVarBranch SET_VAR_CHB_SIZE_MIN (BranchTbl tbl)
 
SetVarBranch SET_VAR_CHB_SIZE_MIN (SetCHB c, BranchTbl tbl)
 
SetVarBranch SET_VAR_CHB_SIZE_MAX (BranchTbl tbl)
 
SetVarBranch SET_VAR_CHB_SIZE_MAX (SetCHB c, BranchTbl tbl)
 
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. More...
 
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. More...
 
void branch (Home home, SetVar x, SetValBranch vals, SetVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void assign (Home home, const SetVarArgs &x, SetAssign vals, SetBranchFilter bf=nullptr, SetVarValPrint vvp=nullptr)
 Assign all x with value selection vals. More...
 
void assign (Home home, SetVar x, SetAssign vals, SetVarValPrint vvp=nullptr)
 Assign x with value selection vals. More...
 
void cardinality (Home home, SetVar x, unsigned int i, unsigned int j)
 Propagates $ i \leq |s| \leq j $. More...
 
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|$. More...
 
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 convex (Home home, SetVar x)
 
void convex (Home home, SetVar x, SetVar y)
 
void atmostOne (Home home, const SetVarArgs &xa, unsigned int c)
 
void dom (Home home, SetVar x, SetRelType r, int i)
 Propagates $ x \sim_r \{i\}$. More...
 
void dom (Home home, const SetVarArgs &x, SetRelType r, int i)
 Propagates $ x_i \sim_r \{i\}$ for all $0\leq i<|x|$. More...
 
void dom (Home home, SetVar x, SetRelType r, int i, int j)
 Propagates $ x \sim_r \{i,\dots,j\}$. More...
 
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|$. More...
 
void dom (Home home, SetVar x, SetRelType r, const IntSet &s)
 Propagates $ x \sim_r s$. More...
 
void dom (Home home, const SetVarArgs &x, SetRelType r, const IntSet &s)
 Propagates $ x \sim_r s$ for all $0\leq i<|x|$. More...
 
void dom (Home home, SetVar x, SetRelType rt, int i, Reify r)
 Post propagator for $ (x \sim_{rt} \{i\}) \equiv r $. More...
 
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 $. More...
 
void dom (Home home, SetVar x, SetRelType rt, const IntSet &s, Reify r)
 Post propagator for $ (x \sim_{rt} s) \equiv r $. More...
 
void dom (Home home, SetVar x, SetVar d)
 Constrain domain of x according to domain of d. More...
 
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|$. More...
 
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 rel (Home home, SetVar s, IntRelType rt, IntVar x)
 Post propagator for $|s|\geq 1 \land \forall i\in s:\ i \sim_{rt} x$. More...
 
void rel (Home home, SetVar s, IntRelType rt, IntVar x, Reify r)
 Post reified propagator for $\left(|s|\geq 1 \land \forall i\in s:\ i \sim_{rt} x\right)\equiv r$. More...
 
void 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 rel (Home home, IntVar x, IntRelType rt, SetVar s)
 Post propagator for $|s|\geq 1 \land \forall i\in s:\ x \sim_{rt} i$. More...
 
void rel (Home home, IntVar x, IntRelType rt, SetVar s, Reify r)
 Post reified propagator for. More...
 
SymmetryHandle VariableSymmetry (const SetVarArgs &x)
 
SymmetryHandle VariableSequenceSymmetry (const SetVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable. More...
 
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. More...
 
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. More...
 
void precede (Home home, const SetVarArgs &x, int s, int t)
 
void precede (Home home, const SetVarArgs &x, const IntArgs &c)
 
template<class View0 , class View1 >
bool viewarrayshared (const Space &home, const ViewArray< View0 > &va, const View1 &y)
 
template<>
bool viewarrayshared< Set::SingletonView, Set::SetView > (const Space &, const ViewArray< Set::SingletonView > &, const Set::SetView &)
 
void rel (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)
 
void rel (Home home, SetVar x, SetRelType r, SetVar y)
 Post propagator for $ x \sim_r y$. More...
 
void rel (Home home, SetVar s, SetRelType r, IntVar x)
 Post propagator for $ s \sim_r \{x\}$. More...
 
void rel (Home home, IntVar x, SetRelType r, SetVar s)
 Post propagator for $ \{x\} \sim_r s$. More...
 
void rel (Home home, SetVar x, SetRelType rt, SetVar y, Reify r)
 Post propagator for $ (x \sim_{rt} y) \equiv r$. More...
 
void rel (Home home, SetVar s, SetRelType rt, IntVar x, Reify r)
 Post propagator for $ (s \sim_{rt} \{x\}) \equiv r$. More...
 
void rel (Home home, IntVar x, SetRelType rt, SetVar s, Reify r)
 Post propagator for $ (\{x\} \sim_{rt} s) \equiv r $. More...
 
void relax (Home home, const SetVarArgs &x, const SetVarArgs &sx, Rnd r, double p)
 
void sequence (Home home, const SetVarArgs &xa)
 
void sequence (Home home, const SetVarArgs &xa, SetVar y)
 
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. More...
 
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. More...
 
template<class Char , class Traits >
std::basic_ostream< Char, Traits > & operator<< (std::basic_ostream< Char, Traits > &os, const SetVar &x)
 
Post propagator for f (x \diamond_{\mathit{op}} y) \sim_r z \f$ void rel(Home home
 
Select random variable (uniform distribution, for tie breaking) SetVarBranch SET_VAR_RND(Rnd r)
 
Include median element (rounding downwards) SetValBranch SET_VAL_MED_INC(void)
 
template<class T >
ptr_cast (void *p)
 Cast p into pointer of type T. More...
 

Variables

Function type for printing branching alternatives for set variables typedef std::function< void(const Space &home, const Brancher &b, unsigned int a, SetVar x, int i, const int &n, std::ostream &o)> SetVarValPrint
 
const ModEvent ME_GEN_FAILED = -1
 Generic modification event: failed variable. More...
 
const ModEvent ME_GEN_NONE = 0
 Generic modification event: no modification. More...
 
const ModEvent ME_GEN_ASSIGNED = 1
 Generic modification event: variable is assigned a value. More...
 
const PropCond PC_GEN_NONE = -1
 Propagation condition to be ignored (convenience) More...
 
const PropCond PC_GEN_ASSIGNED = 0
 Propagation condition for an assigned variable. More...
 
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. More...
 

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

◆ LiteralArgs

An array of literals.

Definition at line 97 of file ldsb.hh.

◆ IntSetArgs

Passing set arguments.

Definition at line 601 of file int.hh.

◆ IntSharedArray

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

Definition at line 1463 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 4201 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 4208 of file int.hh.

◆ BranchFilter

template<class Var >
using Gecode::BranchFilter = typedef std::function<bool(const Space& home, Var x, int i)>

Function type for branch filter functions.

Definition at line 45 of file brancher-filter.hpp.

◆ VarValPrint

template<class Var , class Val >
using Gecode::VarValPrint = typedef std::function<void(const Space& home, const Brancher& b, unsigned int a, Var x, int i, const Val& m, std::ostream& o)>

Function type for printing variable and value selection.

Definition at line 47 of file brancher-print.hpp.

◆ ModEvent

typedef int Gecode::ModEvent

Type for modification events.

Definition at line 142 of file core.hpp.

◆ PropCond

typedef int Gecode::PropCond

Type for propagation conditions.

Definition at line 152 of file core.hpp.

◆ MinimizeSpace

Class for minimizing integer cost.

Deprecated:
Use IntMinimizeSpace instead.

Definition at line 2241 of file minimodel.hh.

◆ MaximizeSpace

Class for maximizing integer cost.

Deprecated:
Use IntMaximizeSpace instead.

Definition at line 2246 of file minimodel.hh.

◆ SEB

Type for a search engine builder.

Definition at line 695 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 540 of file core.hpp.

Function Documentation

◆ abs() [1/5]

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

Post propagator for $ |x_0|=x_1$.

Definition at line 45 of file arithmetic.cpp.

◆ max() [1/14]

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

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

Definition at line 53 of file arithmetic.cpp.

◆ max() [2/14]

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 60 of file arithmetic.cpp.

◆ min() [1/14]

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

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

Definition at line 71 of file arithmetic.cpp.

◆ min() [2/14]

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 78 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 92 of file arithmetic.cpp.

◆ sqr() [1/5]

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

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

Definition at line 99 of file arithmetic.cpp.

◆ sqrt() [1/5]

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

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

Definition at line 106 of file arithmetic.cpp.

◆ pow() [1/6]

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 113 of file arithmetic.cpp.

◆ nroot() [1/5]

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 122 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 131 of file arithmetic.cpp.

◆ FLOAT_ASSIGN_MIN()

FloatAssign Gecode::FLOAT_ASSIGN_MIN ( void  )
inline

Select median value of the lower part.

Definition at line 59 of file assign.hpp.

◆ FLOAT_ASSIGN_MAX()

FloatAssign Gecode::FLOAT_ASSIGN_MAX ( void  )
inline

Select median value of the upper part.

Definition at line 64 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 69 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 74 of file assign.hpp.

◆ operator<<() [1/29]

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

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

◆ operator>>() [1/11]

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

Definition at line 48 of file val-sel.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 59 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 64 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 69 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 74 of file val.hpp.

◆ FLOAT_VAR_NONE()

FloatVarBranch Gecode::FLOAT_VAR_NONE ( void  )
inline

Select first unassigned variable.

Definition at line 101 of file var.hpp.

◆ FLOAT_VAR_MERIT_MIN()

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

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

Definition at line 106 of file var.hpp.

◆ FLOAT_VAR_MERIT_MAX()

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

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

Definition at line 111 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 116 of file var.hpp.

◆ FLOAT_VAR_DEGREE_MIN()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest degree.

Definition at line 121 of file var.hpp.

◆ FLOAT_VAR_DEGREE_MAX()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_MAX ( BranchTbl  tbl)
inline

Select variable with largest degree.

Definition at line 126 of file var.hpp.

◆ FLOAT_VAR_AFC_MIN() [1/2]

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

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

Definition at line 131 of file var.hpp.

◆ FLOAT_VAR_AFC_MIN() [2/2]

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

Select variable with smallest accumulated failure count.

Definition at line 136 of file var.hpp.

◆ FLOAT_VAR_AFC_MAX() [1/2]

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

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

Definition at line 141 of file var.hpp.

◆ FLOAT_VAR_AFC_MAX() [2/2]

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

Select variable with largest accumulated failure count.

Definition at line 146 of file var.hpp.

◆ FLOAT_VAR_ACTION_MIN() [1/2]

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

Select variable with lowest action with decay factor d.

Definition at line 151 of file var.hpp.

◆ FLOAT_VAR_ACTION_MIN() [2/2]

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

Select variable with lowest action.

Definition at line 156 of file var.hpp.

◆ FLOAT_VAR_ACTION_MAX() [1/2]

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

Select variable with highest action with decay factor d.

Definition at line 161 of file var.hpp.

◆ FLOAT_VAR_ACTION_MAX() [2/2]

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

Select variable with highest action.

Definition at line 166 of file var.hpp.

◆ FLOAT_VAR_CHB_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MIN ( BranchTbl  tbl)
inline

Select variable with lowest CHB Q-score.

Definition at line 171 of file var.hpp.

◆ FLOAT_VAR_CHB_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MIN ( FloatCHB  c,
BranchTbl  tbl 
)
inline

Select variable with lowest CHB Q-score.

Definition at line 176 of file var.hpp.

◆ FLOAT_VAR_CHB_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MAX ( BranchTbl  tbl)
inline

Select variable with highest CHB Q-score.

Definition at line 181 of file var.hpp.

◆ FLOAT_VAR_CHB_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MAX ( FloatCHB  c,
BranchTbl  tbl 
)
inline

Select variable with highest CHB Q-score.

Definition at line 186 of file var.hpp.

◆ FLOAT_VAR_MIN_MIN()

FloatVarBranch Gecode::FLOAT_VAR_MIN_MIN ( BranchTbl  tbl)
inline

Select variable with smallest min.

Definition at line 191 of file var.hpp.

◆ FLOAT_VAR_MIN_MAX()

FloatVarBranch Gecode::FLOAT_VAR_MIN_MAX ( BranchTbl  tbl)
inline

Select variable with largest min.

Definition at line 196 of file var.hpp.

◆ FLOAT_VAR_MAX_MIN()

FloatVarBranch Gecode::FLOAT_VAR_MAX_MIN ( BranchTbl  tbl)
inline

Select variable with smallest max.

Definition at line 201 of file var.hpp.

◆ FLOAT_VAR_MAX_MAX()

FloatVarBranch Gecode::FLOAT_VAR_MAX_MAX ( BranchTbl  tbl)
inline

Select variable with largest max.

Definition at line 206 of file var.hpp.

◆ FLOAT_VAR_SIZE_MIN()

FloatVarBranch Gecode::FLOAT_VAR_SIZE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest domain size.

Definition at line 211 of file var.hpp.

◆ FLOAT_VAR_SIZE_MAX()

FloatVarBranch Gecode::FLOAT_VAR_SIZE_MAX ( BranchTbl  tbl)
inline

Select variable with largest domain size.

Definition at line 216 of file var.hpp.

◆ FLOAT_VAR_DEGREE_SIZE_MIN()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_SIZE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest degree divided by domain size.

Definition at line 221 of file var.hpp.

◆ FLOAT_VAR_DEGREE_SIZE_MAX()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_SIZE_MAX ( BranchTbl  tbl)
inline

Select variable with largest degree divided by domain size.

Definition at line 226 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MIN() [1/2]

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

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

Definition at line 231 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MIN() [2/2]

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

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

Definition at line 236 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MAX() [1/2]

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

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

Definition at line 241 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MAX() [2/2]

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

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

Definition at line 246 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MIN() [1/2]

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

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

Definition at line 251 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MIN() [2/2]

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

Select variable with smallest action divided by domain size.

Definition at line 256 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MAX() [1/2]

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

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

Definition at line 261 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MAX() [2/2]

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

Select variable with largest action divided by domain size.

Definition at line 266 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MIN ( BranchTbl  tbl)
inline

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

Definition at line 271 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MIN() [2/2]

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

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

Definition at line 276 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MAX ( BranchTbl  tbl)
inline

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

Definition at line 281 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MAX ( FloatCHB  c,
BranchTbl  tbl 
)
inline

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

Definition at line 286 of file var.hpp.

◆ 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 45 of file channel.cpp.

◆ channel() [2/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 53 of file channel.cpp.

◆ channel() [3/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 43 of file channel.hpp.

◆ 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 48 of file channel.hpp.

◆ dom() [1/32]

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

Propagates $x=n$.

Definition at line 44 of file dom.cpp.

◆ dom() [2/32]

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

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

Definition at line 53 of file dom.cpp.

◆ dom() [3/32]

void Gecode::dom ( Home  home,
FloatVar  x,
FloatNum  min,
FloatNum  max 
)

Propagates $ l\leq x\leq u$.

Definition at line 64 of file dom.cpp.

◆ dom() [4/32]

void Gecode::dom ( Home  home,
const FloatVarArgs x,
FloatNum  min,
FloatNum  max 
)

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

Definition at line 75 of file dom.cpp.

◆ dom() [5/32]

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

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

Definition at line 88 of file dom.cpp.

◆ dom() [6/32]

void Gecode::dom ( Home  home,
FloatVar  x,
FloatNum  min,
FloatNum  max,
Reify  r 
)

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

Definition at line 110 of file dom.cpp.

◆ dom() [7/32]

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

Constrain domain of x according to domain of d.

Definition at line 130 of file dom.cpp.

◆ dom() [8/32]

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 141 of file dom.cpp.

◆ 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 44 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 50 of file exec.cpp.

◆ pi_half_lower()

FloatNum Gecode::pi_half_lower ( void  )
inline

Return lower bound of $\pi/2$.

Definition at line 41 of file num.hpp.

◆ pi_half_upper()

FloatNum Gecode::pi_half_upper ( void  )
inline

Return upper bound of $\pi/2$.

Definition at line 45 of file num.hpp.

◆ pi_lower()

FloatNum Gecode::pi_lower ( void  )
inline

Return lower bound of $\pi$.

Definition at line 49 of file num.hpp.

◆ pi_upper()

FloatNum Gecode::pi_upper ( void  )
inline

Return upper bound of $\pi$.

Definition at line 53 of file num.hpp.

◆ pi_twice_lower()

FloatNum Gecode::pi_twice_lower ( void  )
inline

Return lower bound of $2\pi$.

Definition at line 57 of file num.hpp.

◆ pi_twice_upper()

FloatNum Gecode::pi_twice_upper ( void  )
inline

Return upper bound of $2\pi$.

Definition at line 61 of file num.hpp.

◆ relax() [1/4]

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

Definition at line 61 of file relax.cpp.

◆ exp() [1/3]

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

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

Definition at line 49 of file transcendental.cpp.

◆ log() [1/4]

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

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

Definition at line 57 of file transcendental.cpp.

◆ log() [2/4]

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 65 of file transcendental.cpp.

◆ pow() [2/6]

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

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

Definition at line 73 of file transcendental.cpp.

◆ asin() [1/3]

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

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

Definition at line 49 of file trigonometric.cpp.

◆ sin() [1/3]

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

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

Definition at line 56 of file trigonometric.cpp.

◆ acos() [1/3]

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

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

Definition at line 63 of file trigonometric.cpp.

◆ cos() [1/3]

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

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

Definition at line 70 of file trigonometric.cpp.

◆ atan() [1/3]

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

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

Definition at line 77 of file trigonometric.cpp.

◆ tan() [1/3]

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

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

Definition at line 84 of file trigonometric.cpp.

◆ operator+() [1/49]

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

Definition at line 168 of file val.hpp.

◆ operator-() [1/36]

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

Definition at line 172 of file val.hpp.

◆ operator+() [2/49]

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

Definition at line 178 of file val.hpp.

◆ operator+() [3/49]

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

Definition at line 182 of file val.hpp.

◆ operator+() [4/49]

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

Definition at line 186 of file val.hpp.

◆ operator-() [2/36]

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

Definition at line 191 of file val.hpp.

◆ operator-() [3/36]

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

Definition at line 195 of file val.hpp.

◆ operator-() [4/36]

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

Definition at line 199 of file val.hpp.

◆ operator*() [1/18]

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

Definition at line 204 of file val.hpp.

◆ operator*() [2/18]

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

Definition at line 208 of file val.hpp.

◆ operator*() [3/18]

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

Definition at line 212 of file val.hpp.

◆ operator/() [1/5]

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

Definition at line 217 of file val.hpp.

◆ operator/() [2/5]

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

Definition at line 221 of file val.hpp.

◆ operator/() [3/5]

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

Definition at line 225 of file val.hpp.

◆ operator<() [1/26]

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

Definition at line 230 of file val.hpp.

◆ operator<() [2/26]

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

Definition at line 238 of file val.hpp.

◆ operator<=() [1/28]

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

Definition at line 247 of file val.hpp.

◆ operator<=() [2/28]

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

Definition at line 255 of file val.hpp.

◆ operator>() [1/26]

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

Definition at line 264 of file val.hpp.

◆ operator>() [2/26]

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

Definition at line 272 of file val.hpp.

◆ operator>=() [1/28]

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

Definition at line 281 of file val.hpp.

◆ operator>=() [2/28]

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

Definition at line 289 of file val.hpp.

◆ operator==() [1/30]

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

Definition at line 298 of file val.hpp.

◆ operator==() [2/30]

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

Definition at line 306 of file val.hpp.

◆ operator!=() [1/30]

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

Definition at line 321 of file val.hpp.

◆ operator!=() [2/30]

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

Definition at line 329 of file val.hpp.

◆ operator<() [3/26]

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

Definition at line 338 of file val.hpp.

◆ operator<=() [3/28]

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

Definition at line 342 of file val.hpp.

◆ operator>() [3/26]

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

Definition at line 346 of file val.hpp.

◆ operator>=() [3/28]

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

Definition at line 350 of file val.hpp.

◆ operator==() [3/30]

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

Definition at line 354 of file val.hpp.

◆ operator!=() [3/30]

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

Definition at line 358 of file val.hpp.

◆ operator<<() [2/29]

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 364 of file val.hpp.

◆ abs() [2/5]

FloatVal Gecode::abs ( const FloatVal x)
related

Definition at line 369 of file val.hpp.

◆ sqrt() [2/5]

FloatVal Gecode::sqrt ( const FloatVal x)
related

Definition at line 373 of file val.hpp.

◆ sqr() [2/5]

FloatVal Gecode::sqr ( const FloatVal x)
related

Definition at line 377 of file val.hpp.

◆ pow() [3/6]

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

Definition at line 381 of file val.hpp.

◆ nroot() [2/5]

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

Definition at line 385 of file val.hpp.

◆ max() [3/14]

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

Definition at line 390 of file val.hpp.

◆ max() [4/14]

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

Definition at line 394 of file val.hpp.

◆ max() [5/14]

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

Definition at line 398 of file val.hpp.

◆ min() [3/14]

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

Definition at line 402 of file val.hpp.

◆ min() [4/14]

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

Definition at line 406 of file val.hpp.

◆ min() [5/14]

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

Definition at line 410 of file val.hpp.

◆ exp() [2/3]

FloatVal Gecode::exp ( const FloatVal x)
related

Definition at line 417 of file val.hpp.

◆ log() [3/4]

FloatVal Gecode::log ( const FloatVal x)
related

Definition at line 421 of file val.hpp.

◆ fmod() [1/3]

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

Definition at line 426 of file val.hpp.

◆ fmod() [2/3]

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

Definition at line 430 of file val.hpp.

◆ fmod() [3/3]

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

Definition at line 434 of file val.hpp.

◆ sin() [2/3]

FloatVal Gecode::sin ( const FloatVal x)
related

Definition at line 439 of file val.hpp.

◆ cos() [2/3]

FloatVal Gecode::cos ( const FloatVal x)
related

Definition at line 443 of file val.hpp.

◆ tan() [2/3]

FloatVal Gecode::tan ( const FloatVal x)
related

Definition at line 447 of file val.hpp.

◆ asin() [2/3]

FloatVal Gecode::asin ( const FloatVal x)
related

Definition at line 451 of file val.hpp.

◆ acos() [2/3]

FloatVal Gecode::acos ( const FloatVal x)
related

Definition at line 455 of file val.hpp.

◆ atan() [2/3]

FloatVal Gecode::atan ( const FloatVal x)
related

Definition at line 459 of file val.hpp.

◆ sinh()

FloatVal Gecode::sinh ( const FloatVal x)
related

Definition at line 464 of file val.hpp.

◆ cosh()

FloatVal Gecode::cosh ( const FloatVal x)
related

Definition at line 468 of file val.hpp.

◆ tanh()

FloatVal Gecode::tanh ( const FloatVal x)
related

Definition at line 472 of file val.hpp.

◆ asinh()

FloatVal Gecode::asinh ( const FloatVal x)
related

Definition at line 476 of file val.hpp.

◆ acosh()

FloatVal Gecode::acosh ( const FloatVal x)
related

Definition at line 480 of file val.hpp.

◆ atanh()

FloatVal Gecode::atanh ( const FloatVal x)
related

Definition at line 484 of file val.hpp.

◆ operator<<() [3/29]

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

◆ abs() [3/5]

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 43 of file arithmetic.cpp.

◆ max() [6/14]

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 55 of file arithmetic.cpp.

◆ max() [7/14]

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 67 of file arithmetic.cpp.

◆ min() [6/14]

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 82 of file arithmetic.cpp.

◆ min() [7/14]

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 95 of file arithmetic.cpp.

◆ argmax() [1/2]

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 114 of file arithmetic.cpp.

◆ argmax() [2/2]

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 140 of file arithmetic.cpp.

◆ argmin() [1/2]

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 167 of file arithmetic.cpp.

◆ argmin() [2/2]

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 193 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 221 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 234 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 258 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 267 of file arithmetic.cpp.

◆ sqr() [3/5]

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 276 of file arithmetic.cpp.

◆ sqrt() [3/5]

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 290 of file arithmetic.cpp.

◆ pow() [4/6]

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 304 of file arithmetic.cpp.

◆ nroot() [3/5]

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 323 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   
)

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

◆ INT_ASSIGN_MIN()

IntAssign Gecode::INT_ASSIGN_MIN ( void  )
inline

Select smallest value.

Definition at line 59 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 64 of file assign.hpp.

◆ INT_ASSIGN_MAX()

IntAssign Gecode::INT_ASSIGN_MAX ( void  )
inline

Select largest value.

Definition at line 69 of file assign.hpp.

◆ INT_ASSIGN_RND()

IntAssign Gecode::INT_ASSIGN_RND ( Rnd  r)
inline

Select random value.

Definition at line 74 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 79 of file assign.hpp.

◆ BOOL_ASSIGN_MIN()

BoolAssign Gecode::BOOL_ASSIGN_MIN ( void  )
inline

Select smallest value.

Definition at line 104 of file assign.hpp.

◆ BOOL_ASSIGN_MAX()

BoolAssign Gecode::BOOL_ASSIGN_MAX ( void  )
inline

Select largest value.

Definition at line 109 of file assign.hpp.

◆ BOOL_ASSIGN_RND()

BoolAssign Gecode::BOOL_ASSIGN_RND ( Rnd  r)
inline

Select random value.

Definition at line 114 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 119 of file assign.hpp.

◆ INT_VAL_MIN()

IntValBranch Gecode::INT_VAL_MIN ( void  )
inline

Select smallest value.

Definition at line 59 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 64 of file val.hpp.

◆ INT_VAL_MAX()

IntValBranch Gecode::INT_VAL_MAX ( void  )
inline

Select largest value.

Definition at line 69 of file val.hpp.

◆ INT_VAL_RND()

IntValBranch Gecode::INT_VAL_RND ( Rnd  r)
inline

Select random value.

Definition at line 74 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 79 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 84 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 89 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 94 of file val.hpp.

◆ INT_VAL()

IntValBranch Gecode::INT_VAL ( IntBranchVal  v,
IntBranchCommit  c 
)
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 99 of file val.hpp.

◆ INT_VALUES_MIN()

IntValBranch Gecode::INT_VALUES_MIN ( void  )
inline

Try all values starting from smallest.

Definition at line 104 of file val.hpp.

◆ INT_VALUES_MAX()

IntValBranch Gecode::INT_VALUES_MAX ( void  )
inline

Try all values starting from largest.

Definition at line 109 of file val.hpp.

◆ BOOL_VAL_MIN()

BoolValBranch Gecode::BOOL_VAL_MIN ( void  )
inline

Select smallest value.

Definition at line 134 of file val.hpp.

◆ BOOL_VAL_MAX()

BoolValBranch Gecode::BOOL_VAL_MAX ( void  )
inline

Select largest value.

Definition at line 139 of file val.hpp.

◆ BOOL_VAL_RND()

BoolValBranch Gecode::BOOL_VAL_RND ( Rnd  r)
inline

Select random value.

Definition at line 144 of file val.hpp.

◆ BOOL_VAL()

BoolValBranch Gecode::BOOL_VAL ( BoolBranchVal  v,
BoolBranchCommit  c 
)
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 149 of file val.hpp.

◆ INT_VAR_NONE()

IntVarBranch Gecode::INT_VAR_NONE ( void  )
inline

Select first unassigned variable.

Definition at line 100 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 105 of file var.hpp.

◆ INT_VAR_MERIT_MIN()

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

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

Definition at line 110 of file var.hpp.

◆ INT_VAR_MERIT_MAX()

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

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

Definition at line 115 of file var.hpp.

◆ INT_VAR_DEGREE_MIN()

IntVarBranch Gecode::INT_VAR_DEGREE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest degree.

Definition at line 120 of file var.hpp.

◆ INT_VAR_DEGREE_MAX()

IntVarBranch Gecode::INT_VAR_DEGREE_MAX ( BranchTbl  tbl)
inline

Select variable with largest degree.

Definition at line 125 of file var.hpp.

◆ INT_VAR_AFC_MIN() [1/2]

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

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

Definition at line 130 of file var.hpp.

◆ INT_VAR_AFC_MIN() [2/2]

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

Select variable with smallest accumulated failure count.

Definition at line 135 of file var.hpp.

◆ INT_VAR_AFC_MAX() [1/2]

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

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

Definition at line 140 of file var.hpp.

◆ INT_VAR_AFC_MAX() [2/2]

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

Select variable with largest accumulated failure count.

Definition at line 145 of file var.hpp.

◆ INT_VAR_ACTION_MIN() [1/2]

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

Select variable with lowest action with decay factor d.

Definition at line 150 of file var.hpp.

◆ INT_VAR_ACTION_MIN() [2/2]

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

Select variable with lowest action.

Definition at line 155 of file var.hpp.

◆ INT_VAR_ACTION_MAX() [1/2]

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

Select variable with highest action with decay factor d.

Definition at line 160 of file var.hpp.

◆ INT_VAR_ACTION_MAX() [2/2]

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

Select variable with highest action.

Definition at line 165 of file var.hpp.

◆ INT_VAR_CHB_MIN() [1/2]

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

Select variable with lowest CHB Q-score.

Definition at line 170 of file var.hpp.

◆ INT_VAR_CHB_MIN() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_MIN ( BranchTbl  tbl)
inline

Select variable with lowest CHB Q-score.

Definition at line 175 of file var.hpp.

◆ INT_VAR_CHB_MAX() [1/2]

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

Select variable with largest CHB Q-score.

Definition at line 180 of file var.hpp.

◆ INT_VAR_CHB_MAX() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_MAX ( BranchTbl  tbl)
inline

Select variable with largest CHB Q-score.

Definition at line 185 of file var.hpp.

◆ INT_VAR_MIN_MIN()

IntVarBranch Gecode::INT_VAR_MIN_MIN ( BranchTbl  tbl)
inline

Select variable with smallest min.

Definition at line 190 of file var.hpp.

◆ INT_VAR_MIN_MAX()

IntVarBranch Gecode::INT_VAR_MIN_MAX ( BranchTbl  tbl)
inline

Select variable with largest min.

Definition at line 195 of file var.hpp.

◆ INT_VAR_MAX_MIN()

IntVarBranch Gecode::INT_VAR_MAX_MIN ( BranchTbl  tbl)
inline

Select variable with smallest max.

Definition at line 200 of file var.hpp.

◆ INT_VAR_MAX_MAX()

IntVarBranch Gecode::INT_VAR_MAX_MAX ( BranchTbl  tbl)
inline

Select variable with largest max.

Definition at line 205 of file var.hpp.

◆ INT_VAR_SIZE_MIN()

IntVarBranch Gecode::INT_VAR_SIZE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest domain size.

Definition at line 210 of file var.hpp.

◆ INT_VAR_SIZE_MAX()

IntVarBranch Gecode::INT_VAR_SIZE_MAX ( BranchTbl  tbl)
inline

Select variable with largest domain size.

Definition at line 215 of file var.hpp.

◆ INT_VAR_DEGREE_SIZE_MIN()

IntVarBranch Gecode::INT_VAR_DEGREE_SIZE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest degree divided by domain size.

Definition at line 220 of file var.hpp.

◆ INT_VAR_DEGREE_SIZE_MAX()

IntVarBranch Gecode::INT_VAR_DEGREE_SIZE_MAX ( BranchTbl  tbl)
inline

Select variable with largest degree divided by domain size.

Definition at line 225 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MIN() [1/2]

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

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

Definition at line 230 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MIN() [2/2]

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

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

Definition at line 235 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MAX() [1/2]

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

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

Definition at line 240 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MAX() [2/2]

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

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

Definition at line 245 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MIN() [1/2]

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

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

Definition at line 250 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MIN() [2/2]

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

Select variable with smallest action divided by domain size.

Definition at line 255 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MAX() [1/2]

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

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

Definition at line 260 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MAX() [2/2]

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

Select variable with largest action divided by domain size.

Definition at line 265 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MIN() [1/2]

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

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

Definition at line 270 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MIN() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_SIZE_MIN ( BranchTbl  tbl)
inline

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

Definition at line 275 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MAX() [1/2]

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

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

Definition at line 280 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MAX() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_SIZE_MAX ( BranchTbl  tbl)
inline

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

Definition at line 285 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 290 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 295 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 300 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 305 of file var.hpp.

◆ BOOL_VAR_NONE()

BoolVarBranch Gecode::BOOL_VAR_NONE ( void  )
inline

Select first unassigned variable.

Definition at line 368 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 373 of file var.hpp.

◆ BOOL_VAR_MERIT_MIN()

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

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

Definition at line 378 of file var.hpp.

◆ BOOL_VAR_MERIT_MAX()

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

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

Definition at line 383 of file var.hpp.

◆ BOOL_VAR_DEGREE_MIN()

BoolVarBranch Gecode::BOOL_VAR_DEGREE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest degree.

Definition at line 388 of file var.hpp.

◆ BOOL_VAR_DEGREE_MAX()

BoolVarBranch Gecode::BOOL_VAR_DEGREE_MAX ( BranchTbl  tbl)
inline

Select variable with largest degree.

Definition at line 393 of file var.hpp.

◆ BOOL_VAR_AFC_MIN() [1/2]

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

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

Definition at line 398 of file var.hpp.

◆ BOOL_VAR_AFC_MIN() [2/2]

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

Select variable with smallest accumulated failure count.

Definition at line 403 of file var.hpp.

◆ BOOL_VAR_AFC_MAX() [1/2]

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

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

Definition at line 408 of file var.hpp.

◆ BOOL_VAR_AFC_MAX() [2/2]

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

Select variable with largest accumulated failure count.

Definition at line 413 of file var.hpp.

◆ BOOL_VAR_ACTION_MIN() [1/2]

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

Select variable with lowest action with decay factor d.

Definition at line 418 of file var.hpp.

◆ BOOL_VAR_ACTION_MIN() [2/2]

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

Select variable with lowest action.

Definition at line 423 of file var.hpp.

◆ BOOL_VAR_ACTION_MAX() [1/2]

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

Select variable with highest action with decay factor d.

Definition at line 428 of file var.hpp.

◆ BOOL_VAR_ACTION_MAX() [2/2]

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

Select variable with highest action.

Definition at line 433 of file var.hpp.

◆ BOOL_VAR_CHB_MIN() [1/2]

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

Select variable with lowest CHB Q-score.

Definition at line 438 of file var.hpp.

◆ BOOL_VAR_CHB_MIN() [2/2]

BoolVarBranch Gecode::BOOL_VAR_CHB_MIN ( BranchTbl  tbl)
inline

Select variable with lowest CHB Q-score.

Definition at line 443 of file var.hpp.

◆ BOOL_VAR_CHB_MAX() [1/2]

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

Select variable with largest CHB Q-score.

Definition at line 448 of file var.hpp.

◆ BOOL_VAR_CHB_MAX() [2/2]

BoolVarBranch Gecode::BOOL_VAR_CHB_MAX ( BranchTbl  tbl)
inline

Select variable with largest CHB Q-score.

Definition at line 453 of file var.hpp.

◆ channel() [5/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 45 of file channel.cpp.

◆ channel() [6/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 147 of file channel.cpp.

◆ channel() [7/17]

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

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

Definition at line 152 of file channel.cpp.

◆ channel() [8/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 159 of file channel.cpp.

◆ channel() [9/17]

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

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

Definition at line 41 of file channel.hpp.

◆ circuit() [1/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 45 of file circuit.cpp.

◆ circuit() [2/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 77 of file circuit.cpp.

◆ circuit() [3/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 82 of file circuit.cpp.

◆ circuit() [4/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:

  • 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 106 of file circuit.cpp.

◆ circuit() [5/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 112 of file circuit.cpp.

◆ circuit() [6/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 121 of file circuit.cpp.

◆ path() [1/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 128 of file circuit.cpp.

◆ path() [2/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 173 of file circuit.cpp.

◆ path() [3/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 179 of file circuit.cpp.

◆ path() [4/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 205 of file circuit.cpp.

◆ path() [5/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 212 of file circuit.cpp.

◆ path() [6/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 221 of file circuit.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 44 of file count.cpp.

◆ count() [2/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 86 of file count.cpp.

◆ count() [3/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 138 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 182 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 226 of file count.cpp.

◆ count() [6/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 268 of file count.cpp.

◆ count() [7/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 320 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 369 of file count.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 357 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 365 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 376 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 384 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 395 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 402 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 412 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 419 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 429 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 437 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 448 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 456 of file cumulative.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 114 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 123 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 132 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 141 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 150 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 159 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 168 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 177 of file cumulatives.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 50 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 69 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 101 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 158 of file distinct.cpp.

◆ dom() [9/32]

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

Propagates $x=n$.

Definition at line 45 of file dom.cpp.

◆ dom() [10/32]

void Gecode::dom ( Home  home,
const IntVarArgs x,
int  n,
IntPropLevel   
)

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

Definition at line 54 of file dom.cpp.

◆ dom() [11/32]

void Gecode::dom ( Home  home,
IntVar  x,
int  min,
int  max,
IntPropLevel   
)

Propagates $ l\leq x\leq m$.

Definition at line 65 of file dom.cpp.

◆ dom() [12/32]

void Gecode::dom ( Home  home,
const IntVarArgs x,
int  min,
int  max,
IntPropLevel   
)

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

Definition at line 76 of file dom.cpp.

◆ dom() [13/32]

void Gecode::dom ( Home  home,
IntVar  x,
const IntSet is,
IntPropLevel   
)

Propagates $ x\in s $.

Definition at line 89 of file dom.cpp.

◆ dom() [14/32]

void Gecode::dom ( Home  home,
const IntVarArgs x,
const IntSet is,
IntPropLevel   
)

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

Definition at line 100 of file dom.cpp.

◆ dom() [15/32]

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

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

Definition at line 113 of file dom.cpp.

◆ dom() [16/32]

void Gecode::dom ( Home  home,
IntVar  x,
int  min,
int  max,
Reify  r,
IntPropLevel   
)

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

Definition at line 135 of file dom.cpp.

◆ dom() [17/32]

void Gecode::dom ( Home  home,
IntVar  x,
const IntSet is,
Reify  r,
IntPropLevel   
)

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

Definition at line 159 of file dom.cpp.

◆ dom() [18/32]

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

Constrain domain of x according to domain of d.

Definition at line 179 of file dom.cpp.

◆ dom() [19/32]

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

Constrain domain of x according to domain of d.

Definition at line 190 of file dom.cpp.

◆ dom() [20/32]

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

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

Definition at line 200 of file dom.cpp.

◆ dom() [21/32]

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

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

Definition at line 215 of file dom.cpp.

◆ element() [1/29]

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 43 of file element.cpp.

◆ element() [2/29]

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 55 of file element.cpp.

◆ element() [3/29]

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 67 of file element.cpp.

◆ element() [4/29]

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 82 of file element.cpp.

◆ element() [5/29]

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 99 of file element.cpp.

◆ element() [6/29]

void Gecode::element ( Home  home,
const BoolVarArgs c,
IntVar  x0,
BoolVar  x1,
IntPropLevel   
)

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

Definition at line 118 of file element.cpp.

◆ element() [7/29]

void Gecode::element ( Home  home,
const BoolVarArgs c,
IntVar  x0,
int  x1,
IntPropLevel   
)

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

Definition at line 130 of file element.cpp.

◆ element() [8/29]

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 154 of file element.cpp.

◆ element() [9/29]

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 165 of file element.cpp.

◆ element() [10/29]

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 176 of file element.cpp.

◆ element() [11/29]

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 187 of file element.cpp.

◆ wait() [3/8]

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

Execute c when x becomes assigned.

Definition at line 44 of file exec.cpp.

◆ wait() [4/8]

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

Execute c when x becomes assigned.

Definition at line 51 of file exec.cpp.

◆ wait() [5/8]

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

Execute c when all variables in x become assigned.

Definition at line 58 of file exec.cpp.

◆ wait() [6/8]

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

Execute c when all variables in x become assigned.

Definition at line 66 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   
)

Execute t (then) when x is assigned one, and e (else) otherwise.

Definition at line 75 of file exec.cpp.

◆ when() [2/2]

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

Execute t (then) when x is assigned one.

Definition at line 84 of file exec.cpp.

◆ operator<<() [4/29]

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

◆ operator<<() [5/29]

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

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

◆ extensional() [1/4]

void Gecode::extensional ( Home  home,
const IntVarArgs x,
DFA  d,
IntPropLevel  ipl = IPL_DEF 
)

Post domain consistent propagator for extensional constraint described by a DFA.

The elements of x must be a word of the language described by the DFA d.

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply. If shared occurences of variables are required, unshare should be used.

Definition at line 45 of file extensional.cpp.

◆ extensional() [2/4]

void Gecode::extensional ( Home  home,
const BoolVarArgs x,
DFA  d,
IntPropLevel  ipl = IPL_DEF 
)

Post domain consistent propagator for extensional constraint described by a DFA.

The elements of x must be a word of the language described by the DFA d.

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply. If shared occurences of variables are required, unshare should be used.

Definition at line 55 of file extensional.cpp.

◆ extensional() [3/4]

void Gecode::extensional ( Home  home,
const IntVarArgs x,
const TupleSet t,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $x\in t$.

  • Supports implementations optimized for speed (with propagation level ipl or-ed with IPL_SPEED, default) and memory consumption (with propagation level ipl or-ed with IPL_MEMORY).
  • Supports domain consistency (ipl = IPL_DOM, default) only.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
  • Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.
Warning
If the domains for the $x_i$ are not dense and have similar bounds, lots of memory will be wasted (memory consumption is in $ O\left(|x|\cdot\min_i(\underline{x_i})\cdot\max_i(\overline{x_i})\right)$ for the basic algorithm (epk = EPK_MEMORY) and additionally $ O\left(|x|^2\cdot\min_i(\underline{x_i})\cdot\max_i(\overline{x_i})\right)$ for the incremental algorithm (epk = EPK_SPEED).

Definition at line 65 of file extensional.cpp.

◆ extensional() [4/4]

void Gecode::extensional ( Home  home,
const BoolVarArgs x,
const TupleSet t,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $x\in t$.

  • Supports implementations optimized for speed (with propagation level ipl or-ed with IPL_SPEED, default) and memory consumption (with propagation level ipl or-ed with IPL_MEMORY).
  • Supports domain consistency (ipl = IPL_DOM, default) only.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
  • Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.

Definition at line 98 of file extensional.cpp.

◆ count() [9/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 103 of file gcc.cpp.

◆ count() [10/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 139 of file gcc.cpp.

◆ count() [11/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 148 of file gcc.cpp.

◆ count() [12/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 215 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 223 of file gcc.cpp.

◆ operator<<() [6/29]

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

◆ vbd()

IntPropLevel Gecode::vbd ( IntPropLevel  ipl)
inline

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

Definition at line 41 of file ipl.hpp.

◆ sm()

IntPropLevel Gecode::sm ( IntPropLevel  ipl)
inline

Extract speed or memory from propagation level.

Definition at line 47 of file ipl.hpp.

◆ ba()

IntPropLevel Gecode::ba ( IntPropLevel  ipl)
inline

Extract basic or advanced from propagation level.

Definition at line 53 of file ipl.hpp.

◆ swap()

IntRelType Gecode::swap ( IntRelType  irt)
inline

Return swapped relation type of irt.

Definition at line 41 of file irt.hpp.

◆ neg()

IntRelType Gecode::neg ( IntRelType  irt)
inline

Return negated relation type of irt.

Definition at line 56 of file irt.hpp.

◆ VariableSymmetry() [1/4]

SymmetryHandle Gecode::VariableSymmetry ( const IntVarArgs vars)

Variables in x are interchangeable.

Definition at line 66 of file ldsb.cpp.

◆ VariableSymmetry() [2/4]

SymmetryHandle Gecode::VariableSymmetry ( const BoolVarArgs vars)

Variables in x are interchangeable.

Definition at line 72 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 78 of file ldsb.cpp.

◆ ValueSymmetry() [1/3]

SymmetryHandle Gecode::ValueSymmetry ( const IntArgs vs)

Values in v are interchangeable.

Definition at line 85 of file ldsb.cpp.

◆ ValueSymmetry() [2/3]

SymmetryHandle Gecode::ValueSymmetry ( const IntSet vs)

Values in v are interchangeable.

Definition at line 88 of file ldsb.cpp.

◆ ValueSymmetry() [3/3]

SymmetryHandle Gecode::ValueSymmetry ( IntVar  x)

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

Definition at line 91 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 94 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 100 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 106 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 110 of file ldsb.cpp.

◆ values_reflect() [2/3]

SymmetryHandle Gecode::values_reflect ( const IntVar x)

Definition at line 125 of file ldsb.cpp.

◆ member() [1/4]

void Gecode::member ( Home  home,
const IntVarArgs x,
IntVar  y,
IntPropLevel   
)

Post domain consistent propagator for $y\in \{x_0,\ldots,x_{|x|-1}\}$.

Definition at line 43 of file member.cpp.

◆ member() [2/4]

void Gecode::member ( Home  home,
const BoolVarArgs x,
BoolVar  y,
IntPropLevel   
)

Post domain consistent propagator for $y\in \{x_0,\ldots,x_{|x|-1}\}$.

Definition at line 53 of file member.cpp.

◆ member() [3/4]

void Gecode::member ( Home  home,
const IntVarArgs x,
IntVar  y,
Reify  r,
IntPropLevel   
)

Post domain consistent propagator for $\left(y\in \{x_0,\ldots,x_{|x|-1}\}\right)\equiv r$.

Definition at line 63 of file member.cpp.

◆ member() [4/4]

void Gecode::member ( Home  home,
const BoolVarArgs x,
BoolVar  y,
Reify  r,
IntPropLevel   
)

Post domain consistent propagator for $\left(y\in \{x_0,\ldots,x_{|x|-1}\}\right)\equiv r$.

Definition at line 88 of file member.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 44 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 94 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 145 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 193 of file nvalues.cpp.

◆ relax() [2/4]

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

Definition at line 69 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 80 of file relax.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 51 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 116 of file sequence.cpp.

◆ sorted() [1/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 43 of file sorted.cpp.

◆ sorted() [2/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 62 of file sorted.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, 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 48 of file unary.cpp.

◆ unary() [2/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, 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 89 of file unary.cpp.

◆ unary() [3/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, 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 120 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, 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 152 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, 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 197 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.

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 228 of file unary.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 133 of file unshare.cpp.

◆ unshare() [2/2]

void Gecode::unshare ( Home  home,
BoolVarArgs x,
IntPropLevel   
)

Replace multiple variable occurences in x by fresh variables.

Definition at line 139 of file unshare.cpp.

◆ operator<<() [7/29]

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

Definition at line 42 of file print.hpp.

◆ operator<<() [8/29]

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

Definition at line 49 of file print.hpp.

◆ values_reflect() [3/3]

SymmetryHandle Gecode::values_reflect ( IntVar  x)

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

◆ operator<<() [9/29]

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

◆ operator<<() [10/29]

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

Definition at line 174 of file afc.hpp.

◆ operator==() [4/30]

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/30]

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/30]

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/30]

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<<() [11/29]

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

Definition at line 199 of file archive.hpp.

◆ operator<<() [12/29]

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

Definition at line 204 of file archive.hpp.

◆ operator<<() [13/29]

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

Definition at line 209 of file archive.hpp.

◆ operator<<() [14/29]

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

Definition at line 214 of file archive.hpp.

◆ operator<<() [15/29]

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

Definition at line 219 of file archive.hpp.

◆ operator<<() [16/29]

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

Definition at line 224 of file archive.hpp.

◆ operator<<() [17/29]

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

Definition at line 229 of file archive.hpp.

◆ operator<<() [18/29]

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

Definition at line 234 of file archive.hpp.

◆ operator<<() [19/29]

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

Definition at line 240 of file archive.hpp.

◆ operator>>() [2/11]

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

Definition at line 247 of file archive.hpp.

◆ operator>>() [3/11]

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

Definition at line 252 of file archive.hpp.

◆ operator>>() [4/11]

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

Definition at line 257 of file archive.hpp.

◆ operator>>() [5/11]

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

Definition at line 262 of file archive.hpp.

◆ operator>>() [6/11]

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

Definition at line 267 of file archive.hpp.

◆ operator>>() [7/11]

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

Definition at line 272 of file archive.hpp.

◆ operator>>() [8/11]

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

Definition at line 277 of file archive.hpp.

◆ operator>>() [9/11]

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

Definition at line 282 of file archive.hpp.

◆ operator>>() [10/11]

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

Definition at line 289 of file archive.hpp.

◆ operator+() [5/49]

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

Definition at line 1105 of file array.hpp.

◆ operator+() [6/49]

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

Definition at line 1116 of file array.hpp.

◆ operator+() [7/49]

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

Definition at line 1127 of file array.hpp.

◆ operator+() [8/49]

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

Definition at line 1138 of file array.hpp.

◆ operator+() [9/49]

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

Definition at line 1148 of file array.hpp.

◆ __before()

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

Definition at line 1445 of file array.hpp.

◆ __same()

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

Definition at line 1464 of file array.hpp.

◆ __shared()

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

Definition at line 1469 of file array.hpp.

◆ operator+() [10/49]

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

Definition at line 1877 of file array.hpp.

◆ operator+() [11/49]

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

Definition at line 1884 of file array.hpp.

◆ operator+() [12/49]

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

Definition at line 1891 of file array.hpp.

◆ operator+() [13/49]

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

Definition at line 1959 of file array.hpp.

◆ operator+() [14/49]

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

Definition at line 1966 of file array.hpp.

◆ operator+() [15/49]

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

Definition at line 1973 of file array.hpp.

◆ operator+() [16/49]

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

Definition at line 2043 of file array.hpp.

◆ operator+() [17/49]

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

Definition at line 2050 of file array.hpp.

◆ operator+() [18/49]

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

Definition at line 2057 of file array.hpp.

◆ operator<<() [20/29]

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

◆ operator<<() [21/29]

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

◆ operator<<() [22/29]

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 2195 of file array.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 84 of file branch-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 91 of file branch-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 98 of file branch-tiebreak.hpp.

◆ branch()

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 154 of file branch.cpp.

◆ 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 354 of file brancher-view-val.hpp.

◆ operator<<() [23/29]

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

◆ operator<<() [24/29]

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

◆ operator-() [5/36]

TFE Gecode::operator- ( const TFE e)

Return negative expression of e.

Definition at line 130 of file trace-filter.cpp.

◆ propagator()

TFE Gecode::propagator ( PropagatorGroup  g)

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

Definition at line 135 of file trace-filter.cpp.

◆ post()

TFE Gecode::post ( PropagatorGroup  g)

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

Definition at line 142 of file trace-filter.cpp.

◆ operator+() [19/49]

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

Disjunctive combination of trace filter expressions l and r.

Definition at line 238 of file trace-filter.hpp.

◆ operator+() [20/49]

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

Positive expression.

Definition at line 242 of file trace-filter.hpp.

◆ operator-() [6/36]

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

Combine positive expression l and negative expression r.

Definition at line 246 of file trace-filter.hpp.

◆ operator&&()

BoolExpr Gecode::operator&& ( const BoolExpr l,
const BoolExpr r 
)

Conjunction of Boolean expressions.

Definition at line 592 of file bool-expr.cpp.

◆ operator||() [1/2]

BoolExpr Gecode::operator|| ( const BoolExpr l,
const BoolExpr r 
)

Disjunction of Boolean expressions.

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

◆ operator^()

BoolExpr Gecode::operator^ ( const BoolExpr l,
const BoolExpr r 
)

Exclusive-or of Boolean expressions.

Definition at line 600 of file bool-expr.cpp.

◆ operator!()

BoolExpr Gecode::operator! ( const BoolExpr e)

Negated Boolean expression.

Definition at line 605 of file bool-expr.cpp.

◆ operator!=() [6/30]

BoolExpr Gecode::operator!= ( const BoolExpr l,
const BoolExpr r 
)

Non-equivalence of Boolean expressions.

Definition at line 610 of file bool-expr.cpp.

◆ operator==() [6/30]

BoolExpr Gecode::operator== ( const BoolExpr l,
const BoolExpr r 
)

Equivalence of Boolean expressions.

Definition at line 614 of file bool-expr.cpp.

◆ operator>>() [11/11]

BoolExpr Gecode::operator>> ( const BoolExpr l,
const BoolExpr r 
)

Implication of Boolean expressions.

Definition at line 618 of file bool-expr.cpp.

◆ operator<<() [25/29]

BoolExpr Gecode::operator<< ( const BoolExpr l,
const BoolExpr r 
)

Reverse implication of Boolean expressions.

Definition at line 623 of file bool-expr.cpp.

◆ expr() [1/4]

BoolVar Gecode::expr ( Home  home,
const BoolExpr e,
IntPropLevel  ipl 
)

Post Boolean expression and return its value.

Definition at line 632 of file bool-expr.cpp.

◆ rel() [1/21]

void Gecode::rel ( Home  home,
const BoolExpr e,
IntPropLevel  ipl 
)

Post Boolean relation.

Definition at line 641 of file bool-expr.cpp.

◆ element() [12/29]

BoolExpr Gecode::element ( const BoolVarArgs b,
const LinIntExpr idx 
)

Return expression for $x[y]$.

Definition at line 696 of file bool-expr.cpp.

◆ abs() [4/5]

LinFloatExpr Gecode::abs ( const LinFloatExpr e)

Return expression for $|e|$.

Definition at line 329 of file float-arith.cpp.

◆ min() [8/14]

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

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

Definition at line 340 of file float-arith.cpp.

◆ min() [9/14]

LinFloatExpr Gecode::min ( const FloatVarArgs x)

Return expression for $\min(x)$.

Definition at line 373 of file float-arith.cpp.

◆ max() [8/14]

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

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

Definition at line 383 of file float-arith.cpp.

◆ max() [9/14]

LinFloatExpr Gecode::max ( const FloatVarArgs x)

Return expression for $\max(x)$.

Definition at line 416 of file float-arith.cpp.

◆ operator*() [4/18]

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

Return expression as product of float variables.

Definition at line 426 of file float-arith.cpp.

◆ operator*() [5/18]

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

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

Definition at line 436 of file float-arith.cpp.

◆ operator*() [6/18]

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

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

Definition at line 446 of file float-arith.cpp.

◆ operator*() [7/18]

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

Return expression for $x\cdot y$.

Definition at line 456 of file float-arith.cpp.

◆ operator/() [4/5]

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

Return expression for $x/y$.

Definition at line 466 of file float-arith.cpp.

◆ sqr() [4/5]

LinFloatExpr Gecode::sqr ( const LinFloatExpr e)

Return expression for $x^2$.

Definition at line 476 of file float-arith.cpp.

◆ sqrt() [4/5]

LinFloatExpr Gecode::sqrt ( const LinFloatExpr e)

Return expression for $\sqrt{x}$.

Definition at line 485 of file float-arith.cpp.

◆ pow() [5/6]

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

Return expression for $x^n$.

Definition at line 494 of file float-arith.cpp.

◆ nroot() [4/5]

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

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

Definition at line 503 of file float-arith.cpp.

◆ exp() [3/3]

LinFloatExpr Gecode::exp ( const LinFloatExpr e)

Return expression for $ \mathrm{exp}(x)$.

Definition at line 514 of file float-arith.cpp.

◆ log() [4/4]

LinFloatExpr Gecode::log ( const LinFloatExpr e)

Return expression for $ \mathrm{log}(x)$.

Definition at line 523 of file float-arith.cpp.

◆ asin() [3/3]

LinFloatExpr Gecode::asin ( const LinFloatExpr e)

Return expression for $ \mathrm{asin}(x)$.

Definition at line 532 of file float-arith.cpp.

◆ sin() [3/3]

LinFloatExpr Gecode::sin ( const LinFloatExpr e)

Return expression for $ \mathrm{sin}(x)$.

Definition at line 541 of file float-arith.cpp.

◆ acos() [3/3]

LinFloatExpr Gecode::acos ( const LinFloatExpr e)

Return expression for $ \mathrm{acos}(x)$.

Definition at line 550 of file float-arith.cpp.

◆ cos() [3/3]

LinFloatExpr Gecode::cos ( const LinFloatExpr e)

Return expression for $ \mathrm{cos}(x)$.

Definition at line 559 of file float-arith.cpp.

◆ atan() [3/3]

LinFloatExpr Gecode::atan ( const LinFloatExpr e)

Return expression for $ \mathrm{atan}(x)$.

Definition at line 568 of file float-arith.cpp.

◆ tan() [3/3]

LinFloatExpr Gecode::tan ( const LinFloatExpr e)

Return expression for $ \mathrm{tan}(x)$.

Definition at line 577 of file float-arith.cpp.

◆ operator+() [21/49]

LinFloatExpr Gecode::operator+ ( const FloatVal c,
const FloatVar x 
)

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

Definition at line 401 of file float-expr.cpp.

◆ operator+() [22/49]

LinFloatExpr Gecode::operator+ ( const FloatVal c,
const LinFloatExpr e 
)

Construct linear float expression as sum of linear float expression and float.

Definition at line 408 of file float-expr.cpp.

◆ operator+() [23/49]

LinFloatExpr Gecode::operator+ ( const FloatVar x,
const FloatVal c 
)

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

Definition at line 412 of file float-expr.cpp.

◆ operator+() [24/49]

LinFloatExpr Gecode::operator+ ( const LinFloatExpr e,
const FloatVal c 
)

Construct linear float expression as sum of linear float expression and float.

Definition at line 419 of file float-expr.cpp.

◆ operator+() [25/49]

LinFloatExpr Gecode::operator+ ( const FloatVar x,
const FloatVar y 
)

Construct linear float expression as sum of float variables.

Definition at line 423 of file float-expr.cpp.

◆ operator+() [26/49]

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 432 of file float-expr.cpp.

◆ operator+() [27/49]

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 439 of file float-expr.cpp.

◆ operator+() [28/49]

LinFloatExpr Gecode::operator+ ( const LinFloatExpr e1,
const LinFloatExpr e2 
)

Construct linear float expression as sum of linear float expressions.

Definition at line 446 of file float-expr.cpp.

◆ operator-() [7/36]

LinFloatExpr Gecode::operator- ( const FloatVal c,
const FloatVar x 
)

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

Definition at line 451 of file float-expr.cpp.

◆ operator-() [8/36]

LinFloatExpr Gecode::operator- ( const FloatVal c,
const LinFloatExpr e 
)

Construct linear float expression as sum of float and linear float expression.

Definition at line 458 of file float-expr.cpp.

◆ operator-() [9/36]

LinFloatExpr Gecode::operator- ( const FloatVar x,
const FloatVal c 
)

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

Definition at line 462 of file float-expr.cpp.

◆ operator-() [10/36]

LinFloatExpr Gecode::operator- ( const LinFloatExpr e,
const FloatVal c 
)

Construct linear float expression as sum of linear float expression and float.

Definition at line 469 of file float-expr.cpp.

◆ operator-() [11/36]

LinFloatExpr Gecode::operator- ( const FloatVar x,
const FloatVar y 
)

Construct linear float expression as sum of float variables.

Definition at line 473 of file float-expr.cpp.

◆ operator-() [12/36]

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 482 of file float-expr.cpp.

◆ operator-() [13/36]

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 489 of file float-expr.cpp.

◆ operator-() [14/36]

LinFloatExpr Gecode::operator- ( const LinFloatExpr e1,
const LinFloatExpr e2 
)

Construct linear float expression as sum of linear float expressions.

Definition at line 496 of file float-expr.cpp.

◆ operator-() [15/36]

LinFloatExpr Gecode::operator- ( const FloatVar x)

Construct linear float expression as negative of float variable.

Definition at line 501 of file float-expr.cpp.

◆ operator-() [16/36]

LinFloatExpr Gecode::operator- ( const LinFloatExpr e)

Construct linear float expression as negative of linear float expression.

Definition at line 508 of file float-expr.cpp.

◆ operator*() [8/18]

LinFloatExpr Gecode::operator* ( const FloatVal a,
const FloatVar x 
)

Construct linear float expression as product of float coefficient and float variable.

Definition at line 513 of file float-expr.cpp.

◆ operator*() [9/18]

LinFloatExpr Gecode::operator* ( const FloatVar x,
const FloatVal a 
)

Construct linear float expression as product of float coefficient and float variable.

Definition at line 523 of file float-expr.cpp.

◆ operator*() [10/18]

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 533 of file float-expr.cpp.

◆ operator*() [11/18]

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 540 of file float-expr.cpp.

◆ sum() [1/9]

LinFloatExpr Gecode::sum ( const FloatVarArgs x)

Construct linear float expression as sum of float variables.

Definition at line 548 of file float-expr.cpp.

◆ sum() [2/9]

LinFloatExpr Gecode::sum ( const FloatValArgs a,
const FloatVarArgs x 
)

Construct linear float expression as sum of float variables with coefficients.

Definition at line 553 of file float-expr.cpp.

◆ expr() [2/4]

FloatVar Gecode::expr ( Home  home,
const LinFloatExpr e 
)

Post float expression and return its value.

Definition at line 558 of file float-expr.cpp.

◆ operator==() [7/30]

LinFloatRel Gecode::operator== ( const FloatVal l,
const FloatVar r 
)

Construct linear float equality relation.

Definition at line 49 of file float-rel.cpp.

◆ operator==() [8/30]

LinFloatRel Gecode::operator== ( const FloatVal l,
const LinFloatExpr r 
)

Construct linear float equality relation.

Definition at line 53 of file float-rel.cpp.

◆ operator==() [9/30]

LinFloatRel Gecode::operator== ( const FloatVar l,
const FloatVal r 
)

Construct linear float equality relation.

Definition at line 57 of file float-rel.cpp.

◆ operator==() [10/30]

LinFloatRel Gecode::operator== ( const LinFloatExpr l,
const FloatVal r 
)

Construct linear float equality relation.

Definition at line 61 of file float-rel.cpp.

◆ operator==() [11/30]

LinFloatRel Gecode::operator== ( const FloatVar l,
const FloatVar r 
)

Construct linear float equality relation.

Definition at line 65 of file float-rel.cpp.

◆ operator==() [12/30]

LinFloatRel Gecode::operator== ( const FloatVar l,
const LinFloatExpr r 
)

Construct linear float equality relation.

Definition at line 69 of file float-rel.cpp.

◆ operator==() [13/30]

LinFloatRel Gecode::operator== ( const LinFloatExpr l,
const FloatVar r 
)

Construct linear float equality relation.

Definition at line 73 of file float-rel.cpp.

◆ operator==() [14/30]

LinFloatRel Gecode::operator== ( const LinFloatExpr l,
const LinFloatExpr r 
)

Construct linear float equality relation.

Definition at line 77 of file float-rel.cpp.

◆ operator!=() [7/30]

LinFloatRel Gecode::operator!= ( const FloatVal l,
const FloatVar r 
)

Construct linear float disequality relation.

Definition at line 82 of file float-rel.cpp.

◆ operator!=() [8/30]

LinFloatRel Gecode::operator!= ( const FloatVal l,
const LinFloatExpr r 
)

Construct linear float disequality relation.

Definition at line 86 of file float-rel.cpp.

◆ operator!=() [9/30]

LinFloatRel Gecode::operator!= ( const FloatVar l,
const FloatVal r 
)

Construct linear float disequality relation.

Definition at line 90 of file float-rel.cpp.

◆ operator!=() [10/30]

LinFloatRel Gecode::operator!= ( const LinFloatExpr l,
const FloatVal r 
)

Construct linear float disequality relation.

Definition at line 94 of file float-rel.cpp.

◆ operator!=() [11/30]

LinFloatRel Gecode::operator!= ( const FloatVar l,
const FloatVar r 
)

Construct linear float disequality relation.

Definition at line 98 of file float-rel.cpp.

◆ operator!=() [12/30]

LinFloatRel Gecode::operator!= ( const FloatVar l,
const LinFloatExpr r 
)

Construct linear float disequality relation.

Definition at line 102 of file float-rel.cpp.

◆ operator!=() [13/30]

LinFloatRel Gecode::operator!= ( const LinFloatExpr l,
const FloatVar r 
)

Construct linear float disequality relation.

Definition at line 106 of file float-rel.cpp.

◆ operator!=() [14/30]

LinFloatRel Gecode::operator!= ( const LinFloatExpr l,
const LinFloatExpr r 
)

Construct linear float disequality relation.

Definition at line 110 of file float-rel.cpp.

◆ operator<=() [4/28]

LinFloatRel Gecode::operator<= ( const FloatVal l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 115 of file float-rel.cpp.

◆ operator<=() [5/28]

LinFloatRel Gecode::operator<= ( const FloatVal l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 119 of file float-rel.cpp.

◆ operator<=() [6/28]

LinFloatRel Gecode::operator<= ( const FloatVar l,
const FloatVal r 
)

Construct linear float inequality relation.

Definition at line 123 of file float-rel.cpp.

◆ operator<=() [7/28]

LinFloatRel Gecode::operator<= ( const LinFloatExpr l,
const FloatVal r 
)

Construct linear float inequality relation.

Definition at line 127 of file float-rel.cpp.

◆ operator<=() [8/28]

LinFloatRel Gecode::operator<= ( const FloatVar l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 131 of file float-rel.cpp.

◆ operator<=() [9/28]

LinFloatRel Gecode::operator<= ( const FloatVar l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 135 of file float-rel.cpp.

◆ operator<=() [10/28]

LinFloatRel Gecode::operator<= ( const LinFloatExpr l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 139 of file float-rel.cpp.

◆ operator<=() [11/28]

LinFloatRel Gecode::operator<= ( const LinFloatExpr l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 143 of file float-rel.cpp.

◆ operator<() [4/26]

LinFloatRel Gecode::operator< ( const FloatVal l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 148 of file float-rel.cpp.

◆ operator<() [5/26]

LinFloatRel Gecode::operator< ( const FloatVal l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 152 of file float-rel.cpp.

◆ operator<() [6/26]

LinFloatRel Gecode::operator< ( const FloatVar l,
const FloatVal r 
)

Construct linear float inequality relation.

Definition at line 156 of file float-rel.cpp.

◆ operator<() [7/26]

LinFloatRel Gecode::operator< ( const LinFloatExpr l,
const FloatVal r 
)

Construct linear float inequality relation.

Definition at line 160 of file float-rel.cpp.

◆ operator<() [8/26]

LinFloatRel Gecode::operator< ( const FloatVar l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 164 of file float-rel.cpp.

◆ operator<() [9/26]

LinFloatRel Gecode::operator< ( const FloatVar l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 168 of file float-rel.cpp.

◆ operator<() [10/26]

LinFloatRel Gecode::operator< ( const LinFloatExpr l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 172 of file float-rel.cpp.

◆ operator<() [11/26]

LinFloatRel Gecode::operator< ( const LinFloatExpr l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 176 of file float-rel.cpp.

◆ operator>=() [4/28]

LinFloatRel Gecode::operator>= ( const FloatVal l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 181 of file float-rel.cpp.

◆ operator>=() [5/28]

LinFloatRel Gecode::operator>= ( const FloatVal l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 185 of file float-rel.cpp.

◆ operator>=() [6/28]

LinFloatRel Gecode::operator>= ( const FloatVar l,
const FloatVal r 
)

Construct linear float inequality relation.

Definition at line 189 of file float-rel.cpp.

◆ operator>=() [7/28]

LinFloatRel Gecode::operator>= ( const LinFloatExpr l,
const FloatVal r 
)

Construct linear float inequality relation.

Definition at line 193 of file float-rel.cpp.

◆ operator>=() [8/28]

LinFloatRel Gecode::operator>= ( const FloatVar l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 197 of file float-rel.cpp.

◆ operator>=() [9/28]

LinFloatRel Gecode::operator>= ( const FloatVar l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 201 of file float-rel.cpp.

◆ operator>=() [10/28]

LinFloatRel Gecode::operator>= ( const LinFloatExpr l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 205 of file float-rel.cpp.

◆ operator>=() [11/28]

LinFloatRel Gecode::operator>= ( const LinFloatExpr l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 209 of file float-rel.cpp.

◆ operator>() [4/26]

LinFloatRel Gecode::operator> ( const FloatVal l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 214 of file float-rel.cpp.

◆ operator>() [5/26]

LinFloatRel Gecode::operator> ( const FloatVal l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 218 of file float-rel.cpp.

◆ operator>() [6/26]

LinFloatRel Gecode::operator> ( const FloatVar l,
const FloatVal r 
)

Construct linear float inequality relation.

Definition at line 222 of file float-rel.cpp.

◆ operator>() [7/26]

LinFloatRel Gecode::operator> ( const LinFloatExpr l,
const FloatVal r 
)

Construct linear float inequality relation.

Definition at line 226 of file float-rel.cpp.

◆ operator>() [8/26]

LinFloatRel Gecode::operator> ( const FloatVar l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 230 of file float-rel.cpp.

◆ operator>() [9/26]

LinFloatRel Gecode::operator> ( const FloatVar l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 234 of file float-rel.cpp.

◆ operator>() [10/26]

LinFloatRel Gecode::operator> ( const LinFloatExpr l,
const FloatVar r 
)

Construct linear float inequality relation.

Definition at line 238 of file float-rel.cpp.

◆ operator>() [11/26]

LinFloatRel Gecode::operator> ( const LinFloatExpr l,
const LinFloatExpr r 
)

Construct linear float inequality relation.

Definition at line 242 of file float-rel.cpp.

◆ abs() [5/5]

LinIntExpr Gecode::abs ( const LinIntExpr e)

Return expression for $|e|$.

Definition at line 303 of file int-arith.cpp.

◆ min() [10/14]

LinIntExpr Gecode::min ( const LinIntExpr e0,
const LinIntExpr e1 
)

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

Definition at line 314 of file int-arith.cpp.

◆ max() [10/14]

LinIntExpr Gecode::max ( const LinIntExpr e0,
const LinIntExpr e1 
)

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

Definition at line 347 of file int-arith.cpp.

◆ min() [11/14]

LinIntExpr Gecode::min ( const IntVarArgs x)

Return expression for $\min(x)$.

Definition at line 380 of file int-arith.cpp.

◆ max() [11/14]

LinIntExpr Gecode::max ( const IntVarArgs x)

Return expression for $\max(x)$.

Definition at line 390 of file int-arith.cpp.

◆ operator*() [12/18]

LinIntExpr Gecode::operator* ( const LinIntExpr e0,
const LinIntExpr e1 
)

Return expression for $x\cdot y$.

Definition at line 400 of file int-arith.cpp.

◆ sqr() [5/5]

LinIntExpr Gecode::sqr ( const LinIntExpr e)

Return expression for $x^2$.

Definition at line 410 of file int-arith.cpp.

◆ sqrt() [5/5]

LinIntExpr Gecode::sqrt ( const LinIntExpr e)

Return expression for $\lfloor\sqrt{x}\rfloor$.

Definition at line 419 of file int-arith.cpp.

◆ pow() [6/6]

LinIntExpr Gecode::pow ( const LinIntExpr e,
int  n 
)

Return expression for $x^n$.

Definition at line 428 of file int-arith.cpp.

◆ nroot() [5/5]

LinIntExpr Gecode::nroot ( const LinIntExpr e,
int  n 
)

Return expression for $\lfloor\sqrt[n]{x}\rfloor$.

Definition at line 437 of file int-arith.cpp.

◆ operator/() [5/5]

LinIntExpr Gecode::operator/ ( const LinIntExpr e0,
const LinIntExpr e1 
)

Return expression for $x\ \mathrm{div}\ y$.

Definition at line 446 of file int-arith.cpp.

◆ operator%()

LinIntExpr Gecode::operator% ( const LinIntExpr e0,
const LinIntExpr e1 
)

Return expression for $x\ \mathrm{mod}\ y$.

Definition at line 456 of file int-arith.cpp.

◆ element() [13/29]

LinIntExpr Gecode::element ( const IntVarArgs x,
const LinIntExpr e 
)

Return expression for $x[y]$.

Definition at line 466 of file int-arith.cpp.

◆ element() [14/29]

LinIntExpr Gecode::element ( const IntArgs x,
const LinIntExpr e 
)

Return expression for $x[y]$.

Definition at line 477 of file int-arith.cpp.

◆ ite() [1/2]

LinIntExpr Gecode::ite ( const BoolExpr b,
const LinIntExpr e0,
const LinIntExpr e1 
)

Return expression for if-then-else $b?x:y$.

Definition at line 488 of file int-arith.cpp.

◆ operator+() [29/49]

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

Construct linear expression as sum of integer variable and integer.

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

◆ operator+() [30/49]

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

Construct linear expression as sum of Boolean variable and integer.

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

◆ operator+() [31/49]

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

Construct linear expression as sum of linear expression and integer.

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

◆ operator+() [32/49]

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

Construct linear expression as sum of integer variable and integer.

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

◆ operator+() [33/49]

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

Construct linear expression as sum of Boolean variable and integer.

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

◆ operator+() [34/49]

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

Construct linear expression as sum of linear expression and integer.

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

◆ operator+() [35/49]

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

Construct linear expression as sum of integer variables.

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

◆ operator+() [36/49]

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

Construct linear expression as sum of integer and Boolean variable.

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

◆ operator+() [37/49]

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

Construct linear expression as sum of Boolean and integer variable.

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

◆ operator+() [38/49]

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

Construct linear expression as sum of Boolean variables.

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

◆ operator+() [39/49]

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

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

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

◆ operator+() [40/49]

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

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

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

◆ operator+() [41/49]

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

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

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

◆ operator+() [42/49]

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

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

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

◆ operator+() [43/49]

LinIntExpr Gecode::operator+ ( const LinIntExpr e1,
const LinIntExpr e2 
)

Construct linear expression as sum of linear expressions.

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

◆ operator-() [17/36]

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

Construct linear expression as sum of integer variable and integer.

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

◆ operator-() [18/36]

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

Construct linear expression as sum of Boolean variable and integer.

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

◆ operator-() [19/36]

LinIntExpr Gecode::operator- ( int  c,
const LinIntExpr e 
)

Construct linear expression as sum of integer and linear expression.

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

◆ operator-() [20/36]

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

Construct linear expression as sum of integer variable and integer.

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

◆ operator-() [21/36]

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

Construct linear expression as sum of Boolean variable and integer.

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

◆ operator-() [22/36]

LinIntExpr Gecode::operator- ( const LinIntExpr e,
int  c 
)

Construct linear expression as sum of linear expression and integer.

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

◆ operator-() [23/36]

LinIntExpr Gecode::operator- ( const IntVar x,
const IntVar y 
)

Construct linear expression as sum of integer variables.

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

◆ operator-() [24/36]

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

Construct linear expression as sum of integer and Boolean variable.

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

◆ operator-() [25/36]

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

Construct linear expression as sum of Boolean and integer variable.

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

◆ operator-() [26/36]

LinIntExpr Gecode::operator- ( const BoolVar x,
const BoolVar y 
)

Construct linear expression as sum of Boolean variables.

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

◆ operator-() [27/36]

LinIntExpr Gecode::operator- ( const IntVar x,
const LinIntExpr e 
)

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

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

◆ operator-() [28/36]

LinIntExpr Gecode::operator- ( const BoolVar x,
const LinIntExpr e 
)

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

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

◆ operator-() [29/36]

LinIntExpr Gecode::operator- ( const LinIntExpr e,
const IntVar x 
)

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

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

◆ operator-() [30/36]

LinIntExpr Gecode::operator- ( const LinIntExpr e,
const BoolVar x 
)

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

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

◆ operator-() [31/36]

LinIntExpr Gecode::operator- ( const LinIntExpr e1,
const LinIntExpr e2 
)

Construct linear expression as sum of linear expressions.

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

◆ operator-() [32/36]

LinIntExpr Gecode::operator- ( const IntVar x)

Construct linear expression as negative of integer variable.

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

◆ operator-() [33/36]

LinIntExpr Gecode::operator- ( const BoolVar x)

Construct linear expression as negative of Boolean variable.

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

◆ operator-() [34/36]

LinIntExpr Gecode::operator- ( const LinIntExpr e)

Construct linear expression as negative of linear expression.

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

◆ operator*() [13/18]

LinIntExpr Gecode::operator* ( int  a,
const IntVar x 
)

Construct linear expression as product of integer coefficient and integer variable.

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

◆ operator*() [14/18]

LinIntExpr Gecode::operator* ( int  a,
const BoolVar x 
)

Construct linear expression as product of integer coefficient and Boolean variable.

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

◆ operator*() [15/18]

LinIntExpr Gecode::operator* ( const IntVar x,
int  a 
)

Construct linear expression as product of integer coefficient and integer variable.

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

◆ operator*() [16/18]

LinIntExpr Gecode::operator* ( const BoolVar x,
int  a 
)

Construct linear expression as product of integer coefficient and Boolean variable.

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

◆ operator*() [17/18]

LinIntExpr Gecode::operator* ( const LinIntExpr e,
int  a 
)

Construct linear expression as product of integer coefficient and linear expression.

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

◆ operator*() [18/18]

LinIntExpr Gecode::operator* ( int  a,
const LinIntExpr e 
)

Construct linear expression as product of integer coefficient and linear expression.

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

◆ sum() [3/9]

LinIntExpr Gecode::sum ( const IntVarArgs x)

Construct linear expression as sum of integer variables.

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

◆ sum() [4/9]

LinIntExpr Gecode::sum ( const IntArgs a,
const IntVarArgs x 
)

Construct linear expression as sum of integer variables with coefficients.

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

◆ sum() [5/9]

LinIntExpr Gecode::sum ( const BoolVarArgs x)

Construct linear expression as sum of Boolean variables.

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

◆ sum() [6/9]

LinIntExpr Gecode::sum ( const IntArgs a,
const BoolVarArgs x 
)

Construct linear expression as sum of Boolean variables with coefficients.

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

◆ sum() [7/9]

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

Construct linear expression as sum of IntArgs Slice elements.

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

◆ sum() [8/9]

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

Construct linear expression as sum of IntArgs Matrix elements.

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

◆ sum() [9/9]

LinIntExpr Gecode::sum ( const IntArgs args)

Construct linear expression as sum of IntArgs.

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

◆ expr() [3/4]

IntVar Gecode::expr ( Home  home,
const LinIntExpr e,
IntPropLevel  ipl 
)

Post linear expression and return its value.

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

◆ operator==() [15/30]

LinIntRel Gecode::operator== ( int  l,
const IntVar r 
)

Construct linear equality relation.

Definition at line 47 of file int-rel.cpp.

◆ operator==() [16/30]

LinIntRel Gecode::operator== ( int  l,
const BoolVar r 
)

Construct linear equality relation.

Definition at line 51 of file int-rel.cpp.

◆ operator==() [17/30]

LinIntRel Gecode::operator== ( int  l,
const LinIntExpr r 
)

Construct linear equality relation.

Definition at line 55 of file int-rel.cpp.

◆ operator==() [18/30]

LinIntRel Gecode::operator== ( const IntVar l,
int  r 
)

Construct linear equality relation.

Definition at line 59 of file int-rel.cpp.

◆ operator==() [19/30]

LinIntRel Gecode::operator== ( const BoolVar l,
int  r 
)

Construct linear equality relation.

Definition at line 63 of file int-rel.cpp.

◆ operator==() [20/30]

LinIntRel Gecode::operator== ( const LinIntExpr l,
int  r 
)

Construct linear equality relation.

Definition at line 67 of file int-rel.cpp.

◆ operator==() [21/30]

LinIntRel Gecode::operator== ( const IntVar l,
const IntVar r 
)

Construct linear equality relation.

Definition at line 71 of file int-rel.cpp.

◆ operator==() [22/30]

LinIntRel Gecode::operator== ( const IntVar l,
const BoolVar r 
)

Construct linear equality relation.

Definition at line 75 of file int-rel.cpp.

◆ operator==() [23/30]

LinIntRel Gecode::operator== ( const BoolVar l,
const IntVar r 
)

Construct linear equality relation.

Definition at line 79 of file int-rel.cpp.

◆ operator==() [24/30]

LinIntRel Gecode::operator== ( const BoolVar l,
const BoolVar r 
)

Construct linear equality relation.

Definition at line 83 of file int-rel.cpp.

◆ operator==() [25/30]

LinIntRel Gecode::operator== ( const IntVar l,
const LinIntExpr r 
)

Construct linear equality relation.

Definition at line 87 of file int-rel.cpp.

◆ operator==() [26/30]

LinIntRel Gecode::operator== ( const BoolVar l,
const LinIntExpr r 
)

Construct linear equality relation.

Definition at line 91 of file int-rel.cpp.

◆ operator==() [27/30]

LinIntRel Gecode::operator== ( const LinIntExpr l,
const IntVar r 
)

Construct linear equality relation.

Definition at line 95 of file int-rel.cpp.

◆ operator==() [28/30]

LinIntRel Gecode::operator== ( const LinIntExpr l,
const BoolVar r 
)

Construct linear equality relation.

Definition at line 99 of file int-rel.cpp.

◆ operator==() [29/30]

LinIntRel Gecode::operator== ( const LinIntExpr l,
const LinIntExpr r 
)

Construct linear equality relation.

Definition at line 103 of file int-rel.cpp.

◆ operator!=() [15/30]

LinIntRel Gecode::operator!= ( int  l,
const IntVar r 
)

Construct linear disequality relation.

Definition at line 108 of file int-rel.cpp.

◆ operator!=() [16/30]

LinIntRel Gecode::operator!= ( int  l,
const BoolVar r 
)

Construct linear disequality relation.

Definition at line 112 of file int-rel.cpp.

◆ operator!=() [17/30]

LinIntRel Gecode::operator!= ( int  l,
const LinIntExpr r 
)

Construct linear disequality relation.

Definition at line 116 of file int-rel.cpp.

◆ operator!=() [18/30]

LinIntRel Gecode::operator!= ( const IntVar l,
int  r 
)

Construct linear disequality relation.

Definition at line 120 of file int-rel.cpp.

◆ operator!=() [19/30]

LinIntRel Gecode::operator!= ( const BoolVar l,
int  r 
)

Construct linear disequality relation.

Definition at line 124 of file int-rel.cpp.

◆ operator!=() [20/30]

LinIntRel Gecode::operator!= ( const LinIntExpr l,
int  r 
)

Construct linear disequality relation.

Definition at line 128 of file int-rel.cpp.

◆ operator!=() [21/30]

LinIntRel Gecode::operator!= ( const IntVar l,
const IntVar r 
)

Construct linear disequality relation.

Definition at line 132 of file int-rel.cpp.

◆ operator!=() [22/30]

LinIntRel Gecode::operator!= ( const IntVar l,
const BoolVar r 
)

Construct linear disequality relation.

Definition at line 136 of file int-rel.cpp.

◆ operator!=() [23/30]

LinIntRel Gecode::operator!= ( const BoolVar l,
const IntVar r 
)

Construct linear disequality relation.

Definition at line 140 of file int-rel.cpp.

◆ operator!=() [24/30]

LinIntRel Gecode::operator!= ( const BoolVar l,
const BoolVar r 
)

Construct linear disequality relation.

Definition at line 144 of file int-rel.cpp.

◆ operator!=() [25/30]

LinIntRel Gecode::operator!= ( const IntVar l,
const LinIntExpr r 
)

Construct linear disequality relation.

Definition at line 148 of file int-rel.cpp.

◆ operator!=() [26/30]

LinIntRel Gecode::operator!= ( const BoolVar l,
const LinIntExpr r 
)

Construct linear disequality relation.

Definition at line 152 of file int-rel.cpp.

◆ operator!=() [27/30]

LinIntRel Gecode::operator!= ( const LinIntExpr l,
const IntVar r 
)

Construct linear disequality relation.

Definition at line 156 of file int-rel.cpp.

◆ operator!=() [28/30]

LinIntRel Gecode::operator!= ( const LinIntExpr l,
const BoolVar r 
)

Construct linear disequality relation.

Definition at line 160 of file int-rel.cpp.

◆ operator!=() [29/30]

LinIntRel Gecode::operator!= ( const LinIntExpr l,
const LinIntExpr r 
)

Construct linear disequality relation.

Definition at line 164 of file int-rel.cpp.

◆ operator<() [12/26]

LinIntRel Gecode::operator< ( int  l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 169 of file int-rel.cpp.

◆ operator<() [13/26]

LinIntRel Gecode::operator< ( int  l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 173 of file int-rel.cpp.

◆ operator<() [14/26]

LinIntRel Gecode::operator< ( int  l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 177 of file int-rel.cpp.

◆ operator<() [15/26]

LinIntRel Gecode::operator< ( const IntVar l,
int  r 
)

Construct linear inequality relation.

Definition at line 181 of file int-rel.cpp.

◆ operator<() [16/26]

LinIntRel Gecode::operator< ( const BoolVar l,
int  r 
)

Construct linear inequality relation.

Definition at line 185 of file int-rel.cpp.

◆ operator<() [17/26]

LinIntRel Gecode::operator< ( const LinIntExpr l,
int  r 
)

Construct linear inequality relation.

Definition at line 189 of file int-rel.cpp.

◆ operator<() [18/26]

LinIntRel Gecode::operator< ( const IntVar l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 193 of file int-rel.cpp.

◆ operator<() [19/26]

LinIntRel Gecode::operator< ( const IntVar l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 197 of file int-rel.cpp.

◆ operator<() [20/26]

LinIntRel Gecode::operator< ( const BoolVar l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 201 of file int-rel.cpp.

◆ operator<() [21/26]

LinIntRel Gecode::operator< ( const BoolVar l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 205 of file int-rel.cpp.

◆ operator<() [22/26]

LinIntRel Gecode::operator< ( const IntVar l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 209 of file int-rel.cpp.

◆ operator<() [23/26]

LinIntRel Gecode::operator< ( const BoolVar l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 213 of file int-rel.cpp.

◆ operator<() [24/26]

LinIntRel Gecode::operator< ( const LinIntExpr l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 217 of file int-rel.cpp.

◆ operator<() [25/26]

LinIntRel Gecode::operator< ( const LinIntExpr l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 221 of file int-rel.cpp.

◆ operator<() [26/26]

LinIntRel Gecode::operator< ( const LinIntExpr l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 225 of file int-rel.cpp.

◆ operator<=() [12/28]

LinIntRel Gecode::operator<= ( int  l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 230 of file int-rel.cpp.

◆ operator<=() [13/28]

LinIntRel Gecode::operator<= ( int  l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 234 of file int-rel.cpp.

◆ operator<=() [14/28]

LinIntRel Gecode::operator<= ( int  l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 238 of file int-rel.cpp.

◆ operator<=() [15/28]

LinIntRel Gecode::operator<= ( const IntVar l,
int  r 
)

Construct linear inequality relation.

Definition at line 242 of file int-rel.cpp.

◆ operator<=() [16/28]

LinIntRel Gecode::operator<= ( const BoolVar l,
int  r 
)

Construct linear inequality relation.

Definition at line 246 of file int-rel.cpp.

◆ operator<=() [17/28]

LinIntRel Gecode::operator<= ( const LinIntExpr l,
int  r 
)

Construct linear inequality relation.

Definition at line 250 of file int-rel.cpp.

◆ operator<=() [18/28]

LinIntRel Gecode::operator<= ( const IntVar l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 254 of file int-rel.cpp.

◆ operator<=() [19/28]

LinIntRel Gecode::operator<= ( const IntVar l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 258 of file int-rel.cpp.

◆ operator<=() [20/28]

LinIntRel Gecode::operator<= ( const BoolVar l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 262 of file int-rel.cpp.

◆ operator<=() [21/28]

LinIntRel Gecode::operator<= ( const BoolVar l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 266 of file int-rel.cpp.

◆ operator<=() [22/28]

LinIntRel Gecode::operator<= ( const IntVar l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 270 of file int-rel.cpp.

◆ operator<=() [23/28]

LinIntRel Gecode::operator<= ( const BoolVar l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 274 of file int-rel.cpp.

◆ operator<=() [24/28]

LinIntRel Gecode::operator<= ( const LinIntExpr l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 278 of file int-rel.cpp.

◆ operator<=() [25/28]

LinIntRel Gecode::operator<= ( const LinIntExpr l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 282 of file int-rel.cpp.

◆ operator<=() [26/28]

LinIntRel Gecode::operator<= ( const LinIntExpr l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 286 of file int-rel.cpp.

◆ operator>() [12/26]

LinIntRel Gecode::operator> ( int  l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 291 of file int-rel.cpp.

◆ operator>() [13/26]

LinIntRel Gecode::operator> ( int  l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 295 of file int-rel.cpp.

◆ operator>() [14/26]

LinIntRel Gecode::operator> ( int  l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 299 of file int-rel.cpp.

◆ operator>() [15/26]

LinIntRel Gecode::operator> ( const IntVar l,
int  r 
)

Construct linear inequality relation.

Definition at line 303 of file int-rel.cpp.

◆ operator>() [16/26]

LinIntRel Gecode::operator> ( const BoolVar l,
int  r 
)

Construct linear inequality relation.

Definition at line 307 of file int-rel.cpp.

◆ operator>() [17/26]

LinIntRel Gecode::operator> ( const LinIntExpr l,
int  r 
)

Construct linear inequality relation.

Definition at line 311 of file int-rel.cpp.

◆ operator>() [18/26]

LinIntRel Gecode::operator> ( const IntVar l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 315 of file int-rel.cpp.

◆ operator>() [19/26]

LinIntRel Gecode::operator> ( const IntVar l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 319 of file int-rel.cpp.

◆ operator>() [20/26]

LinIntRel Gecode::operator> ( const BoolVar l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 323 of file int-rel.cpp.

◆ operator>() [21/26]

LinIntRel Gecode::operator> ( const BoolVar l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 327 of file int-rel.cpp.

◆ operator>() [22/26]

LinIntRel Gecode::operator> ( const IntVar l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 331 of file int-rel.cpp.

◆ operator>() [23/26]

LinIntRel Gecode::operator> ( const BoolVar l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 335 of file int-rel.cpp.

◆ operator>() [24/26]

LinIntRel Gecode::operator> ( const LinIntExpr l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 339 of file int-rel.cpp.

◆ operator>() [25/26]

LinIntRel Gecode::operator> ( const LinIntExpr l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 343 of file int-rel.cpp.

◆ operator>() [26/26]

LinIntRel Gecode::operator> ( const LinIntExpr l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 347 of file int-rel.cpp.

◆ operator>=() [12/28]

LinIntRel Gecode::operator>= ( int  l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 352 of file int-rel.cpp.

◆ operator>=() [13/28]

LinIntRel Gecode::operator>= ( int  l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 356 of file int-rel.cpp.

◆ operator>=() [14/28]

LinIntRel Gecode::operator>= ( int  l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 360 of file int-rel.cpp.

◆ operator>=() [15/28]

LinIntRel Gecode::operator>= ( const IntVar l,
int  r 
)

Construct linear inequality relation.

Definition at line 364 of file int-rel.cpp.

◆ operator>=() [16/28]

LinIntRel Gecode::operator>= ( const BoolVar l,
int  r 
)

Construct linear inequality relation.

Definition at line 368 of file int-rel.cpp.

◆ operator>=() [17/28]

LinIntRel Gecode::operator>= ( const LinIntExpr l,
int  r 
)

Construct linear inequality relation.

Definition at line 372 of file int-rel.cpp.

◆ operator>=() [18/28]

LinIntRel Gecode::operator>= ( const IntVar l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 376 of file int-rel.cpp.

◆ operator>=() [19/28]

LinIntRel Gecode::operator>= ( const IntVar l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 380 of file int-rel.cpp.

◆ operator>=() [20/28]

LinIntRel Gecode::operator>= ( const BoolVar l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 384 of file int-rel.cpp.

◆ operator>=() [21/28]

LinIntRel Gecode::operator>= ( const BoolVar l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 388 of file int-rel.cpp.

◆ operator>=() [22/28]

LinIntRel Gecode::operator>= ( const IntVar l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 392 of file int-rel.cpp.

◆ operator>=() [23/28]

LinIntRel Gecode::operator>= ( const BoolVar l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 396 of file int-rel.cpp.

◆ operator>=() [24/28]

LinIntRel Gecode::operator>= ( const LinIntExpr l,
const IntVar r 
)

Construct linear inequality relation.

Definition at line 400 of file int-rel.cpp.

◆ operator>=() [25/28]

LinIntRel Gecode::operator>= ( const LinIntExpr l,
const BoolVar r 
)

Construct linear inequality relation.

Definition at line 404 of file int-rel.cpp.

◆ operator>=() [26/28]

LinIntRel Gecode::operator>= ( const LinIntExpr l,
const LinIntExpr r 
)

Construct linear inequality relation.

Definition at line 408 of file int-rel.cpp.

◆ rows_interchange()

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

Interchangeable rows symmetry specification.

Definition at line 44 of file ldsb.hpp.

◆ columns_interchange()

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

Interchangeable columns symmetry specification.

Definition at line 55 of file ldsb.hpp.

◆ rows_reflect()

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

Reflect rows symmetry specification.

Definition at line 66 of file ldsb.hpp.

◆ columns_reflect()

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

Reflect columns symmetry specification.

Definition at line 89 of file ldsb.hpp.

◆ diagonal_reflect()

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

Reflect around main diagonal symmetry specification.

Definition at line 112 of file ldsb.hpp.

◆ operator+() [44/49]

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

Concatenate x and y.

Definition at line 95 of file matrix.hpp.

◆ operator+() [45/49]

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 103 of file matrix.hpp.

◆ operator+() [46/49]

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 110 of file matrix.hpp.

◆ operator+() [47/49]

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 117 of file matrix.hpp.

◆ operator+() [48/49]

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 124 of file matrix.hpp.

◆ operator<<() [26/29]

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 193 of file matrix.hpp.

◆ operator<<() [27/29]

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 207 of file matrix.hpp.

◆ element() [15/29]

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

Definition at line 212 of file matrix.hpp.

◆ element() [16/29]

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

Definition at line 217 of file matrix.hpp.

◆ element() [17/29]

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

Definition at line 222 of file matrix.hpp.

◆ element() [18/29]

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

Definition at line 227 of file matrix.hpp.

◆ element() [19/29]

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

Definition at line 234 of file matrix.hpp.

◆ element() [20/29]

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

Definition at line 239 of file matrix.hpp.

◆ operator<<() [28/29]

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 48 of file reg.hpp.

◆ operator&()

SetExpr Gecode::operator& ( const SetExpr l,
const SetExpr r 
)

Intersection of set expressions.

Definition at line 674 of file set-expr.cpp.

◆ operator|()

SetExpr Gecode::operator| ( const SetExpr l,
const SetExpr r 
)

Union of set expressions.

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

◆ operator+() [49/49]

SetExpr Gecode::operator+ ( const SetExpr l,
const SetExpr r 
)

Disjoint union of set expressions.

Definition at line 682 of file set-expr.cpp.

◆ operator-() [35/36]

SetExpr Gecode::operator- ( const SetExpr e)

Complement expression.

Definition at line 686 of file set-expr.cpp.

◆ operator-() [36/36]

SetExpr Gecode::operator- ( const SetExpr l,
const SetExpr r 
)

Difference of set expressions.

Definition at line 690 of file set-expr.cpp.

◆ singleton()

SetExpr Gecode::singleton ( const LinIntExpr e)

Singleton expression.

Definition at line 694 of file set-expr.cpp.

◆ inter()

SetExpr Gecode::inter ( const SetVarArgs x)

Intersection of set variables.

Definition at line 699 of file set-expr.cpp.

◆ setunion()

SetExpr Gecode::setunion ( const SetVarArgs x)

Union of set variables.

Definition at line 708 of file set-expr.cpp.

◆ setdunion()

SetExpr Gecode::setdunion ( const SetVarArgs x)

Disjoint union of set variables.

Definition at line 717 of file set-expr.cpp.

◆ cardinality() [1/5]

LinIntExpr Gecode::cardinality ( const SetExpr e)

Cardinality of set expression.

Definition at line 818 of file set-expr.cpp.

◆ min() [12/14]

LinIntExpr Gecode::min ( const SetExpr e)

Minimum element of set expression.

Definition at line 823 of file set-expr.cpp.

◆ max() [12/14]

LinIntExpr Gecode::max ( const SetExpr e)

Minimum element of set expression.

Definition at line 828 of file set-expr.cpp.

◆ expr() [4/4]

SetVar Gecode::expr ( Home  home,
const SetExpr e 
)

Post set expression and return its value.

Definition at line 838 of file set-expr.cpp.

◆ operator==() [30/30]

SetRel Gecode::operator== ( const SetExpr e0,
const SetExpr e1 
)

Equality of set expressions.

Definition at line 49 of file set-rel.cpp.

◆ operator!=() [30/30]

SetRel Gecode::operator!= ( const SetExpr e0,
const SetExpr e1 
)

Disequality of set expressions.

Definition at line 53 of file set-rel.cpp.

◆ operator<=() [27/28]

SetCmpRel Gecode::operator<= ( const SetExpr e0,
const SetExpr e1 
)

Subset of set expressions.

Definition at line 57 of file set-rel.cpp.

◆ operator<=() [28/28]

BoolExpr Gecode::operator<= ( const SetCmpRel r,
const SetExpr l 
)

Subset of set expressions.

Definition at line 61 of file set-rel.cpp.

◆ operator>=() [27/28]

SetCmpRel Gecode::operator>= ( const SetExpr e0,
const SetExpr e1 
)

Superset of set expressions.

Definition at line 65 of file set-rel.cpp.

◆ operator>=() [28/28]

BoolExpr Gecode::operator>= ( const SetCmpRel r,
const SetExpr l 
)

Superset of set expressions.

Definition at line 69 of file set-rel.cpp.

◆ operator||() [2/2]

SetRel Gecode::operator|| ( const SetExpr e0,
const SetExpr e1 
)

Disjointness of set expressions.

Definition at line 73 of file set-rel.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 1615 of file minimodel.hh.

◆ channel() [11/17]

IntVar Gecode::channel ( Home  home,
BoolVar  b,
IntPropLevel  ipl = IPL_DEF 
)
inline

Return integer variable equal to $b$.

Definition at line 1623 of file minimodel.hh.

◆ channel() [12/17]

IntVar Gecode::channel ( Home  home,
FloatVar  f 
)
inline

Return integer variable equal to $f$.

Definition at line 1632 of file minimodel.hh.

◆ 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 1645 of file minimodel.hh.

◆ 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 1674 of file minimodel.hh.

◆ 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 1683 of file minimodel.hh.

◆ 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 1695 of file minimodel.hh.

◆ 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 1704 of file minimodel.hh.

◆ 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 1713 of file minimodel.hh.

◆ 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 1725 of file minimodel.hh.

◆ 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 1735 of file minimodel.hh.

◆ 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 1744 of file minimodel.hh.

◆ 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 1756 of file minimodel.hh.

◆ 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 1765 of file minimodel.hh.

◆ 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 1774 of file minimodel.hh.

◆ 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 1786 of file minimodel.hh.

◆ 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 1796 of file minimodel.hh.

◆ 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 1805 of file minimodel.hh.

◆ 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 1817 of file minimodel.hh.

◆ 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 1826 of file minimodel.hh.

◆ 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 1835 of file minimodel.hh.

◆ 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 1847 of file minimodel.hh.

◆ 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 1854 of file minimodel.hh.

◆ 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 1861 of file minimodel.hh.

◆ 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 1868 of file minimodel.hh.

◆ 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 1893 of file minimodel.hh.

◆ 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 1901 of file minimodel.hh.

◆ 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 1911 of file minimodel.hh.

◆ bab()

template<class T >
SEB Gecode::bab ( const Search::Options o)

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

Definition at line 91 of file bab.hpp.

◆ dfs() [1/2]

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

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

Definition at line 77 of file dfs.hpp.

◆ dfs() [2/2]

template<class T >
SEB Gecode::dfs ( const Search::Options o)

Return a depth-first search engine builder.

Definition at line 84 of file dfs.hpp.

◆ lds()

template<class T >
SEB Gecode::lds ( const Search::Options o)

Return a limited discrepancy search engine builder.

Definition at line 85 of file lds.hpp.

◆ pbs() [1/2]

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

Return a portfolio search engine builder.

Definition at line 329 of file pbs.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 121 of file rbs.hpp.

◆ pbs() [2/2]

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

Return a portfolio search engine builder.

Definition at line 329 of file pbs.hpp.

◆ 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 43 of file bool.cpp.

◆ SET_ASSIGN_MIN_INC()

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

Definition at line 59 of file assign.hpp.

◆ SET_ASSIGN_MIN_EXC()

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

Definition at line 64 of file assign.hpp.

◆ SET_ASSIGN_MED_INC()

SetAssign Gecode::SET_ASSIGN_MED_INC ( void  )
inline

Definition at line 69 of file assign.hpp.

◆ SET_ASSIGN_MED_EXC()

SetAssign Gecode::SET_ASSIGN_MED_EXC ( void  )
inline

Definition at line 74 of file assign.hpp.

◆ SET_ASSIGN_MAX_INC()

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

Definition at line 79 of file assign.hpp.

◆ SET_ASSIGN_MAX_EXC()

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

Definition at line 84 of file assign.hpp.

◆ SET_ASSIGN_RND_INC()

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

Definition at line 89 of file assign.hpp.

◆ SET_ASSIGN_RND_EXC()

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

Definition at line 94 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 99 of file assign.hpp.

◆ SET_VAL_MIN_INC()

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

Definition at line 59 of file val.hpp.

◆ SET_VAL_MIN_EXC()

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

Definition at line 64 of file val.hpp.

◆ SET_VAL_MED_INC()

SetValBranch Gecode::SET_VAL_MED_INC ( void  )
inline

Definition at line 69 of file val.hpp.

◆ SET_VAL_MED_EXC()

SetValBranch Gecode::SET_VAL_MED_EXC ( void  )
inline

Definition at line 74 of file val.hpp.

◆ SET_VAL_MAX_INC()

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

Definition at line 79 of file val.hpp.

◆ SET_VAL_MAX_EXC()

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

Definition at line 84 of file val.hpp.

◆ SET_VAL_RND_INC()

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

Definition at line 89 of file val.hpp.

◆ SET_VAL_RND_EXC()

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

Definition at line 94 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 99 of file val.hpp.

◆ SET_VAR_NONE()

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

Definition at line 100 of file var.hpp.

◆ SET_VAR_RND()

SetVarBranch Gecode::SET_VAR_RND ( Rnd  r)
inline

Definition at line 105 of file var.hpp.

◆ SET_VAR_MERIT_MIN()

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

Definition at line 110 of file var.hpp.

◆ SET_VAR_MERIT_MAX()

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

Definition at line 115 of file var.hpp.

◆ SET_VAR_DEGREE_MIN()

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

Definition at line 120 of file var.hpp.

◆ SET_VAR_DEGREE_MAX()

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

Definition at line 125 of file var.hpp.

◆ SET_VAR_AFC_MIN() [1/2]

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

Definition at line 130 of file var.hpp.

◆ SET_VAR_AFC_MIN() [2/2]

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

Definition at line 135 of file var.hpp.

◆ SET_VAR_AFC_MAX() [1/2]

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

Definition at line 140 of file var.hpp.

◆ SET_VAR_AFC_MAX() [2/2]

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

Definition at line 145 of file var.hpp.

◆ SET_VAR_ACTION_MIN() [1/2]

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

Definition at line 150 of file var.hpp.

◆ SET_VAR_ACTION_MIN() [2/2]

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

Definition at line 155 of file var.hpp.

◆ SET_VAR_ACTION_MAX() [1/2]

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

Definition at line 160 of file var.hpp.

◆ SET_VAR_ACTION_MAX() [2/2]

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

Definition at line 165 of file var.hpp.

◆ SET_VAR_CHB_MIN() [1/2]

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

Definition at line 170 of file var.hpp.

◆ SET_VAR_CHB_MIN() [2/2]

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

Definition at line 175 of file var.hpp.

◆ SET_VAR_CHB_MAX() [1/2]

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

Definition at line 180 of file var.hpp.

◆ SET_VAR_CHB_MAX() [2/2]

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

Definition at line 185 of file var.hpp.

◆ SET_VAR_MIN_MIN()

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

Definition at line 190 of file var.hpp.

◆ SET_VAR_MIN_MAX()

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

Definition at line 195 of file var.hpp.

◆ SET_VAR_MAX_MIN()

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

Definition at line 200 of file var.hpp.

◆ SET_VAR_MAX_MAX()

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

Definition at line 205 of file var.hpp.

◆ SET_VAR_SIZE_MIN()

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

Definition at line 210 of file var.hpp.

◆ SET_VAR_SIZE_MAX()

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

Definition at line 215 of file var.hpp.

◆ SET_VAR_DEGREE_SIZE_MIN()

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

Definition at line 220 of file var.hpp.

◆ SET_VAR_DEGREE_SIZE_MAX()

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

Definition at line 225 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MIN() [1/2]

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

Definition at line 230 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MIN() [2/2]

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

Definition at line 235 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MAX() [1/2]

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

Definition at line 240 of file var.hpp.

◆ SET_VAR_AFC_SIZE_MAX() [2/2]

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

Definition at line 245 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MIN() [1/2]

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

Definition at line 250 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MIN() [2/2]

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

Definition at line 255 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MAX() [1/2]

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

Definition at line 260 of file var.hpp.

◆ SET_VAR_ACTION_SIZE_MAX() [2/2]

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

Definition at line 265 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MIN() [1/2]

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

Definition at line 270 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MIN() [2/2]

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

Definition at line 275 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MAX() [1/2]

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

Definition at line 280 of file var.hpp.

◆ SET_VAR_CHB_SIZE_MAX() [2/2]

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

Definition at line 285 of file var.hpp.

◆ 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 48 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 58 of file cardinality.cpp.

◆ cardinality() [4/5]

void Gecode::cardinality ( Home  home,
SetVar  s,
IntVar  x 
)

Definition at line 70 of file cardinality.cpp.

◆ cardinality() [5/5]

void Gecode::cardinality ( Home  home,
SetVar  s,
IntVar  x,
Reify  r 
)

Definition at line 76 of file cardinality.cpp.

◆ channelSorted()

void Gecode::channelSorted ( Home  home,
const IntVarArgs x,
SetVar  y 
)

Definition at line 49 of file channel.cpp.

◆ channel() [15/17]

void Gecode::channel ( Home  home,
const IntVarArgs x,
const SetVarArgs y 
)

Definition at line 56 of file channel.cpp.

◆ channel() [16/17]

void Gecode::channel ( Home  home,
const BoolVarArgs x,
SetVar  y 
)

Definition at line 68 of file channel.cpp.

◆ channel() [17/17]

void Gecode::channel ( Home  home,
const SetVarArgs x,
const SetVarArgs y 
)

Definition at line 76 of file channel.cpp.

◆ convex() [1/2]

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

Definition at line 45 of file convex.cpp.

◆ convex() [2/2]

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

Definition at line 52 of file convex.cpp.

◆ atmostOne()

void Gecode::atmostOne ( Home  home,
const SetVarArgs xa,
unsigned int  c 
)

Definition at line 45 of file distinct.cpp.

◆ dom() [22/32]

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

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

Definition at line 47 of file dom.cpp.

◆ dom() [23/32]

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

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

Definition at line 54 of file dom.cpp.

◆ dom() [24/32]

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

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

Definition at line 61 of file dom.cpp.

◆ dom() [25/32]

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

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

Definition at line 69 of file dom.cpp.

◆ dom() [26/32]

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

Propagates $ x \sim_r s$.

Definition at line 77 of file dom.cpp.

◆ dom() [27/32]

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

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

Definition at line 194 of file dom.cpp.

◆ dom() [28/32]

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

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

Definition at line 347 of file dom.cpp.

◆ dom() [29/32]

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

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

Definition at line 354 of file dom.cpp.

◆ dom() [30/32]

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

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

Definition at line 362 of file dom.cpp.

◆ dom() [31/32]

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

Constrain domain of x according to domain of d.

Definition at line 634 of file dom.cpp.

◆ dom() [32/32]

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 649 of file dom.cpp.

◆ element() [21/29]

void Gecode::element ( Home  home,
SetOpType  op,
const SetVarArgs x,
SetVar  y,
SetVar  z,
const IntSet universe 
)

Definition at line 56 of file element.cpp.

◆ element() [22/29]

void Gecode::element ( Home  home,
SetOpType  op,
const IntVarArgs x,
SetVar  y,
SetVar  z,
const IntSet universe 
)

Definition at line 96 of file element.cpp.

◆ element() [23/29]

void Gecode::element ( Home  home,
SetOpType  op,
const IntSetArgs x,
SetVar  y,
SetVar  z,
const IntSet universe 
)

Definition at line 136 of file element.cpp.

◆ element() [24/29]

void Gecode::element ( Home  home,
SetOpType  op,
const IntArgs x,
SetVar  y,
SetVar  z,
const IntSet universe 
)

Definition at line 181 of file element.cpp.

◆ element() [25/29]

void Gecode::element ( Home  home,
const SetVarArgs x,
IntVar  y,
SetVar  z 
)

Definition at line 190 of file element.cpp.

◆ element() [26/29]

void Gecode::element ( Home  home,
const IntSetArgs x,
IntVar  y,
SetVar  z 
)

Definition at line 205 of file element.cpp.

◆ element() [27/29]

void Gecode::element ( Home  home,
const IntSetArgs a,
IntVar  x,
int  w,
IntVar  y,
int  h,
SetVar  z 
)

Definition at line 231 of file element.cpp.

◆ element() [28/29]

void Gecode::element ( Home  home,
const SetVarArgs a,
IntVar  x,
int  w,
IntVar  y,
int  h,
SetVar  z 
)

Definition at line 242 of file element.cpp.

◆ wait() [7/8]

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

Definition at line 44 of file exec.cpp.

◆ wait() [8/8]

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

Definition at line 50 of file exec.cpp.

◆ rel() [2/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 48 of file int.cpp.

◆ rel() [3/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 140 of file int.cpp.

◆ min() [13/14]

void Gecode::min ( Home  home,
SetVar  s,
IntVar  x 
)

Definition at line 233 of file int.cpp.

◆ notMin()

void Gecode::notMin ( Home  home,
SetVar  s,
IntVar  x 
)

Definition at line 239 of file int.cpp.

◆ min() [14/14]

void Gecode::min ( Home  home,
SetVar  s,
IntVar  x,
Reify  r 
)

Definition at line 245 of file int.cpp.

◆ max() [13/14]

void Gecode::max ( Home  home,
SetVar  s,
IntVar  x 
)

Definition at line 265 of file int.cpp.

◆ notMax()

void Gecode::notMax ( Home  home,
SetVar  s,
IntVar  x 
)

Definition at line 271 of file int.cpp.

◆ max() [14/14]

void Gecode::max ( Home  home,
SetVar  s,
IntVar  x,
Reify  r 
)

Definition at line 277 of file int.cpp.

◆ weights()

void Gecode::weights ( Home  home,
IntSharedArray  elements,
IntSharedArray  weights,
SetVar  x,
IntVar  y 
)

Definition at line 296 of file int.cpp.

◆ rel() [4/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 41 of file int.hpp.

◆ rel() [5/21]

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

Post reified propagator for.

Definition at line 46 of file int.hpp.

◆ VariableSymmetry() [4/4]

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

Definition at line 48 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 54 of file ldsb.cpp.

◆ precede() [1/2]

void Gecode::precede ( Home  home,
const SetVarArgs x,
int  s,
int  t 
)

Definition at line 49 of file precede.cpp.

◆ precede() [2/2]

void Gecode::precede ( Home  home,
const SetVarArgs x,
const IntArgs c 
)

Definition at line 60 of file precede.cpp.

◆ viewarrayshared()

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

Definition at line 51 of file common.hpp.

◆ viewarrayshared< Set::SingletonView, Set::SetView >()

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

Definition at line 59 of file common.hpp.

◆ rel() [6/21]

void Gecode::rel ( Home  home,
const IntSet x,
SetOpType  op,
SetVar  y,
SetRelType  r,
const IntSet z 
)

Definition at line 51 of file rel-op-const-cvc.cpp.

◆ rel() [7/21]

void Gecode::rel ( Home  home,
const IntSet x,
SetOpType  op,
SetVar  y,
SetRelType  r,
SetVar  z 
)

Definition at line 51 of file rel-op-const-cvv.cpp.

◆ rel() [8/21]

void Gecode::rel ( Home  home,
SetVar  x,
SetOpType  op,
const IntSet y,
SetRelType  r,
const IntSet z 
)

Definition at line 51 of file rel-op-const-vcc.cpp.

◆ rel() [9/21]

void Gecode::rel ( Home  home,
SetVar  x,
SetOpType  op,
const IntSet y,
SetRelType  r,
SetVar  z 
)

Definition at line 51 of file rel-op-const-vcv.cpp.

◆ rel() [10/21]

void Gecode::rel ( Home  home,
SetVar  x,
SetOpType  op,
SetVar  y,
SetRelType  r,
const IntSet z 
)

Definition at line 51 of file rel-op-const-vvc.cpp.

◆ rel() [11/21]

void Gecode::rel ( Home  home,
SetOpType  op,
const IntVarArgs x,
SetVar  y 
)

Definition at line 49 of file rel-op-singleton.cpp.

◆ rel() [12/21]

void Gecode::rel ( Home  home,
SetOpType  op,
const IntVarArgs x,
const IntSet z,
SetVar  y 
)

Definition at line 81 of file rel-op-singleton.cpp.

◆ rel() [13/21]

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

Definition at line 49 of file rel-op-ternary.cpp.

◆ rel() [14/21]

void Gecode::rel ( Home  home,
SetOpType  op,
const SetVarArgs x,
SetVar  y 
)

Definition at line 49 of file rel-op.cpp.

◆ rel() [15/21]

void Gecode::rel ( Home  home,
SetOpType  op,
const SetVarArgs x,
const IntSet z,
SetVar  y 
)

Definition at line 76 of file rel-op.cpp.

◆ rel() [16/21]

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

Post propagator for $ x \sim_r y$.

Definition at line 175 of file rel.cpp.

◆ rel() [17/21]

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

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

Definition at line 181 of file rel.cpp.

◆ rel() [18/21]

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

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

Definition at line 189 of file rel.cpp.

◆ rel() [19/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 204 of file rel.cpp.

◆ rel() [20/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 221 of file rel.cpp.

◆ rel() [21/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 240 of file rel.cpp.

◆ relax() [4/4]

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

Definition at line 66 of file relax.cpp.

◆ sequence() [3/4]

void Gecode::sequence ( Home  home,
const SetVarArgs xa 
)

Definition at line 47 of file sequence.cpp.

◆ sequence() [4/4]

void Gecode::sequence ( Home  home,
const SetVarArgs xa,
SetVar  y 
)

Definition at line 56 of file sequence.cpp.

◆ operator<<() [29/29]

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

Definition at line 42 of file print.hpp.

◆ f()

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

◆ variable()

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

◆ element() [29/29]

Exclude median Gecode::element ( rounding  downwards)

◆ ptr_cast()

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

Cast p into pointer of type T.

Definition at line 46 of file cast.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 1322 of file set.hh.

◆ ME_GEN_FAILED

const ModEvent Gecode::ME_GEN_FAILED = -1

Generic modification event: failed variable.

Definition at line 145 of file core.hpp.

◆ ME_GEN_NONE

const ModEvent Gecode::ME_GEN_NONE = 0

Generic modification event: no modification.

Definition at line 147 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 149 of file core.hpp.

◆ PC_GEN_NONE

const PropCond Gecode::PC_GEN_NONE = -1

Propagation condition to be ignored (convenience)

Definition at line 154 of file core.hpp.

◆ PC_GEN_ASSIGNED

const PropCond Gecode::PC_GEN_ASSIGNED = 0

Propagation condition for an assigned variable.

Definition at line 156 of file core.hpp.

◆ x

Post propagator for SetVar Gecode::x

Definition at line 784 of file set.hh.

◆ op

Post propagator for SetVar SetOpType Gecode::op

Definition at line 784 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)

Definition at line 784 of file set.hh.

◆ r

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

Definition at line 784 of file set.hh.

◆ z

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

Definition at line 784 of file set.hh.

Post propagator for SetVar x
Definition: set.hh:784
Post propagator for SetVar SetOpType SetVar y
Definition: set.hh:784
SetOpType
Common operations for sets.
Definition: set.hh:662
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
Definition: rel.cpp:47
Post propagator for SetVar SetOpType op
Definition: set.hh:784
Post propagator for f(x \diamond_{\mathit{op}} y) \sim_r z \f$ void rel(Home home