Generated on Sat Apr 10 2021 00:00:00 for Gecode by doxygen 1.9.1
int.hh File Reference
#include <climits>
#include <cfloat>
#include <iostream>
#include <vector>
#include <unordered_map>
#include <functional>
#include <utility>
#include <initializer_list>
#include <gecode/kernel.hh>
#include <gecode/search.hh>
#include <gecode/iter.hh>
#include <gecode/support/auto-link.hpp>
#include <gecode/int/exception.hpp>
#include <gecode/int/limits.hpp>
#include <gecode/int/int-set-1.hpp>
#include <gecode/int/var-imp.hpp>
#include <gecode/int/view.hpp>
#include <gecode/int/propagator.hpp>
#include <gecode/int/array-traits.hpp>
#include <gecode/int/int-set-2.hpp>
#include <gecode/int/array.hpp>
#include <gecode/int/reify.hpp>
#include <gecode/int/irt.hpp>
#include <gecode/int/ipl.hpp>
#include <gecode/int/channel.hpp>
#include <gecode/int/extensional/dfa.hpp>
#include <gecode/int/extensional/tuple-set.hpp>
#include <gecode/int/extensional.hpp>
#include <gecode/int/branch/traits.hpp>
#include <gecode/int/branch/afc.hpp>
#include <gecode/int/branch/action.hpp>
#include <gecode/int/branch/chb.hpp>
#include <gecode/int/branch/var.hpp>
#include <gecode/int/branch/val.hpp>
#include <gecode/int/branch/assign.hpp>
#include <gecode/int/branch.hpp>
#include <gecode/int/trace/int-trace-view.hpp>
#include <gecode/int/trace/bool-trace-view.hpp>
#include <gecode/int/trace/int-delta.hpp>
#include <gecode/int/trace/bool-delta.hpp>
#include <gecode/int/trace/traits.hpp>
#include <gecode/int/trace.hpp>

Go to the source code of this file.

Classes

class  Gecode::IntSet
 Integer sets. More...
 
class  Gecode::IntSetRanges
 Range iterator for integer sets. More...
 
class  Gecode::IntSetValues
 Value iterator for integer sets. More...
 
class  Gecode::IntVar
 Integer variables. More...
 
class  Gecode::IntVarRanges
 Range iterator for integer variables More...
 
class  Gecode::IntVarValues
 Value iterator for integer variables. More...
 
class  Gecode::BoolVar
 Boolean integer variables. More...
 
class  Gecode::IntArgs
 Passing integer arguments. More...
 
class  Gecode::IntVarArgs
 Passing integer variables. More...
 
class  Gecode::BoolVarArgs
 Passing Boolean variables. More...
 
class  Gecode::IntVarArray
 Integer variable array. More...
 
class  Gecode::BoolVarArray
 Boolean variable array. More...
 
class  Gecode::Reify
 Reification specification. More...
 
class  Gecode::ArrayTraits< ArgArray< TaskType > >
 Traits of TaskTypeArgs. More...
 
class  Gecode::DFA
 Deterministic finite automaton (DFA) More...
 
class  Gecode::DFA::Transition
 Specification of a DFA transition. More...
 
class  Gecode::DFA::Transitions
 Iterator for DFA transitions (sorted by symbols) More...
 
class  Gecode::DFA::Symbols
 Iterator for DFA symbols. More...
 
class  Gecode::TupleSet
 Class represeting a set of tuples. More...
 
class  Gecode::TupleSet::Range
 Range information. More...
 
class  Gecode::TupleSet::ValueData
 Data about values in the table. More...
 
class  Gecode::TupleSet::Data
 Data stored for a Table. More...
 
class  Gecode::TupleSet::Ranges
 Iterator over ranges. More...
 
class  Gecode::IntAFC
 Recording AFC information for integer variables. More...
 
class  Gecode::BoolAFC
 Recording AFC information for Boolean variables. More...
 
class  Gecode::IntAction
 Recording actions for integer variables. More...
 
class  Gecode::BoolAction
 Recording actions for Boolean variables. More...
 
class  Gecode::IntCHB
 Recording CHB for integer variables. More...
 
class  Gecode::BoolCHB
 Recording CHB for Boolean variables. More...
 
class  Gecode::IntVarBranch
 Which integer variable to select for branching. More...
 
class  Gecode::BoolVarBranch
 Which Boolean variable to select for branching. More...
 
class  Gecode::IntValBranch
 Which values to select for branching first. More...
 
class  Gecode::BoolValBranch
 Which values to select for branching first. More...
 
class  Gecode::IntAssign
 Which values to select for assignment. More...
 
class  Gecode::BoolAssign
 Which values to select for assignment. More...
 
class  Gecode::SymmetryHandle
 A reference-counted pointer to a SymmetryObject. More...
 
class  Gecode::ArrayTraits< ArgArray< SymmetryHandle > >
 Traits of Symmetries. More...
 
class  Gecode::Symmetries
 Collection of symmetries. More...
 
class  Gecode::IntTraceDelta
 Trace delta information for integer variables. More...
 
class  Gecode::BoolTraceDelta
 Trace delta information for Boolean variables. More...
 
class  Gecode::StdIntTracer
 Standard integer variable tracer. More...
 
class  Gecode::StdBoolTracer
 Standard Boolean variable tracer. More...
 

Namespaces

 Gecode::Int
 Finite domain integers.
 
 Gecode::Int::Limits
 Numerical limits for integer variables.
 
 Gecode::Int::LDSB
 Symmetry breaking for integer variables.
 

Macros

#define GECODE_INT_EXPORT
 
#define GECODE_LIBRARY_NAME   "Int"
 

Typedefs

typedef ArgArray< IntSet > Gecode::IntSetArgs
 Passing set arguments. More...
 
typedef ArgArray< TaskType > Gecode::TaskTypeArgs
 Argument arrays for passing task type arguments. More...
 
typedef SharedArray< int > Gecode::IntSharedArray
 Arrays of integers that can be shared among several element constraints. More...
 
typedef std::function< bool(const Space &home, IntVar x, int i)> Gecode::IntBranchFilter
 Branch filter function type for integer variables. More...
 
typedef std::function< bool(const Space &home, BoolVar x, int i)> Gecode::BoolBranchFilter
 Branch filter function type for Boolean variables. More...
 
typedef std::function< double(const Space &home, IntVar x, int i)> Gecode::IntBranchMerit
 Branch merit function type for integer variables. More...
 
typedef std::function< double(const Space &home, BoolVar x, int i)> Gecode::BoolBranchMerit
 Branch merit function type for Boolean variables. More...
 
typedef std::function< int(const Space &home, IntVar x, int i)> Gecode::IntBranchVal
 Branch value function type for integer variables. More...
 
typedef std::function< int(const Space &home, BoolVar x, int i)> Gecode::BoolBranchVal
 Branch value function type for Boolean variables. More...
 
typedef std::function< void(Space &home, unsigned int a, IntVar x, int i, int n)> Gecode::IntBranchCommit
 Branch commit function type for integer variables. More...
 
typedef std::function< void(Space &home, unsigned int a, BoolVar x, int i, int n)> Gecode::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)> Gecode::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)> Gecode::BoolVarValPrint
 Function type for printing branching alternatives for Boolean variables. More...
 
typedef ViewTracer< Int::IntView > Gecode::IntTracer
 Tracer for integer variables. More...
 
typedef ViewTraceRecorder< Int::IntView > Gecode::IntTraceRecorder
 Trace recorder for integer variables. More...
 
typedef ViewTracer< Int::BoolView > Gecode::BoolTracer
 Tracer for Boolean variables. More...
 
typedef ViewTraceRecorder< Int::BoolView > Gecode::BoolTraceRecorder
 Trace recorder for Boolean variables. More...
 

Enumerations

enum  Gecode::ReifyMode { Gecode::RM_EQV , Gecode::RM_IMP , Gecode::RM_PMI }
 Mode for reification. More...
 
enum  Gecode::IntRelType {
  Gecode::IRT_EQ , Gecode::IRT_NQ , Gecode::IRT_LQ , Gecode::IRT_LE ,
  Gecode::IRT_GQ , Gecode::IRT_GR
}
 Relation types for integers. More...
 
enum  Gecode::BoolOpType {
  Gecode::BOT_AND , Gecode::BOT_OR , Gecode::BOT_IMP , Gecode::BOT_EQV ,
  Gecode::BOT_XOR
}
 Operation types for Booleans. More...
 
enum  Gecode::IntPropLevel {
  Gecode::IPL_DEF = 0 , Gecode::IPL_VAL = 1 , Gecode::IPL_BND = 2 , Gecode::IPL_DOM = 3 ,
  Gecode::IPL_BASIC = 4 , Gecode::IPL_ADVANCED = 8 , Gecode::IPL_BASIC_ADVANCED = IPL_BASIC | IPL_ADVANCED , Gecode::_IPL_BITS = 4
}
 Propagation levels for integer propagators. More...
 
enum  Gecode::TaskType { Gecode::TT_FIXP , Gecode::TT_FIXS , Gecode::TT_FIXE }
 Type of task for scheduling constraints. More...
 

Functions

bool Gecode::Int::Limits::valid (int n)
 Return whether n is in range. More...
 
bool Gecode::Int::Limits::valid (long long int n)
 Return whether n is in range. More...
 
void Gecode::Int::Limits::check (int n, const char *l)
 Check whether n is in range, otherwise throw out of limits with information l. More...
 
void Gecode::Int::Limits::check (long long int n, const char *l)
 Check whether n is in range, otherwise throw out of limits with information l. More...
 
void Gecode::Int::Limits::positive (int n, const char *l)
 Check whether n is in range and strictly positive, otherwise throw out of limits with information l. More...
 
void Gecode::Int::Limits::positive (long long int n, const char *l)
 Check whether n is in range and strictly positive, otherwise throw out of limits with information l. More...
 
void Gecode::Int::Limits::nonnegative (int n, const char *l)
 Check whether n is in range and nonnegative, otherwise throw out of limits with information l. More...
 
void Gecode::Int::Limits::nonnegative (long long int n, const char *l)
 Check whether n is in integer range and nonnegative, otherwise throw out of limits exception with information l. More...
 
bool Gecode::Int::Limits::overflow_add (int n, int m)
 Check whether adding n and m would overflow. More...
 
bool Gecode::Int::Limits::overflow_add (long long int n, long long int m)
 Check whether adding n and m would overflow. More...
 
bool Gecode::Int::Limits::overflow_sub (int n, int m)
 Check whether subtracting m from n would overflow. More...
 
bool Gecode::Int::Limits::overflow_sub (long long int n, long long int m)
 Check whether subtracting m from n would overflow. More...
 
bool Gecode::Int::Limits::overflow_mul (int n, int m)
 Check whether multiplying n and m would overflow. More...
 
bool Gecode::Int::Limits::overflow_mul (long long int n, long long int m)
 Check whether multiplying n and m would overflow. More...
 
Reify Gecode::eqv (BoolVar x)
 Use equivalence for reification. More...
 
Reify Gecode::imp (BoolVar x)
 Use implication for reification. More...
 
Reify Gecode::pmi (BoolVar x)
 Use reverse implication for reification. More...
 
IntRelType Gecode::swap (IntRelType irt)
 Return swapped relation type of irt. More...
 
IntRelType Gecode::neg (IntRelType irt)
 Return negated relation type of irt. More...
 
IntPropLevel Gecode::vbd (IntPropLevel ipl)
 Extract value, bounds, or domain propagation from propagation level. More...
 
IntPropLevel Gecode::ba (IntPropLevel ipl)
 Extract basic or advanced from propagation level. More...
 
void Gecode::dom (Home home, IntVar x, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $x=n$. More...
 
void Gecode::dom (Home home, const IntVarArgs &x, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $ x_i=n$ for all $0\leq i<|x|$. More...
 
void Gecode::dom (Home home, IntVar x, int l, int m, IntPropLevel ipl=IPL_DEF)
 Propagates $ l\leq x\leq m$. More...
 
void Gecode::dom (Home home, const IntVarArgs &x, int l, int m, IntPropLevel ipl=IPL_DEF)
 Propagates $ l\leq x_i\leq m$ for all $0\leq i<|x|$. More...
 
void Gecode::dom (Home home, IntVar x, const IntSet &s, IntPropLevel ipl=IPL_DEF)
 Propagates $ x\in s $. More...
 
void Gecode::dom (Home home, const IntVarArgs &x, const IntSet &s, IntPropLevel ipl=IPL_DEF)
 Propagates $ x_i\in s$ for all $0\leq i<|x|$. More...
 
void Gecode::dom (Home home, IntVar x, int n, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ (x=n) \equiv r$. More...
 
void Gecode::dom (Home home, IntVar x, int l, int m, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ (l\leq x \leq m) \equiv r$. More...
 
void Gecode::dom (Home home, IntVar x, const IntSet &s, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ (x \in s) \equiv r$. More...
 
void Gecode::dom (Home home, IntVar x, IntVar d, IntPropLevel ipl=IPL_DEF)
 Constrain domain of x according to domain of d. More...
 
void Gecode::dom (Home home, BoolVar x, BoolVar d, IntPropLevel ipl=IPL_DEF)
 Constrain domain of x according to domain of d. More...
 
void Gecode::dom (Home home, const IntVarArgs &x, const IntVarArgs &d, IntPropLevel ipl=IPL_DEF)
 Constrain domain of $ x_i $ according to domain of $ d_i $ for all $0\leq i<|x|$. More...
 
void Gecode::dom (Home home, const BoolVarArgs &x, const BoolVarArgs &d, IntPropLevel ipl=IPL_DEF)
 Constrain domain of $ x_i $ according to domain of $ d_i $ for all $0\leq i<|x|$. More...
 
void Gecode::rel (Home home, IntVar x0, IntRelType irt, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_0 \sim_{irt} x_1$. More...
 
void Gecode::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 Gecode::rel (Home home, IntVar x, IntRelType irt, int c, IntPropLevel ipl=IPL_DEF)
 Propagates $ x \sim_{irt} c$. More...
 
void Gecode::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 Gecode::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 Gecode::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 Gecode::rel (Home home, const IntVarArgs &x, IntRelType irt, IntPropLevel ipl=IPL_DEF)
 Post propagator for relation among elements in x. More...
 
void Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::rel (Home home, BoolVar x, IntRelType irt, int n, IntPropLevel ipl=IPL_DEF)
 Propagates $ x \sim_{irt} n$. More...
 
void Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::rel (Home home, const BoolVarArgs &x, IntRelType irt, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for relation between elements in x. More...
 
void Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::ite (Home home, BoolVar b, IntVar x, IntVar y, IntVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for if-then-else constraint. More...
 
void Gecode::ite (Home home, BoolVar b, BoolVar x, BoolVar y, BoolVar z, IntPropLevel ipl=IPL_DEF)
 Post propagator for if-then-else constraint. More...
 
void Gecode::precede (Home home, const IntVarArgs &x, int s, int t, IntPropLevel=IPL_DEF)
 Post propagator that s precedes t in x. More...
 
void Gecode::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...
 
void Gecode::member (Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $y\in \{x_0,\ldots,x_{|x|-1}\}$. More...
 
void Gecode::member (Home home, const BoolVarArgs &x, BoolVar y, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $y\in \{x_0,\ldots,x_{|x|-1}\}$. More...
 
void Gecode::member (Home home, const IntVarArgs &x, IntVar y, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $\left(y\in \{x_0,\ldots,x_{|x|-1}\}\right)\equiv r$. More...
 
void Gecode::member (Home home, const BoolVarArgs &x, BoolVar y, Reify r, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $\left(y\in \{x_0,\ldots,x_{|x|-1}\}\right)\equiv r$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
void Gecode::element (Home home, const IntVarArgs &x, IntVar y0, IntVar y1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_{y_0}=y_1$. More...
 
void Gecode::element (Home home, const IntVarArgs &x, IntVar y0, int y1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_{y_0}=y_1$. More...
 
void Gecode::element (Home home, const BoolVarArgs &x, IntVar y0, BoolVar y1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ x_{y_0}=y_1$. More...
 
void Gecode::element (Home home, const BoolVarArgs &x, IntVar y0, int y1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for $ x_{y_0}=y_1$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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|$. More...
 
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|$. More...
 
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|$. More...
 
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|$. More...
 
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|$. More...
 
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|$. More...
 
void Gecode::channel (Home home, BoolVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for channeling a Boolean and an integer variable $ x_0 = x_1$. More...
 
void Gecode::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 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$. More...
 
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. More...
 
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. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
void Gecode::count (Home home, const IntVarArgs &x, const IntVarArgs &c, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint. More...
 
void Gecode::count (Home home, const IntVarArgs &x, const IntSetArgs &c, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint. More...
 
void Gecode::count (Home home, const IntVarArgs &x, const IntVarArgs &c, const IntArgs &v, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint. More...
 
void Gecode::count (Home home, const IntVarArgs &x, const IntSetArgs &c, const IntArgs &v, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint. More...
 
void Gecode::count (Home home, const IntVarArgs &x, const IntSet &c, const IntArgs &v, IntPropLevel ipl=IPL_DEF)
 Posts a global count (cardinality) constraint. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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)$. More...
 
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)$. More...
 
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. More...
 
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. More...
 
void Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$. More...
 
void Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, bool pos, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$ or $x\not\in t$. More...
 
void Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$. More...
 
void Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, bool pos, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$ or $(x\not\in t)\equiv r$. More...
 
void Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$. More...
 
void Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, bool pos, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$ or $x\not\in t$. More...
 
void Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$. More...
 
void Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, bool pos, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$ or $(x\not\in t)\equiv r$. More...
 
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$. More...
 
void Gecode::min (Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \min x=y$. More...
 
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$. More...
 
void Gecode::max (Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \max x=y$. More...
 
void Gecode::argmin (Home home, const IntVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)=y$. More...
 
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$. More...
 
void Gecode::argmax (Home home, const IntVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)=y$. More...
 
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$. More...
 
void Gecode::argmin (Home home, const BoolVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)=y$. More...
 
void Gecode::argmin (Home home, const BoolVarArgs &x, int o, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)-o=y$. More...
 
void Gecode::argmax (Home home, const BoolVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)=y$. More...
 
void Gecode::argmax (Home home, const BoolVarArgs &x, int o, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)-o=y$. More...
 
void Gecode::abs (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ |x_0|=x_1$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
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$. More...
 
void Gecode::sqr (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0^2=x_1$. More...
 
void Gecode::sqrt (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\lfloor\sqrt{x_0}\rfloor=x_1$. More...
 
void Gecode::pow (Home home, IntVar x0, int n, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0^n=x_1$. More...
 
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$. More...
 
void Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::binpacking (Home home, const IntVarArgs &l, const IntVarArgs &b, const IntArgs &s, IntPropLevel ipl=IPL_DEF)
 Post propagator for bin packing. More...
 
IntSet Gecode::binpacking (Home home, int d, const IntVarArgs &l, const IntVarArgs &b, const IntArgs &s, const IntArgs &c, IntPropLevel)
 
void Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::order (Home home, IntVar s0, int p0, IntVar s1, int p1, BoolVar b, IntPropLevel ipl=IPL_DEF)
 Post propagators for ordering two tasks. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void Gecode::unary (Home home, const IntVarArgs &s, const IntArgs &p, IntPropLevel ipl=IPL_DEF)
 Post propagators for scheduling tasks on unary resources. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void Gecode::circuit (Home home, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit. More...
 
void Gecode::circuit (Home home, int offset, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator such that x forms a circuit. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void Gecode::wait (Home home, IntVar x, std::function< void(Space &home)> c, IntPropLevel ipl=IPL_DEF)
 Execute c when x becomes assigned. More...
 
void Gecode::wait (Home home, BoolVar x, std::function< void(Space &home)> c, IntPropLevel ipl=IPL_DEF)
 Execute c when x becomes assigned. More...
 
void Gecode::wait (Home home, const IntVarArgs &x, std::function< void(Space &home)> c, IntPropLevel ipl=IPL_DEF)
 Execute c when all variables in x become assigned. More...
 
void Gecode::wait (Home home, const BoolVarArgs &x, std::function< void(Space &home)> c, IntPropLevel ipl=IPL_DEF)
 Execute c when all variables in x become assigned. More...
 
void Gecode::when (Home home, BoolVar x, std::function< void(Space &home)> t, std::function< void(Space &home)> e, IntPropLevel ipl=IPL_DEF)
 Execute t (then) when x is assigned one, and e (else) otherwise. More...
 
void Gecode::when (Home home, BoolVar x, std::function< void(Space &home)> t, IntPropLevel ipl=IPL_DEF)
 Execute t (then) when x is assigned one. More...
 
void Gecode::unshare (Home home, IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Replace multiple variable occurences in x by fresh variables. More...
 
void Gecode::unshare (Home home, BoolVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Replace multiple variable occurences in x by fresh variables. More...
 
IntVarBranch Gecode::INT_VAR_NONE (void)
 Select first unassigned variable. More...
 
IntVarBranch Gecode::INT_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking) More...
 
IntVarBranch Gecode::INT_VAR_MERIT_MIN (IntBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with least merit according to branch merit function bm. More...
 
IntVarBranch Gecode::INT_VAR_MERIT_MAX (IntBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with highest merit according to branch merit function bm. More...
 
IntVarBranch Gecode::INT_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree. More...
 
IntVarBranch Gecode::INT_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree. More...
 
IntVarBranch Gecode::INT_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count with decay factor d. More...
 
IntVarBranch Gecode::INT_VAR_AFC_MIN (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count. More...
 
IntVarBranch Gecode::INT_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count with decay factor d. More...
 
IntVarBranch Gecode::INT_VAR_AFC_MAX (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count. More...
 
IntVarBranch Gecode::INT_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with lowest action with decay factor d. More...
 
IntVarBranch Gecode::INT_VAR_ACTION_MIN (IntAction a, BranchTbl tbl=nullptr)
 Select variable with lowest action. More...
 
IntVarBranch Gecode::INT_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with highest action with decay factor d. More...
 
IntVarBranch Gecode::INT_VAR_ACTION_MAX (IntAction a, BranchTbl tbl=nullptr)
 Select variable with highest action. More...
 
IntVarBranch Gecode::INT_VAR_CHB_MIN (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
IntVarBranch Gecode::INT_VAR_CHB_MIN (BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
IntVarBranch Gecode::INT_VAR_CHB_MAX (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score. More...
 
IntVarBranch Gecode::INT_VAR_CHB_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score. More...
 
IntVarBranch Gecode::INT_VAR_MIN_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest min. More...
 
IntVarBranch Gecode::INT_VAR_MIN_MAX (BranchTbl tbl=nullptr)
 Select variable with largest min. More...
 
IntVarBranch Gecode::INT_VAR_MAX_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest max. More...
 
IntVarBranch Gecode::INT_VAR_MAX_MAX (BranchTbl tbl=nullptr)
 Select variable with largest max. More...
 
IntVarBranch Gecode::INT_VAR_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest domain size. More...
 
IntVarBranch Gecode::INT_VAR_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest domain size. More...
 
IntVarBranch Gecode::INT_VAR_DEGREE_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree divided by domain size. More...
 
IntVarBranch Gecode::INT_VAR_DEGREE_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree divided by domain size. More...
 
IntVarBranch Gecode::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 Gecode::INT_VAR_AFC_SIZE_MIN (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count divided by domain size. More...
 
IntVarBranch Gecode::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 Gecode::INT_VAR_AFC_SIZE_MAX (IntAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size. More...
 
IntVarBranch Gecode::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 Gecode::INT_VAR_ACTION_SIZE_MIN (IntAction a, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size. More...
 
IntVarBranch Gecode::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 Gecode::INT_VAR_ACTION_SIZE_MAX (IntAction a, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size. More...
 
IntVarBranch Gecode::INT_VAR_CHB_SIZE_MIN (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size. More...
 
IntVarBranch Gecode::INT_VAR_CHB_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size. More...
 
IntVarBranch Gecode::INT_VAR_CHB_SIZE_MAX (IntCHB c, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size. More...
 
IntVarBranch Gecode::INT_VAR_CHB_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size. More...
 
IntVarBranch Gecode::INT_VAR_REGRET_MIN_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest min-regret. More...
 
IntVarBranch Gecode::INT_VAR_REGRET_MIN_MAX (BranchTbl tbl=nullptr)
 Select variable with largest min-regret. More...
 
IntVarBranch Gecode::INT_VAR_REGRET_MAX_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest max-regret. More...
 
IntVarBranch Gecode::INT_VAR_REGRET_MAX_MAX (BranchTbl tbl=nullptr)
 Select variable with largest max-regret. More...
 
BoolVarBranch Gecode::BOOL_VAR_NONE (void)
 Select first unassigned variable. More...
 
BoolVarBranch Gecode::BOOL_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking) More...
 
BoolVarBranch Gecode::BOOL_VAR_MERIT_MIN (BoolBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with least merit according to branch merit function bm. More...
 
BoolVarBranch Gecode::BOOL_VAR_MERIT_MAX (BoolBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with highest merit according to branch merit function bm. More...
 
BoolVarBranch Gecode::BOOL_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree. More...
 
BoolVarBranch Gecode::BOOL_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree. More...
 
BoolVarBranch Gecode::BOOL_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count with decay factor d. More...
 
BoolVarBranch Gecode::BOOL_VAR_AFC_MIN (BoolAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count. More...
 
BoolVarBranch Gecode::BOOL_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count with decay factor d. More...
 
BoolVarBranch Gecode::BOOL_VAR_AFC_MAX (BoolAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count. More...
 
BoolVarBranch Gecode::BOOL_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with lowest action with decay factor d. More...
 
BoolVarBranch Gecode::BOOL_VAR_ACTION_MIN (BoolAction a, BranchTbl tbl=nullptr)
 Select variable with lowest action. More...
 
BoolVarBranch Gecode::BOOL_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with highest action with decay factor d. More...
 
BoolVarBranch Gecode::BOOL_VAR_ACTION_MAX (BoolAction a, BranchTbl tbl=nullptr)
 Select variable with highest action. More...
 
BoolVarBranch Gecode::BOOL_VAR_CHB_MIN (BoolCHB c, BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
BoolVarBranch Gecode::BOOL_VAR_CHB_MIN (BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
BoolVarBranch Gecode::BOOL_VAR_CHB_MAX (BoolCHB c, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score. More...
 
BoolVarBranch Gecode::BOOL_VAR_CHB_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score. More...
 
IntValBranch Gecode::INT_VAL_MIN (void)
 Select smallest value. More...
 
IntValBranch Gecode::INT_VAL_MED (void)
 Select greatest value not greater than the median. More...
 
IntValBranch Gecode::INT_VAL_MAX (void)
 Select largest value. More...
 
IntValBranch Gecode::INT_VAL_RND (Rnd r)
 Select random value. More...
 
IntValBranch Gecode::INT_VAL_SPLIT_MIN (void)
 Select values not greater than mean of smallest and largest value. More...
 
IntValBranch Gecode::INT_VAL_SPLIT_MAX (void)
 Select values greater than mean of smallest and largest value. More...
 
IntValBranch Gecode::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 Gecode::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 Gecode::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 Gecode::INT_VALUES_MIN (void)
 Try all values starting from smallest. More...
 
IntValBranch Gecode::INT_VALUES_MAX (void)
 Try all values starting from largest. More...
 
BoolValBranch Gecode::BOOL_VAL_MIN (void)
 Select smallest value. More...
 
BoolValBranch Gecode::BOOL_VAL_MAX (void)
 Select largest value. More...
 
BoolValBranch Gecode::BOOL_VAL_RND (Rnd r)
 Select random value. More...
 
BoolValBranch Gecode::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...
 
IntAssign Gecode::INT_ASSIGN_MIN (void)
 Select smallest value. More...
 
IntAssign Gecode::INT_ASSIGN_MED (void)
 Select greatest value not greater than the median. More...
 
IntAssign Gecode::INT_ASSIGN_MAX (void)
 Select largest value. More...
 
IntAssign Gecode::INT_ASSIGN_RND (Rnd r)
 Select random value. More...
 
IntAssign Gecode::INT_ASSIGN (IntBranchVal v, IntBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c. More...
 
BoolAssign Gecode::BOOL_ASSIGN_MIN (void)
 Select smallest value. More...
 
BoolAssign Gecode::BOOL_ASSIGN_MAX (void)
 Select largest value. More...
 
BoolAssign Gecode::BOOL_ASSIGN_RND (Rnd r)
 Select random value. More...
 
BoolAssign Gecode::BOOL_ASSIGN (BoolBranchVal v, BoolBranchCommit c=nullptr)
 Select value as defined by the value function v and commit function c. More...
 
void Gecode::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 Gecode::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 Gecode::branch (Home home, IntVar x, IntValBranch vals, IntVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void Gecode::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 Gecode::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 Gecode::branch (Home home, BoolVar x, BoolValBranch vals, BoolVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void Gecode::assign (Home home, const IntVarArgs &x, IntVarBranch vars, IntAssign vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with variable selection vars with value selection vals. More...
 
void Gecode::assign (Home home, const IntVarArgs &x, TieBreak< IntVarBranch > vars, IntAssign vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with tie-breaking variable selection vars and value selection vals. More...
 
void Gecode::assign (Home home, IntVar x, IntAssign vals, IntVarValPrint vvp=nullptr)
 Assign x with value selection vals. More...
 
void Gecode::assign (Home home, const BoolVarArgs &x, BoolVarBranch vars, BoolAssign vals, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Assign all x with variable selection vars with value selection vals. More...
 
void Gecode::assign (Home home, const BoolVarArgs &x, TieBreak< BoolVarBranch > vars, BoolAssign vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with tie-breaking variable selection vars and value selection vals. More...
 
void Gecode::assign (Home home, BoolVar x, BoolAssign vals, BoolVarValPrint vvp=nullptr)
 Assign x with value selection vals. More...
 
void Gecode::branch (Home home, const IntVarArgs &x, IntValBranch vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void Gecode::branch (Home home, const BoolVarArgs &x, BoolValBranch vals, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void Gecode::assign (Home home, const IntVarArgs &x, IntAssign vals, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Assign all x with value selection vals. More...
 
void Gecode::assign (Home home, const BoolVarArgs &x, BoolAssign vals, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Assign all x with value selection vals. More...
 
SymmetryHandle Gecode::VariableSymmetry (const IntVarArgs &x)
 Variables in x are interchangeable. More...
 
SymmetryHandle Gecode::VariableSymmetry (const BoolVarArgs &x)
 Variables in x are interchangeable. More...
 
SymmetryHandle Gecode::VariableSymmetry (const IntVarArgs &x, const IntArgs &indices)
 Specified variables in x are interchangeable. More...
 
SymmetryHandle Gecode::ValueSymmetry (const IntArgs &v)
 Values in v are interchangeable. More...
 
SymmetryHandle Gecode::ValueSymmetry (const IntSet &v)
 Values in v are interchangeable. More...
 
SymmetryHandle Gecode::ValueSymmetry (IntVar vars)
 All values in the domain of the given variable are interchangeable. More...
 
SymmetryHandle Gecode::VariableSequenceSymmetry (const IntVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable. More...
 
SymmetryHandle Gecode::VariableSequenceSymmetry (const BoolVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable. More...
 
SymmetryHandle Gecode::ValueSequenceSymmetry (const IntArgs &v, int ss)
 Value sequences in v of size ss are interchangeable. More...
 
SymmetryHandle Gecode::values_reflect (int lower, int upper)
 The values from lower to upper (inclusive) can be reflected. More...
 
SymmetryHandle Gecode::values_reflect (IntVar x)
 The values in the domain of \x can be reflected. More...
 
void Gecode::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 Gecode::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 Gecode::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 Gecode::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 Gecode::relax (Home home, const IntVarArgs &x, const IntVarArgs &sx, Rnd r, double p)
 
void Gecode::relax (Home home, const BoolVarArgs &x, const BoolVarArgs &sx, Rnd r, double p)
 
void Gecode::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 Gecode::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 Gecode::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 Gecode::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...
 

Variables

const int Gecode::Int::Limits::max = INT_MAX - 1
 Largest allowed integer value. More...
 
const int Gecode::Int::Limits::min = -max
 Smallest allowed integer value. More...
 
const int Gecode::Int::Limits::infinity = max + 1
 Infinity for integers. More...
 
const long long int Gecode::Int::Limits::llmax = LLONG_MAX - 1
 Largest allowed long long integer value. More...
 
const long long int Gecode::Int::Limits::llmin = -llmax
 Smallest allowed long long integer value. More...
 
const long long int Gecode::Int::Limits::llinfinity = llmax + 1
 Infinity for long long integers. More...
 

Macro Definition Documentation

◆ GECODE_INT_EXPORT

#define GECODE_INT_EXPORT

Definition at line 81 of file int.hh.

◆ GECODE_LIBRARY_NAME

#define GECODE_LIBRARY_NAME   "Int"

Definition at line 88 of file int.hh.

Typedef Documentation

◆ IntSetArgs

typedef ArgArray<IntSet> Gecode::IntSetArgs

Passing set arguments.

Definition at line 619 of file int.hh.

◆ IntSharedArray

typedef SharedArray<int> Gecode::IntSharedArray

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

Definition at line 1477 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 4552 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 4559 of file int.hh.

Function Documentation

◆ swap()

IntRelType Gecode::swap ( IntRelType  irt)
inline

Return swapped relation type of irt.

Definition at line 37 of file irt.hpp.

◆ neg()

IntRelType Gecode::neg ( IntRelType  irt)
inline

Return negated relation type of irt.

Definition at line 52 of file irt.hpp.

◆ vbd()

IntPropLevel Gecode::vbd ( IntPropLevel  ipl)
inline

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

Definition at line 37 of file ipl.hpp.

◆ ba()

IntPropLevel Gecode::ba ( IntPropLevel  ipl)
inline

Extract basic or advanced from propagation level.

Definition at line 43 of file ipl.hpp.

◆ dom() [1/13]

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

Propagates $x=n$.

Definition at line 41 of file dom.cpp.

◆ dom() [2/13]

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

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

Definition at line 50 of file dom.cpp.

◆ dom() [3/13]

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

Propagates $ l\leq x\leq m$.

Definition at line 61 of file dom.cpp.

◆ dom() [4/13]

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

◆ dom() [5/13]

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

Propagates $ x\in s $.

Definition at line 85 of file dom.cpp.

◆ dom() [6/13]

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

◆ dom() [7/13]

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

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

Definition at line 109 of file dom.cpp.

◆ dom() [8/13]

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

◆ dom() [9/13]

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

◆ dom() [10/13]

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

Constrain domain of x according to domain of d.

Definition at line 175 of file dom.cpp.

◆ dom() [11/13]

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

Constrain domain of x according to domain of d.

Definition at line 186 of file dom.cpp.

◆ dom() [12/13]

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

◆ dom() [13/13]

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 211 of file dom.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 39 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 49 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 59 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 84 of file member.cpp.

◆ element() [1/11]

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

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

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

Definition at line 39 of file element.cpp.

◆ element() [2/11]

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

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

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

Definition at line 51 of file element.cpp.

◆ element() [3/11]

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

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

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

Definition at line 63 of file element.cpp.

◆ element() [4/11]

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

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

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

Definition at line 78 of file element.cpp.

◆ element() [5/11]

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

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

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

Definition at line 95 of file element.cpp.

◆ element() [6/11]

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

◆ element() [7/11]

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

◆ element() [8/11]

void Gecode::element ( Home  home,
IntSharedArray  a,
IntVar  x,
int  w,
IntVar  y,
int  h,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post domain consistent propagator for $ a_{x+w\cdot y}=z$.

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

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

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

Definition at line 150 of file element.cpp.

◆ element() [9/11]

void Gecode::element ( Home  home,
IntSharedArray  a,
IntVar  x,
int  w,
IntVar  y,
int  h,
BoolVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post domain consistent propagator for $ a_{x+w\cdot y}=z$.

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

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

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

Definition at line 161 of file element.cpp.

◆ element() [10/11]

void Gecode::element ( Home  home,
const IntVarArgs a,
IntVar  x,
int  w,
IntVar  y,
int  h,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ a_{x+w\cdot y}=z$.

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

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

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

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

Definition at line 172 of file element.cpp.

◆ element() [11/11]

void Gecode::element ( Home  home,
const BoolVarArgs a,
IntVar  x,
int  w,
IntVar  y,
int  h,
BoolVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post domain consistent propagator for $ a_{x+w\cdot y}=z$.

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

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

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

Definition at line 183 of file element.cpp.

◆ distinct() [1/4]

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

Post propagator for $ x_i\neq x_j$ for all $0\leq i\neq j<|x|$.

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

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

Definition at line 46 of file distinct.cpp.

◆ distinct() [2/4]

void Gecode::distinct ( Home  home,
const IntArgs n,
const IntVarArgs x,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ x_i+n_i\neq x_j+n_j$ for all $0\leq i\neq j<|x|$.

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

Definition at line 65 of file distinct.cpp.

◆ distinct() [3/4]

void Gecode::distinct ( Home  home,
const BoolVarArgs b,
const IntVarArgs x,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ b_i=1\wedge b_j=1\to x_i\neq x_j$ for all $0\leq i\neq j<|x|$.

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

Definition at line 97 of file distinct.cpp.

◆ distinct() [4/4]

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

Post propagator for $ x_i=c\vee x_j=c\vee x_i\neq x_j$ for all $0\leq i\neq j<|x|$.

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

Definition at line 154 of file distinct.cpp.

◆ channel() [1/5]

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

Post propagator for $ x_i = j\leftrightarrow y_j=i$ for all $0\leq i<|x|$.

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

Definition at line 143 of file channel.cpp.

◆ channel() [2/5]

void Gecode::channel ( Home  home,
const IntVarArgs x,
int  xoff,
const IntVarArgs y,
int  yoff,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ x_i - \mathit{xoff} = j\leftrightarrow y_j - \mathit{yoff} = i$ for all $0\leq i<|x|$.

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

Definition at line 41 of file channel.cpp.

◆ channel() [3/5]

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

◆ channel() [4/5]

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

◆ channel() [5/5]

void Gecode::channel ( Home  home,
const BoolVarArgs x,
IntVar  y,
int  o = 0,
IntPropLevel  ipl = IPL_DEF 
)

Post domain consistent propagator for channeling Boolean and integer variables $ x_i = 1\leftrightarrow y=i+o$.

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

Definition at line 155 of file channel.cpp.

◆ sorted() [1/2]

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

Post propagator that y is x sorted in increasing order.

Might throw the following exceptions:

  • Int::ArgumentSizeMismatch, if x and y differ in size.
  • Int::ArgumentSame, if x or y contain shared unassigned variables.

Definition at line 58 of file sorted.cpp.

◆ sorted() [2/2]

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

Post propagator that y is x sorted in increasing order.

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

Might throw the following exceptions:

  • Int::ArgumentSizeMismatch, if x and y differ in size.
  • Int::ArgumentSame, if x or y contain shared unassigned variables.

Definition at line 39 of file sorted.cpp.

◆ count() [1/13]

void Gecode::count ( Home  home,
const IntVarArgs x,
int  n,
IntRelType  irt,
int  m,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\sim_{irt} m$.

Performs domain propagation but is not domain consistent.

Definition at line 40 of file count.cpp.

◆ count() [2/13]

void Gecode::count ( Home  home,
const IntVarArgs x,
const IntSet y,
IntRelType  irt,
int  m,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i\in y\}\sim_{irt} m$.

Performs domain propagation but is not domain consistent.

Definition at line 134 of file count.cpp.

◆ count() [3/13]

void Gecode::count ( Home  home,
const IntVarArgs x,
IntVar  y,
IntRelType  irt,
int  m,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_{irt} m$.

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

Definition at line 82 of file count.cpp.

◆ count() [4/13]

void Gecode::count ( Home  home,
const IntVarArgs x,
const IntArgs y,
IntRelType  irt,
int  m,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\sim_{irt} m$.

Performs domain propagation but is not domain consistent.

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

Definition at line 178 of file count.cpp.

◆ count() [5/13]

void Gecode::count ( Home  home,
const IntVarArgs x,
int  n,
IntRelType  irt,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\sim_{irt} z$.

Performs domain propagation but is not domain consistent.

Definition at line 222 of file count.cpp.

◆ count() [6/13]

void Gecode::count ( Home  home,
const IntVarArgs x,
const IntSet y,
IntRelType  irt,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i\in y\}\sim_{irt} z$.

Performs domain propagation but is not domain consistent.

Definition at line 316 of file count.cpp.

◆ count() [7/13]

void Gecode::count ( Home  home,
const IntVarArgs x,
IntVar  y,
IntRelType  irt,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_{irt} z$.

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

Definition at line 264 of file count.cpp.

◆ count() [8/13]

void Gecode::count ( Home  home,
const IntVarArgs x,
const IntArgs y,
IntRelType  irt,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\sim_{irt} z$.

Performs domain propagation but is not domain consistent.

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

Definition at line 365 of file count.cpp.

◆ count() [9/13]

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

Posts a global count (cardinality) constraint.

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

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

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

Definition at line 135 of file gcc.cpp.

◆ count() [10/13]

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

Posts a global count (cardinality) constraint.

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

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

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

Definition at line 211 of file gcc.cpp.

◆ count() [11/13]

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

Posts a global count (cardinality) constraint.

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

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

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

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

Definition at line 99 of file gcc.cpp.

◆ count() [12/13]

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

Posts a global count (cardinality) constraint.

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

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

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

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

Definition at line 144 of file gcc.cpp.

◆ count() [13/13]

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

Posts a global count (cardinality) constraint.

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

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

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

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

Definition at line 219 of file gcc.cpp.

◆ nvalues() [1/4]

void Gecode::nvalues ( Home  home,
const IntVarArgs x,
IntRelType  irt,
int  y,
IntPropLevel   
)

Post propagator for $\#\{x_0,\ldots,x_{|x|-1}\}\sim_{irt} y$.

Definition at line 40 of file nvalues.cpp.

◆ nvalues() [2/4]

void Gecode::nvalues ( Home  home,
const IntVarArgs x,
IntRelType  irt,
IntVar  y,
IntPropLevel   
)

Post propagator for $\#\{x_0,\ldots,x_{|x|-1}\}\sim_{irt} y$.

Definition at line 90 of file nvalues.cpp.

◆ nvalues() [3/4]

void Gecode::nvalues ( Home  home,
const BoolVarArgs x,
IntRelType  irt,
int  y,
IntPropLevel   
)

Post propagator for $\#\{x_0,\ldots,x_{|x|-1}\}\sim_{irt} y$.

Definition at line 141 of file nvalues.cpp.

◆ nvalues() [4/4]

void Gecode::nvalues ( Home  home,
const BoolVarArgs x,
IntRelType  irt,
IntVar  y,
IntPropLevel   
)

Post propagator for $\#\{x_0,\ldots,x_{|x|-1}\}\sim_{irt} y$.

Definition at line 189 of file nvalues.cpp.

◆ sequence() [1/2]

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:

  • Of type Int::TooFewArguments, if $|x|=0$.
  • Of type Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Of type Int::OutOfRange, if $q < 1 \vee q > |x|$.

Definition at line 47 of file sequence.cpp.

◆ sequence() [2/2]

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:

  • Of type Int::TooFewArguments, if $|x|=0$.
  • Of type Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Of type Int::OutOfRange, if $q < 1 \vee q > |x|$.

Definition at line 112 of file sequence.cpp.

◆ min() [1/2]

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

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

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

Definition at line 78 of file arithmetic.cpp.

◆ min() [2/2]

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

Post propagator for $ \min x=y$.

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

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

Definition at line 91 of file arithmetic.cpp.

◆ max() [1/2]

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

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

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

Definition at line 51 of file arithmetic.cpp.

◆ max() [2/2]

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

Post propagator for $ \max x=y$.

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

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

Definition at line 63 of file arithmetic.cpp.

◆ argmin() [1/4]

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

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

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

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

Definition at line 163 of file arithmetic.cpp.

◆ argmin() [2/4]

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

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

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

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

Definition at line 189 of file arithmetic.cpp.

◆ argmax() [1/4]

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

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

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

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

Definition at line 110 of file arithmetic.cpp.

◆ argmax() [2/4]

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

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

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

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

Definition at line 136 of file arithmetic.cpp.

◆ argmin() [3/4]

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

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

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

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

Definition at line 265 of file arithmetic.cpp.

◆ argmin() [4/4]

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

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

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

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

Definition at line 289 of file arithmetic.cpp.

◆ argmax() [3/4]

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

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

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

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

Definition at line 216 of file arithmetic.cpp.

◆ argmax() [4/4]

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

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

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

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

Definition at line 240 of file arithmetic.cpp.

◆ abs()

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

Post propagator for $ |x_0|=x_1$.

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

Definition at line 39 of file arithmetic.cpp.

◆ mult()

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

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

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

Definition at line 314 of file arithmetic.cpp.

◆ divmod()

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

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

Supports bounds consistency (ipl = IPL_BND, default).

Definition at line 327 of file arithmetic.cpp.

◆ div()

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

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

Supports bounds consistency (ipl = IPL_BND, default).

Definition at line 351 of file arithmetic.cpp.

◆ mod()

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

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

Supports bounds consistency (ipl = IPL_BND, default).

Definition at line 360 of file arithmetic.cpp.

◆ sqr()

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

Post propagator for $x_0^2=x_1$.

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

Definition at line 369 of file arithmetic.cpp.

◆ sqrt()

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

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

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

Definition at line 383 of file arithmetic.cpp.

◆ pow()

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

Post propagator for $x_0^n=x_1$.

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

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

Definition at line 397 of file arithmetic.cpp.

◆ nroot()

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

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

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

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

Definition at line 416 of file arithmetic.cpp.

◆ binpacking()

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

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

◆ order()

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

Post propagators for ordering two tasks.

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

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

Definition at line 41 of file order.cpp.

◆ cumulatives() [1/8]

void Gecode::cumulatives ( Home  home,
const IntVarArgs m,
const IntVarArgs s,
const IntVarArgs p,
const IntVarArgs e,
const IntVarArgs u,
const IntArgs c,
bool  at_most,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for the cumulatives constraint.

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

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

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

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

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

Definition at line 110 of file cumulatives.cpp.

◆ cumulatives() [2/8]

void Gecode::cumulatives ( Home  home,
const IntArgs m,
const IntVarArgs s,
const IntVarArgs p,
const IntVarArgs e,
const IntVarArgs u,
const IntArgs c,
bool  at_most,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for the cumulatives constraint.

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

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

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

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

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

Definition at line 119 of file cumulatives.cpp.

◆ cumulatives() [3/8]

void Gecode::cumulatives ( Home  home,
const IntVarArgs m,
const IntVarArgs s,
const IntArgs p,
const IntVarArgs e,
const IntVarArgs u,
const IntArgs c,
bool  at_most,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for the cumulatives constraint.

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

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

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

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

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

Definition at line 128 of file cumulatives.cpp.

◆ cumulatives() [4/8]

void Gecode::cumulatives ( Home  home,
const IntArgs m,
const IntVarArgs s,
const IntArgs p,
const IntVarArgs e,
const IntVarArgs u,
const IntArgs c,
bool  at_most,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for the cumulatives constraint.

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

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

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

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

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

Definition at line 137 of file cumulatives.cpp.

◆ cumulatives() [5/8]

void Gecode::cumulatives ( Home  home,
const IntVarArgs m,
const IntVarArgs s,
const IntVarArgs p,
const IntVarArgs e,
const IntArgs u,
const IntArgs c,
bool  at_most,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for the cumulatives constraint.

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

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

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

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

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

Definition at line 146 of file cumulatives.cpp.

◆ cumulatives() [6/8]

void Gecode::cumulatives ( Home  home,
const IntArgs m,
const IntVarArgs s,
const IntVarArgs p,
const IntVarArgs e,
const IntArgs u,
const IntArgs c,
bool  at_most,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for the cumulatives constraint.

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

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

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

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

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

Definition at line 155 of file cumulatives.cpp.

◆ cumulatives() [7/8]

void Gecode::cumulatives ( Home  home,
const IntVarArgs m,
const IntVarArgs s,
const IntArgs p,
const IntVarArgs e,
const IntArgs u,
const IntArgs c,
bool  at_most,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for the cumulatives constraint.

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

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

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

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

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

Definition at line 164 of file cumulatives.cpp.

◆ cumulatives() [8/8]

void Gecode::cumulatives ( Home  home,
const IntArgs m,
const IntVarArgs s,
const IntArgs p,
const IntVarArgs e,
const IntArgs u,
const IntArgs c,
bool  at_most,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for the cumulatives constraint.

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

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

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

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

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

Definition at line 173 of file cumulatives.cpp.

◆ unary() [1/6]

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

Post propagators for scheduling tasks on unary resources.

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

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

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

Posting the constraint might throw the following exceptions:

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

Definition at line 44 of file unary.cpp.

◆ unary() [2/6]

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

Post propagators for scheduling optional tasks on unary resources.

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

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

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

Posting the constraint might throw the following exceptions:

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

Definition at line 116 of file unary.cpp.

◆ unary() [3/6]

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

Post propagators for scheduling tasks on unary resources.

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

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

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

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

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

Posting the constraint might throw the following exceptions:

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

Definition at line 85 of file unary.cpp.

◆ unary() [4/6]

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

Post propagators for scheduling optional tasks on unary resources.

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

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

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

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

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

Posting the constraint might throw the following exceptions:

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

Definition at line 148 of file unary.cpp.

◆ unary() [5/6]

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

Post propagators for scheduling tasks on unary resources.

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

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

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

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

The processing times are constrained to be non-negative.

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

Definition at line 193 of file unary.cpp.

◆ unary() [6/6]

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

Post propagators for scheduling optional tasks on unary resources.

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

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

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

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

The processing times are constrained to be non-negative.

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

Definition at line 225 of file unary.cpp.

◆ cumulative() [1/12]

void Gecode::cumulative ( Home  home,
int  c,
const TaskTypeArgs t,
const IntVarArgs flex,
const IntArgs fix,
const IntArgs u,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling tasks on cumulative resources.

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

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

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

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

The propagator uses algorithms taken from:

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

and

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

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

Definition at line 354 of file cumulative.cpp.

◆ cumulative() [2/12]

void Gecode::cumulative ( Home  home,
IntVar  c,
const TaskTypeArgs t,
const IntVarArgs flex,
const IntArgs fix,
const IntArgs u,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling tasks on cumulative resources.

Definition at line 362 of file cumulative.cpp.

◆ cumulative() [3/12]

void Gecode::cumulative ( Home  home,
int  c,
const TaskTypeArgs t,
const IntVarArgs flex,
const IntArgs fix,
const IntArgs u,
const BoolVarArgs m,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling optional tasks on cumulative resources.

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

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

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

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

The propagator uses algorithms taken from:

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

and

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

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

Definition at line 373 of file cumulative.cpp.

◆ cumulative() [4/12]

void Gecode::cumulative ( Home  home,
IntVar  c,
const TaskTypeArgs t,
const IntVarArgs flex,
const IntArgs fix,
const IntArgs u,
const BoolVarArgs m,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling optional tasks on cumulative resources.

Definition at line 381 of file cumulative.cpp.

◆ cumulative() [5/12]

void Gecode::cumulative ( Home  home,
int  c,
const IntVarArgs s,
const IntArgs p,
const IntArgs u,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling tasks on cumulative resources.

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

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

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

The propagator uses algorithms taken from:

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

and

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

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

Definition at line 392 of file cumulative.cpp.

◆ cumulative() [6/12]

void Gecode::cumulative ( Home  home,
IntVar  c,
const IntVarArgs s,
const IntArgs p,
const IntArgs u,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling tasks on cumulative resources.

Definition at line 399 of file cumulative.cpp.

◆ cumulative() [7/12]

void Gecode::cumulative ( Home  home,
int  c,
const IntVarArgs s,
const IntArgs p,
const IntArgs u,
const BoolVarArgs m,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling optional tasks on cumulative resources.

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

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

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

The propagator uses algorithms taken from:

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

and

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

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

Definition at line 409 of file cumulative.cpp.

◆ cumulative() [8/12]

void Gecode::cumulative ( Home  home,
IntVar  c,
const IntVarArgs s,
const IntArgs p,
const IntArgs u,
const BoolVarArgs m,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling optional tasks on cumulative resources.

Definition at line 416 of file cumulative.cpp.

◆ cumulative() [9/12]

void Gecode::cumulative ( Home  home,
int  c,
const IntVarArgs s,
const IntVarArgs p,
const IntVarArgs e,
const IntArgs u,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling tasks on cumulative resources.

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

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

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

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

The propagator uses algorithms taken from:

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

and

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

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

Definition at line 426 of file cumulative.cpp.

◆ cumulative() [10/12]

void Gecode::cumulative ( Home  home,
IntVar  c,
const IntVarArgs s,
const IntVarArgs p,
const IntVarArgs e,
const IntArgs u,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling tasks on cumulative resources.

Definition at line 434 of file cumulative.cpp.

◆ cumulative() [11/12]

void Gecode::cumulative ( Home  home,
int  c,
const IntVarArgs s,
const IntVarArgs p,
const IntVarArgs e,
const IntArgs u,
const BoolVarArgs m,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling optional tasks on cumulative resources.

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

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

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

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

The propagator uses algorithms taken from:

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

and

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

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

Definition at line 445 of file cumulative.cpp.

◆ cumulative() [12/12]

void Gecode::cumulative ( Home  home,
IntVar  c,
const IntVarArgs s,
const IntVarArgs p,
const IntVarArgs e,
const IntArgs u,
const BoolVarArgs m,
IntPropLevel  ipl = IPL_DEF 
)

Post propagators for scheduling optional tasks on cumulative resources.

Definition at line 453 of file cumulative.cpp.

◆ circuit() [1/6]

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

Post propagator such that x forms a circuit.

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

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

Throws the following exceptions:

  • Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Int::TooFewArguments, if x has no elements.

Definition at line 73 of file circuit.cpp.

◆ circuit() [2/6]

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

Post propagator such that x forms a circuit.

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

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

Throws the following exceptions:

  • Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Int::TooFewArguments, if x has no elements.
  • Int::OutOfLimits, if offset is negative.

Definition at line 41 of file circuit.cpp.

◆ circuit() [3/6]

void Gecode::circuit ( Home  home,
const IntArgs c,
const IntVarArgs x,
const IntVarArgs y,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator such that x forms a circuit with costs y and z.

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

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

Throws the following exceptions:

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

Definition at line 102 of file circuit.cpp.

◆ circuit() [4/6]

void Gecode::circuit ( Home  home,
const IntArgs c,
int  offset,
const IntVarArgs x,
const IntVarArgs y,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator such that x forms a circuit with costs y and z.

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

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

Throws the following exceptions:

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

Definition at line 78 of file circuit.cpp.

◆ circuit() [5/6]

void Gecode::circuit ( Home  home,
const IntArgs c,
const IntVarArgs x,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator such that x forms a circuit with cost z.

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

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

Throws the following exceptions:

  • Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Int::TooFewArguments, if x has no elements.
  • Int::ArgumentSizeMismatch, if $|x|\times|x|\neq|c|$.

Definition at line 117 of file circuit.cpp.

◆ circuit() [6/6]

void Gecode::circuit ( Home  home,
const IntArgs c,
int  offset,
const IntVarArgs x,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator such that x forms a circuit with cost z.

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

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

Throws the following exceptions:

  • Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Int::TooFewArguments, if x has no elements.
  • Int::ArgumentSizeMismatch, if $|x|\times|x|\neq|c|$.
  • Int::OutOfLimits, if offset is negative.

Definition at line 108 of file circuit.cpp.

◆ path() [1/6]

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

Post propagator such that x forms a Hamiltonian path.

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

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

Throws the following exceptions:

  • Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Int::TooFewArguments, if x has no elements.

Definition at line 169 of file circuit.cpp.

◆ path() [2/6]

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

Post propagator such that x forms a Hamiltonian path.

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

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

Throws the following exceptions:

  • Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Int::TooFewArguments, if x has no elements.
  • Int::OutOfLimits, if offset is negative.

Definition at line 124 of file circuit.cpp.

◆ path() [3/6]

void Gecode::path ( Home  home,
const IntArgs c,
const IntVarArgs x,
IntVar  s,
IntVar  e,
const IntVarArgs y,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator such that x forms a Hamiltonian path with costs y and z.

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

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

Throws the following exceptions:

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

Definition at line 201 of file circuit.cpp.

◆ path() [4/6]

void Gecode::path ( Home  home,
const IntArgs c,
int  offset,
const IntVarArgs x,
IntVar  s,
IntVar  e,
const IntVarArgs y,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator such that x forms a Hamiltonian path with costs y and z.

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

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

Throws the following exceptions:

  • 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|$.
  • Int::OutOfLimits, if offset is negative.

Definition at line 175 of file circuit.cpp.

◆ path() [5/6]

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

Post propagator such that x forms a Hamiltonian path with cost z.

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

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

Throws the following exceptions:

  • Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Int::TooFewArguments, if x has no elements.
  • Int::ArgumentSizeMismacth, if $|x|\times|x|\neq|c|$.

Definition at line 217 of file circuit.cpp.

◆ path() [6/6]

void Gecode::path ( Home  home,
const IntArgs c,
int  offset,
const IntVarArgs x,
IntVar  s,
IntVar  e,
IntVar  z,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator such that x forms a Hamiltonian path with cost z.

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

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

Throws the following exceptions:

  • Int::ArgumentSame, if x contains the same unassigned variable multiply.
  • Int::TooFewArguments, if x has no elements.
  • Int::ArgumentSizeMismacth, if $|x|\times|x|\neq|c|$.
  • Int::OutOfLimits, if offset is negative.

Definition at line 208 of file circuit.cpp.

◆ wait() [1/4]

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

Execute c when x becomes assigned.

Definition at line 39 of file exec.cpp.

◆ wait() [2/4]

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

Execute c when x becomes assigned.

Definition at line 46 of file exec.cpp.

◆ wait() [3/4]

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 53 of file exec.cpp.

◆ wait() [4/4]

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 61 of file exec.cpp.

◆ when() [1/2]

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

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

Definition at line 70 of file exec.cpp.

◆ when() [2/2]

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

Execute t (then) when x is assigned one.

Definition at line 79 of file exec.cpp.

◆ unshare() [1/2]

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

Replace multiple variable occurences in x by fresh variables.

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

Definition at line 136 of file unshare.cpp.

◆ unshare() [2/2]

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

Replace multiple variable occurences in x by fresh variables.

Definition at line 141 of file unshare.cpp.

◆ INT_VAR_NONE()

IntVarBranch Gecode::INT_VAR_NONE ( void  )
inline

Select first unassigned variable.

Definition at line 96 of file var.hpp.

◆ INT_VAR_RND()

IntVarBranch Gecode::INT_VAR_RND ( Rnd  r)
inline

Select random variable (uniform distribution, for tie breaking)

Definition at line 101 of file var.hpp.

◆ INT_VAR_MERIT_MIN()

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

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

Definition at line 106 of file var.hpp.

◆ INT_VAR_MERIT_MAX()

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

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

Definition at line 111 of file var.hpp.

◆ INT_VAR_DEGREE_MIN()

IntVarBranch Gecode::INT_VAR_DEGREE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest degree.

Definition at line 116 of file var.hpp.

◆ INT_VAR_DEGREE_MAX()

IntVarBranch Gecode::INT_VAR_DEGREE_MAX ( BranchTbl  tbl)
inline

Select variable with largest degree.

Definition at line 121 of file var.hpp.

◆ INT_VAR_AFC_MIN() [1/2]

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

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

Definition at line 126 of file var.hpp.

◆ INT_VAR_AFC_MIN() [2/2]

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

Select variable with smallest accumulated failure count.

Definition at line 131 of file var.hpp.

◆ INT_VAR_AFC_MAX() [1/2]

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

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

Definition at line 136 of file var.hpp.

◆ INT_VAR_AFC_MAX() [2/2]

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

Select variable with largest accumulated failure count.

Definition at line 141 of file var.hpp.

◆ INT_VAR_ACTION_MIN() [1/2]

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

Select variable with lowest action with decay factor d.

Definition at line 146 of file var.hpp.

◆ INT_VAR_ACTION_MIN() [2/2]

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

Select variable with lowest action.

Definition at line 151 of file var.hpp.

◆ INT_VAR_ACTION_MAX() [1/2]

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

Select variable with highest action with decay factor d.

Definition at line 156 of file var.hpp.

◆ INT_VAR_ACTION_MAX() [2/2]

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

Select variable with highest action.

Definition at line 161 of file var.hpp.

◆ INT_VAR_CHB_MIN() [1/2]

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

Select variable with lowest CHB Q-score.

Definition at line 166 of file var.hpp.

◆ INT_VAR_CHB_MIN() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_MIN ( BranchTbl  tbl)
inline

Select variable with lowest CHB Q-score.

Definition at line 171 of file var.hpp.

◆ INT_VAR_CHB_MAX() [1/2]

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

Select variable with largest CHB Q-score.

Definition at line 176 of file var.hpp.

◆ INT_VAR_CHB_MAX() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_MAX ( BranchTbl  tbl)
inline

Select variable with largest CHB Q-score.

Definition at line 181 of file var.hpp.

◆ INT_VAR_MIN_MIN()

IntVarBranch Gecode::INT_VAR_MIN_MIN ( BranchTbl  tbl)
inline

Select variable with smallest min.

Definition at line 186 of file var.hpp.

◆ INT_VAR_MIN_MAX()

IntVarBranch Gecode::INT_VAR_MIN_MAX ( BranchTbl  tbl)
inline

Select variable with largest min.

Definition at line 191 of file var.hpp.

◆ INT_VAR_MAX_MIN()

IntVarBranch Gecode::INT_VAR_MAX_MIN ( BranchTbl  tbl)
inline

Select variable with smallest max.

Definition at line 196 of file var.hpp.

◆ INT_VAR_MAX_MAX()

IntVarBranch Gecode::INT_VAR_MAX_MAX ( BranchTbl  tbl)
inline

Select variable with largest max.

Definition at line 201 of file var.hpp.

◆ INT_VAR_SIZE_MIN()

IntVarBranch Gecode::INT_VAR_SIZE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest domain size.

Definition at line 206 of file var.hpp.

◆ INT_VAR_SIZE_MAX()

IntVarBranch Gecode::INT_VAR_SIZE_MAX ( BranchTbl  tbl)
inline

Select variable with largest domain size.

Definition at line 211 of file var.hpp.

◆ INT_VAR_DEGREE_SIZE_MIN()

IntVarBranch Gecode::INT_VAR_DEGREE_SIZE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest degree divided by domain size.

Definition at line 216 of file var.hpp.

◆ INT_VAR_DEGREE_SIZE_MAX()

IntVarBranch Gecode::INT_VAR_DEGREE_SIZE_MAX ( BranchTbl  tbl)
inline

Select variable with largest degree divided by domain size.

Definition at line 221 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MIN() [1/2]

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

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

Definition at line 226 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MIN() [2/2]

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

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

Definition at line 231 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MAX() [1/2]

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

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

Definition at line 236 of file var.hpp.

◆ INT_VAR_AFC_SIZE_MAX() [2/2]

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

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

Definition at line 241 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MIN() [1/2]

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

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

Definition at line 246 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MIN() [2/2]

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

Select variable with smallest action divided by domain size.

Definition at line 251 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MAX() [1/2]

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

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

Definition at line 256 of file var.hpp.

◆ INT_VAR_ACTION_SIZE_MAX() [2/2]

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

Select variable with largest action divided by domain size.

Definition at line 261 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MIN() [1/2]

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

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

Definition at line 266 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MIN() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_SIZE_MIN ( BranchTbl  tbl)
inline

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

Definition at line 271 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MAX() [1/2]

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

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

Definition at line 276 of file var.hpp.

◆ INT_VAR_CHB_SIZE_MAX() [2/2]

IntVarBranch Gecode::INT_VAR_CHB_SIZE_MAX ( BranchTbl  tbl)
inline

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

Definition at line 281 of file var.hpp.

◆ INT_VAR_REGRET_MIN_MIN()

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

Select variable with smallest min-regret.

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

Definition at line 286 of file var.hpp.

◆ INT_VAR_REGRET_MIN_MAX()

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

Select variable with largest min-regret.

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

Definition at line 291 of file var.hpp.

◆ INT_VAR_REGRET_MAX_MIN()

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

Select variable with smallest max-regret.

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

Definition at line 296 of file var.hpp.

◆ INT_VAR_REGRET_MAX_MAX()

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

Select variable with largest max-regret.

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

Definition at line 301 of file var.hpp.

◆ BOOL_VAR_NONE()

BoolVarBranch Gecode::BOOL_VAR_NONE ( void  )
inline

Select first unassigned variable.

Definition at line 364 of file var.hpp.

◆ BOOL_VAR_RND()

BoolVarBranch Gecode::BOOL_VAR_RND ( Rnd  r)
inline

Select random variable (uniform distribution, for tie breaking)

Definition at line 369 of file var.hpp.

◆ BOOL_VAR_MERIT_MIN()

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

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

Definition at line 374 of file var.hpp.

◆ BOOL_VAR_MERIT_MAX()

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

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

Definition at line 379 of file var.hpp.

◆ BOOL_VAR_DEGREE_MIN()

BoolVarBranch Gecode::BOOL_VAR_DEGREE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest degree.

Definition at line 384 of file var.hpp.

◆ BOOL_VAR_DEGREE_MAX()

BoolVarBranch Gecode::BOOL_VAR_DEGREE_MAX ( BranchTbl  tbl)
inline

Select variable with largest degree.

Definition at line 389 of file var.hpp.

◆ BOOL_VAR_AFC_MIN() [1/2]

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

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

Definition at line 394 of file var.hpp.

◆ BOOL_VAR_AFC_MIN() [2/2]

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

Select variable with smallest accumulated failure count.

Definition at line 399 of file var.hpp.

◆ BOOL_VAR_AFC_MAX() [1/2]

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

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

Definition at line 404 of file var.hpp.

◆ BOOL_VAR_AFC_MAX() [2/2]

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

Select variable with largest accumulated failure count.

Definition at line 409 of file var.hpp.

◆ BOOL_VAR_ACTION_MIN() [1/2]

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

Select variable with lowest action with decay factor d.

Definition at line 414 of file var.hpp.

◆ BOOL_VAR_ACTION_MIN() [2/2]

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

Select variable with lowest action.

Definition at line 419 of file var.hpp.

◆ BOOL_VAR_ACTION_MAX() [1/2]

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

Select variable with highest action with decay factor d.

Definition at line 424 of file var.hpp.

◆ BOOL_VAR_ACTION_MAX() [2/2]

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

Select variable with highest action.

Definition at line 429 of file var.hpp.

◆ BOOL_VAR_CHB_MIN() [1/2]

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

Select variable with lowest CHB Q-score.

Definition at line 434 of file var.hpp.

◆ BOOL_VAR_CHB_MIN() [2/2]

BoolVarBranch Gecode::BOOL_VAR_CHB_MIN ( BranchTbl  tbl)
inline

Select variable with lowest CHB Q-score.

Definition at line 439 of file var.hpp.

◆ BOOL_VAR_CHB_MAX() [1/2]

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

Select variable with largest CHB Q-score.

Definition at line 444 of file var.hpp.

◆ BOOL_VAR_CHB_MAX() [2/2]

BoolVarBranch Gecode::BOOL_VAR_CHB_MAX ( BranchTbl  tbl)
inline

Select variable with largest CHB Q-score.

Definition at line 449 of file var.hpp.

◆ INT_VAL_MIN()

IntValBranch Gecode::INT_VAL_MIN ( void  )
inline

Select smallest value.

Definition at line 55 of file val.hpp.

◆ INT_VAL_MED()

IntValBranch Gecode::INT_VAL_MED ( void  )
inline

Select greatest value not greater than the median.

Definition at line 60 of file val.hpp.

◆ INT_VAL_MAX()

IntValBranch Gecode::INT_VAL_MAX ( void  )
inline

Select largest value.

Definition at line 65 of file val.hpp.

◆ INT_VAL_RND()

IntValBranch Gecode::INT_VAL_RND ( Rnd  r)
inline

Select random value.

Definition at line 70 of file val.hpp.

◆ INT_VAL_SPLIT_MIN()

IntValBranch Gecode::INT_VAL_SPLIT_MIN ( void  )
inline

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

Definition at line 75 of file val.hpp.

◆ INT_VAL_SPLIT_MAX()

IntValBranch Gecode::INT_VAL_SPLIT_MAX ( void  )
inline

Select values greater than mean of smallest and largest value.

Definition at line 80 of file val.hpp.

◆ INT_VAL_RANGE_MIN()

IntValBranch Gecode::INT_VAL_RANGE_MIN ( void  )
inline

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

Definition at line 85 of file val.hpp.

◆ INT_VAL_RANGE_MAX()

IntValBranch Gecode::INT_VAL_RANGE_MAX ( void  )
inline

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

Definition at line 90 of file val.hpp.

◆ INT_VAL()

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

Select value as defined by the value function v and commit function c Uses a commit function as default that posts the constraints that a variable x must be equal to a value n for the first alternative and that x must be different from n for the second alternative.

Definition at line 95 of file val.hpp.

◆ INT_VALUES_MIN()

IntValBranch Gecode::INT_VALUES_MIN ( void  )
inline

Try all values starting from smallest.

Definition at line 100 of file val.hpp.

◆ INT_VALUES_MAX()

IntValBranch Gecode::INT_VALUES_MAX ( void  )
inline

Try all values starting from largest.

Definition at line 105 of file val.hpp.

◆ BOOL_VAL_MIN()

BoolValBranch Gecode::BOOL_VAL_MIN ( void  )
inline

Select smallest value.

Definition at line 130 of file val.hpp.

◆ BOOL_VAL_MAX()

BoolValBranch Gecode::BOOL_VAL_MAX ( void  )
inline

Select largest value.

Definition at line 135 of file val.hpp.

◆ BOOL_VAL_RND()

BoolValBranch Gecode::BOOL_VAL_RND ( Rnd  r)
inline

Select random value.

Definition at line 140 of file val.hpp.

◆ BOOL_VAL()

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

Select value as defined by the value function v and commit function c Uses a commit function as default that posts the constraints that a variable x must be equal to a value n for the first alternative and that x must be different from n for the second alternative.

Definition at line 145 of file val.hpp.

◆ INT_ASSIGN_MIN()

IntAssign Gecode::INT_ASSIGN_MIN ( void  )
inline

Select smallest value.

Definition at line 55 of file assign.hpp.

◆ INT_ASSIGN_MED()

IntAssign Gecode::INT_ASSIGN_MED ( void  )
inline

Select greatest value not greater than the median.

Definition at line 60 of file assign.hpp.

◆ INT_ASSIGN_MAX()

IntAssign Gecode::INT_ASSIGN_MAX ( void  )
inline

Select largest value.

Definition at line 65 of file assign.hpp.

◆ INT_ASSIGN_RND()

IntAssign Gecode::INT_ASSIGN_RND ( Rnd  r)
inline

Select random value.

Definition at line 70 of file assign.hpp.

◆ INT_ASSIGN()

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

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

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

Definition at line 75 of file assign.hpp.

◆ BOOL_ASSIGN_MIN()

BoolAssign Gecode::BOOL_ASSIGN_MIN ( void  )
inline

Select smallest value.

Definition at line 100 of file assign.hpp.

◆ BOOL_ASSIGN_MAX()

BoolAssign Gecode::BOOL_ASSIGN_MAX ( void  )
inline

Select largest value.

Definition at line 105 of file assign.hpp.

◆ BOOL_ASSIGN_RND()

BoolAssign Gecode::BOOL_ASSIGN_RND ( Rnd  r)
inline

Select random value.

Definition at line 110 of file assign.hpp.

◆ BOOL_ASSIGN()

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

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

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

Definition at line 115 of file assign.hpp.

◆ VariableSymmetry() [1/3]

SymmetryHandle Gecode::VariableSymmetry ( const IntVarArgs vars)

Variables in x are interchangeable.

Definition at line 62 of file ldsb.cpp.

◆ VariableSymmetry() [2/3]

SymmetryHandle Gecode::VariableSymmetry ( const BoolVarArgs vars)

Variables in x are interchangeable.

Definition at line 68 of file ldsb.cpp.

◆ VariableSymmetry() [3/3]

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

Specified variables in x are interchangeable.

Definition at line 74 of file ldsb.cpp.

◆ ValueSymmetry() [1/3]

SymmetryHandle Gecode::ValueSymmetry ( const IntArgs vs)

Values in v are interchangeable.

Definition at line 81 of file ldsb.cpp.

◆ ValueSymmetry() [2/3]

SymmetryHandle Gecode::ValueSymmetry ( const IntSet vs)

Values in v are interchangeable.

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

◆ VariableSequenceSymmetry() [1/2]

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

Variable sequences in x of size ss are interchangeable.

The size of x must be a multiple of ss.

Definition at line 90 of file ldsb.cpp.

◆ VariableSequenceSymmetry() [2/2]

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

Variable sequences in x of size ss are interchangeable.

The size of x must be a multiple of ss.

Definition at line 96 of file ldsb.cpp.

◆ ValueSequenceSymmetry()

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

Value sequences in v of size ss are interchangeable.

The size of v must be a multiple of ss.

Definition at line 102 of file ldsb.cpp.

◆ values_reflect() [1/2]

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

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

Definition at line 106 of file ldsb.cpp.

◆ values_reflect() [2/2]

SymmetryHandle Gecode::values_reflect ( IntVar  x)

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

◆ relax() [1/2]

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

Definition at line 65 of file relax.cpp.

◆ relax() [2/2]

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

Definition at line 76 of file relax.cpp.