48 #ifndef __GECODE_INT_HH__ 49 #define __GECODE_INT_HH__ 65 #if !defined(GECODE_STATIC_LIBS) && \ 66 (defined(__CYGWIN__) || defined(__MINGW32__) || defined(_MSC_VER)) 68 #ifdef GECODE_BUILD_INT 69 #define GECODE_INT_EXPORT __declspec( dllexport ) 71 #define GECODE_INT_EXPORT __declspec( dllimport ) 76 #ifdef GECODE_GCC_HAS_CLASS_VISIBILITY 77 #define GECODE_INT_EXPORT __attribute__ ((visibility("default"))) 79 #define GECODE_INT_EXPORT 85 #ifndef GECODE_BUILD_INT 86 #define GECODE_LIBRARY_NAME "Int" 103 namespace Gecode {
namespace Int {
114 const int max = INT_MAX - 1;
120 const long long int llmax = LLONG_MAX - 1;
128 bool valid(
long long int n);
130 void check(
int n,
const char*
l);
132 void check(
long long int n,
const char*
l);
136 void positive(
long long int n,
const char*
l);
236 int ranges(
void)
const;
239 int min(
int i)
const;
241 int max(
int i)
const;
243 unsigned int width(
int i)
const;
248 bool in(
int n)
const;
251 unsigned int size(
void)
const;
253 unsigned int width(
void)
const;
275 const IntSet::Range*
i;
277 const IntSet::Range* e;
286 void init(
const IntSet& s);
291 bool operator ()(
void)
const;
294 void operator ++(
void);
304 unsigned int width(
void)
const;
322 void init(
const IntSet& s);
330 template<
class Char,
class Traits>
331 std::basic_ostream<Char,Traits>&
332 operator <<(std::basic_ostream<Char,Traits>& os,
const IntSet& s);
423 unsigned int size(
void)
const;
425 unsigned int width(
void)
const;
427 unsigned int regret_min(
void)
const;
429 unsigned int regret_max(
void)
const;
434 bool range(
void)
const;
437 bool in(
int n)
const;
445 template<
class Char,
class Traits>
446 std::basic_ostream<Char,Traits>&
447 operator <<(std::basic_ostream<Char,Traits>& os,
const IntVar&
x);
462 void init(
const IntVar& x);
479 void init(
const IntVar& x);
545 unsigned int size(
void)
const;
547 unsigned int width(
void)
const;
549 unsigned int regret_min(
void)
const;
551 unsigned int regret_max(
void)
const;
556 bool range(
void)
const;
559 bool in(
int n)
const;
564 bool zero(
void)
const;
567 bool one(
void)
const;
569 bool none(
void)
const;
577 template<
class Char,
class Traits>
578 std::basic_ostream<Char,Traits>&
579 operator <<(std::basic_ostream<Char,Traits>& os,
const BoolVar&
x);
619 IntArgs(
const std::vector<int>& x);
621 template<
class InputIterator>
622 IntArgs(InputIterator first, InputIterator last);
627 IntArgs(
int n,
const int* e);
632 static IntArgs create(
int n,
int start,
int inc=1);
652 template<
class InputIterator>
707 template<
class InputIterator>
1957 Transition(
int i_state0,
int symbol0,
int o_state0);
1972 bool operator ()(
void)
const;
1974 void operator ++(
void);
1976 int i_state(
void)
const;
1978 int symbol(
void)
const;
1980 int o_state(
void)
const;
1993 bool operator ()(
void)
const;
1995 void operator ++(
void);
1997 int val(
void)
const;
2019 int n_states(
void)
const;
2021 int n_transitions(
void)
const;
2023 unsigned int n_symbols(
void)
const;
2025 unsigned int max_degree(
void)
const;
2027 int final_fst(
void)
const;
2029 int final_lst(
void)
const;
2031 int symbol_min(
void)
const;
2033 int symbol_max(
void)
const;
2114 bool finalized(
void)
const;
2132 void add(
const IntArgs& tuple);
2134 void finalize(
void);
2136 bool finalized(
void)
const;
2138 int arity(
void)
const;
2140 int tuples(
void)
const;
2142 Tuple operator [](
int i)
const;
2144 int min(
void)
const;
2146 int max(
void)
const;
3685 void (*
t)(
Space& home),
void (*e)(
Space& home)= NULL,
4040 Select select(
void)
const;
4188 Select select(
void)
const;
4274 Select select(
void)
const;
4410 template<
class Char,
class Traits>
4411 std::basic_ostream<Char,Traits>&
4412 operator <<(std::basic_ostream<Char,Traits>& os,
const DFA&
d);
4417 template<
class Char,
class Traits>
4418 std::basic_ostream<Char,Traits>&
4419 operator <<(std::basic_ostream<Char,Traits>& os,
const TupleSet& ts);
4426 namespace Int {
namespace LDSB {
4440 void increment(
void);
4442 void decrement(
void);
4654 Int::ViewRanges<Int::IntView> > {
4684 bool operator ()(
void)
const;
4687 void operator ++(
void);
4692 int min(
void)
const;
4695 int max(
void)
const;
4697 unsigned int width(
void)
const;
4733 virtual void init(
const Space& home,
const IntTraceRecorder&
t);
4735 virtual void prune(
const Space& home,
const IntTraceRecorder&
t,
4738 virtual void fix(
const Space& home,
const IntTraceRecorder&
t);
4740 virtual void done(
const Space& home,
const IntTraceRecorder&
t);
4769 virtual void init(
const Space& home,
const BoolTraceRecorder&
t);
4771 virtual void prune(
const Space& home,
const BoolTraceRecorder&
t,
4774 virtual void fix(
const Space& home,
const BoolTraceRecorder&
t);
4776 virtual void done(
const Space& home,
const BoolTraceRecorder&
t);
Value iterator for integer variables.
With smallest accumulated failure count.
IntVarBranch INT_VAR_DEGREE_SIZE_MIN(BranchTbl tbl)
Select variable with smallest degree divided by domain size.
void mod(Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl)
Post propagator for .
Int::ViewRanges< Int::IntView > rn
Iterator over the new values.
IntValBranch INT_VAL_RANGE_MIN(void)
Select the smallest range of the variable domain if it has several ranges, otherwise select values no...
IntVarArgs(const VarArray< IntVar > &a)
Initialize from variable array a (copy elements)
Duplicate of a Boolean view.
IntPropLevel vbd(IntPropLevel ipl)
Extract value, bounds, or domain propagation from propagation level.
TraceRecorder< Int::BoolView > BoolTraceRecorder
TraceRecorder for Boolean variables.
Variables as interfaces to variable implementations.
IntVarBranch INT_VAR_NONE(void)
Select first unassigned variable.
bool(* BoolBranchFilter)(const Space &home, BoolVar x, int i)
Branch filter function type for Boolean variables.
Combine variable selection criteria for tie-breaking.
IntVarBranch INT_VAR_MERIT_MAX(IntBranchMerit bm, BranchTbl tbl)
Select variable with highest merit according to branch merit function bm.
Select s
Which variable to select.
void mult(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
void linear(Home home, const FloatVarArgs &x, FloatRelType frt, FloatNum c)
Post propagator for .
TaskType
Type of task for scheduling constraints.
Inverse implication for reification.
void sorted(Home home, const IntVarArgs &x, const IntVarArgs &y, const IntVarArgs &z, IntPropLevel)
Post propagator that y is x sorted in increasing order.
With smallest activity divided by domain size.
Range iterator for integer sets.
BoolVarArgs(const VarArray< BoolVar > &a)
Initialize from variable array a (copy elements)
void sequence(Home home, const IntVarArgs &x, const IntSet &s, int q, int l, int u, IntPropLevel)
Post propagator for .
Iterator for DFA symbols.
void trace(Home home, const FloatVarArgs &x, TraceFilter tf, int te, FloatTracer &t)
Create a tracer for float variables.
void channel(Home home, FloatVar x0, IntVar x1)
Post propagator for channeling a float and an integer variable .
Iter::Ranges::RangeList ro
Iterator over the old values.
void count(Home home, const IntVarArgs &x, int n, IntRelType irt, int m, IntPropLevel)
Post propagator for .
IntVarBranch INT_VAR_DEGREE_SIZE_MAX(BranchTbl tbl)
Select variable with largest degree divided by domain size.
bool one(const Gecode::FloatValArgs &a)
Check whether has only one coefficients.
Standard Boolean variable tracer.
Select
Which value selection.
Argument array for primtive types.
BoolOpType
Operation types for Booleans.
Which values to select for branching first.
BoolVarArgs(const BoolVarArgs &a)
Initialize from variable argument array a (copy elements)
int(* BoolBranchVal)(const Space &home, BoolVar x, int i)
Branch value function type for Boolean variables.
Which variable to select for branching.
int excess
Excess storage.
IntVarBranch INT_VAR_REGRET_MAX_MAX(BranchTbl tbl)
Select variable with largest max-regret.
With largest accumulated failure count.
void abs(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
IntAssign INT_ASSIGN_MED(void)
Select greatest value not greater than the median.
void nroot(Home home, FloatVar x0, int n, FloatVar x1)
Post propagator for for $n 0$.
void pow(Home home, FloatVar x0, int n, FloatVar x1)
Post propagator for for $n 0$.
Select value nearest to a given value, use smaller one in case of ties.
bool normalize(Term< View > *t, int &n, Term< View > *&t_p, int &n_p, Term< View > *&t_n, int &n_n, int &g)
Normalize linear integer constraints.
Range iterator for range lists
With largest accumulated failure count divided by domain size.
int * Tuple
Type of a tuple.
void member(Home home, const IntVarArgs &x, IntVar y, IntPropLevel)
Post domain consistent propagator for .
BoolVarArgs(const std::vector< BoolVar > &a)
Initialize from vector a.
void path(Home home, int offset, const IntVarArgs &x, IntVar s, IntVar e, IntPropLevel ipl)
Post propagator such that x forms a Hamiltonian path.
void dom(Home home, FloatVar x, FloatVal n)
Propagates .
Collection of symmetries.
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
IntVarBranch INT_VAR_MIN_MIN(BranchTbl tbl)
Select variable with smallest min.
IntVarBranch INT_VAR_REGRET_MAX_MIN(BranchTbl tbl)
Select variable with smallest max-regret.
Implementation of a symmetry at the modelling level.
void(* BoolVarValPrint)(const Space &home, const Brancher &b, unsigned int a, BoolVar x, int i, const int &n, std::ostream &o)
Function type for printing branching alternatives for Boolean variables.
IntValBranch INT_VAL_RANGE_MAX(void)
Select the largest range of the variable domain if it has several ranges, otherwise select values gre...
void nonnegative(int n, const char *l)
Check whether n is in range and nonnegative, otherwise throw out of limits with information l...
IntVarArgs(InputIterator first, InputIterator last)
Initialize from InputIterator first and last.
Select the smallest range of the variable domain if it has several ranges, otherwise select values no...
void circuit(Home home, int offset, const IntVarArgs &x, IntPropLevel ipl)
Post propagator such that x forms a circuit.
With largest activity divided by domain size.
void argmin(Home home, const IntVarArgs &x, IntVar y, bool tiebreak, IntPropLevel)
Post propagator for .
IntVarArgs(const std::vector< IntVar > &a)
Initialize from vector a.
IntVarBranch INT_VAR_ACTIVITY_MAX(double d, BranchTbl tbl)
Select variable with highest activity with decay factor d.
Select s
Which value to select.
void binpacking(Home home, const IntVarArgs &l, const IntVarArgs &b, const IntArgs &s, IntPropLevel)
Post propagator for bin packing.
bool(* IntBranchFilter)(const Space &home, IntVar x, int i)
Branch filter function type for integer variables.
ArgArray< IntSet > IntSetArgs
Passing set arguments.
const int max
Largest allowed integer value.
ExecStatus prune(Space &home, ViewArray< VX > &x, ConstIntView)
Standard integer variable tracer.
Select s
Which value to select.
const int min
Smallest allowed integer value.
double(* IntBranchMerit)(const Space &home, IntVar x, int i)
Branch merit function type for integer variables.
IntVarBranch INT_VAR_REGRET_MIN_MAX(BranchTbl tbl)
Select variable with largest min-regret.
IntVarArgs(int n)
Allocate array with n elements.
int(* IntBranchVal)(const Space &home, IntVar x, int i)
Branch value function type for integer variables.
Range iterator for integer variables
IntAssign INT_ASSIGN_MIN(void)
Select smallest value.
IntValBranch INT_VAL_RND(Rnd r)
Select random value.
Select value nearest to a given value, use larger one in case of ties.
bool overflow_mul(int n, int m)
Check whether multiplying n and m would overflow.
std::string expand(Gecode::IntRelType irt)
Expand relation to abbreviation.
Reify imp(BoolVar x)
Use implication for reification.
Gecode::FloatVal c(-8, 8)
void branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf, FloatVarValPrint vvp)
Branch over x with variable selection vars and value selection vals.
SymmetryHandle VariableSymmetry(const IntVarArgs &vars)
Variables in x are interchangeable.
Deterministic finite automaton (DFA)
struct Gecode::@554::NNF::@60::@62 a
For atomic nodes.
int p
Number of positive literals for node type.
With smallest max-regret.
IntVarBranch INT_VAR_AFC_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count with decay factor d.
Gecode::IntArgs i(4, 1, 2, 3, 4)
Base-class for branchers.
Class for AFC (accumulated failure count) management.
void assign(Home home, const FloatVarArgs &x, FloatAssign fa, FloatBranchFilter bf, FloatVarValPrint vvp)
Assign all x with value selection vals.
int n
Number of negative literals for node type.
IntVarBranch INT_VAR_DEGREE_MAX(BranchTbl tbl)
Select variable with largest degree.
void unshare(Home home, IntVarArgs &x, IntPropLevel ipl)
Replace multiple variable occurences in x by fresh variables.
const long long int llmin
Smallest allowed long long integer value.
Select all values starting from largest.
IntVarBranch INT_VAR_ACTIVITY_MIN(double d, BranchTbl tbl)
Select variable with lowest activity with decay factor d.
Tuple ** last
Initial last structure.
With smallest min-regret.
A reference-counted pointer to a SymmetryObject.
void divmod(Home home, IntVar x0, IntVar x1, IntVar x2, IntVar x3, IntPropLevel)
Post propagator for .
void nvalues(Home home, const IntVarArgs &x, IntRelType irt, int y, IntPropLevel)
Post propagator for .
union Gecode::@554::NNF::@60 u
Union depending on nodetype t.
IntAssign INT_ASSIGN_RND(Rnd r)
Select random value.
TraceRecorder< Int::IntView > IntTraceRecorder
TraceRecorder for integer variables.
IntRelType
Relation types for integers.
SymmetryHandle ValueSequenceSymmetry(const IntArgs &vs, int ss)
Value sequences in v of size ss are interchangeable.
Propagator for recording trace information.
Select greatest value not greater than the median.
void sqr(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
void(* IntBranchCommit)(Space &home, unsigned int a, IntVar x, int i, int n)
Branch commit function type for integer variables.
IntAssign INT_ASSIGN_MAX(void)
Select largest value.
Simple propagation levels.
void extensional(Home home, const IntVarArgs &x, DFA dfa, IntPropLevel)
Post domain consistent propagator for extensional constraint described by a DFA.
void(* BoolBranchCommit)(Space &home, unsigned int a, BoolVar x, int i, int n)
Branch commit function type for Boolean variables.
Recording AFC information for integer and Boolean variables.
IntValBranch INT_VAL_MIN(void)
Select smallest value.
Specification of a DFA transition.
void sqrt(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
Use basic propagation algorithm.
Value iterator from range iterator.
unsigned int size(I &i)
Size of all ranges of range iterator i.
Reification specification.
SymmetryHandle ValueSymmetry(const IntArgs &vs)
Values in v are interchangeable.
IntValBranch INT_VAL_SPLIT_MAX(void)
Select values greater than mean of smallest and largest value.
void range(Home home, const IntVarArgs &x, SetVar y, SetVar z)
Post constraint .
IntVarBranch INT_VAR_MAX_MAX(BranchTbl tbl)
Select variable with largest max.
unsigned int domsize
Domain size.
Range iterator for ranges of integer variable implementation.
IntVarBranch INT_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
IntVarBranch INT_VAR_AFC_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count with decay factor d.
IntVarBranch INT_VAR_ACTIVITY_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest activity divided by domain size with decay factor d. ...
void distinct(Home home, const IntVarArgs &x, IntPropLevel ipl)
Post propagator for for all .
With largest domain size.
Duplicate of an integer view.
Tuple ** tuples
Tuples index.
bool overflow_add(int n, int m)
Check whether adding n and m would overflow.
void argmax(Home home, const IntVarArgs &x, IntVar y, bool tiebreak, IntPropLevel)
Post propagator for .
IntVarBranch INT_VAR_MIN_MAX(BranchTbl tbl)
Select variable with largest min.
int min
Minimum and maximum in domain-values.
Integer set initialization.
void(* VoidFunction)(void)
Base type for any function pointer.
int o_state
output state Default constructor
void ite(Home home, BoolVar b, IntVar x, IntVar y, IntVar z, IntPropLevel ipl)
Post propagator for if-then-else constraint.
Tuple * nullpointer
Pointer to NULL-pointer.
Use advanced propagation algorithm.
std::ostream & os
Output stream to use.
static StdIntTracer def
Default tracer (printing to std::cerr)
Reify eqv(BoolVar x)
Use equivalence for reification.
With largest degree divided by domain size.
IntVarArgs(const IntVarArgs &a)
Initialize from variable argument array a (copy elements)
IntValBranch INT_VAL_NEAR_MIN(IntSharedArray n)
Try value nearest to a given value for a variable, in case of ties use the smaller value...
Recording activities for integer and Boolean variables.
IntPropLevel sm(IntPropLevel ipl)
Extract speed or memory from propagation level.
Passing integer variables.
SharedArray< int > IntSharedArray
Arrays of integers that can be shared among several element constraints.
Passing integer arguments.
BoolVarArgs(InputIterator first, InputIterator last)
Initialize from InputIterator first and last.
Passing Boolean variables.
Select values greater than mean of smallest and largest value.
double(* BoolBranchMerit)(const Space &home, BoolVar x, int i)
Branch merit function type for Boolean variables.
Tuple * tuple_data
Tuple index data.
IntVarBranch INT_VAR_AFC_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count divided by domain size with decay factor d...
void nooverlap(Home home, const IntVarArgs &x, const IntArgs &w, const IntVarArgs &y, const IntArgs &h, IntPropLevel)
Post propagator for rectangle packing.
Boolean integer variables.
Prefer to save memory Options: basic versus advanced propagation.
Class represeting a set of tuples.
TieBreak< VarBranch > tiebreak(VarBranch a, VarBranch b)
Combine variable selection criteria a and b for tie-breaking.
With smallest degree divided by domain size.
IntValBranch INT_VAL_MAX(void)
Select largest value.
IntPropLevel
Propagation levels for integer propagators.
IntPropLevel ba(IntPropLevel ipl)
Extract basic or advanced from propagation level.
Integer view for integer variables.
const int infinity
Infinity for integers.
Select the largest range of the variable domain if it has several ranges, otherwise select values gre...
BoolVarArgs(int n)
Allocate array with n elements.
Value branching information.
void div(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
void relax(Home home, const FloatVarArgs &x, const FloatVarArgs &sx, Rnd r, double p)
IntValBranch INT_VALUES_MIN(void)
Try all values starting from smallest.
Variable branching information.
IntAssign INT_ASSIGN(IntBranchVal v, IntBranchCommit c)
Select value as defined by the value function v and commit function c.
bool overflow_sub(int n, int m)
Check whether subtracting m from n would overflow.
Select values not greater than mean of smallest and largest value.
Node * x
Pointer to corresponding Boolean expression node.
Generic domain change information to be supplied to advisors.
IntValBranch INT_VALUES_MAX(void)
Try all values starting from largest.
IntSharedArray n
Array of values for near strategies.
IntVarBranch INT_VAR_MERIT_MIN(IntBranchMerit bm, BranchTbl tbl)
Select variable with least merit according to branch merit function bm.
void precede(Home home, const IntVarArgs &x, int s, int t, IntPropLevel)
Post propagator that s precedes t in x.
Tracer< Int::BoolView > BoolTracer
Tracer for Boolean variables.
Which values to select for assignment.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
Trace delta information for integer variables.
SymmetryHandle values_reflect(int lower, int upper)
The values from lower to upper (inclusive) can be reflected.
Sort ranges according to increasing minimum.
Domain propagation Preferences: prefer speed or memory.
IntVarBranch INT_VAR_AFC_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count divided by domain size with decay factor d...
IntValBranch INT_VAL_NEAR_MAX(IntSharedArray n)
Try value nearest to a given value for a variable, in case of ties use the larger value...
Select
Which variable selection.
bool valid(int n)
Return whether n is in range.
Value iterator for integer sets.
IntValBranch INT_VAL_MED(void)
Select greatest value not greater than the median.
IntVarBranch INT_VAR_ACTIVITY_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest activity divided by domain size with decay factor d.
Iterator for DFA transitions (sorted by symbols)
Int::LDSB::SymmetryObject * ref
Symmetry object that this handle refers to.
PrimArgArray< TaskType > TaskTypeArgs
Argument arrays for passing task type arguments.
void(* IntVarValPrint)(const Space &home, const Brancher &b, unsigned int a, IntVar x, int i, const int &n, std::ostream &o)
Function type for printing branching alternatives for integer variables.
Random (uniform, for tie breaking)
void values(Home home, const IntVarArgs &x, IntSet y, IntPropLevel ipl=IPL_DEF)
Post constraint .
With smallest domain size.
Tracer that process trace information.
std::ostream & os
Output stream to use.
Select
Which value selection.
Select greatest value not greater than the median.
static StdBoolTracer def
Default tracer (printing to std::cerr)
SymmetryHandle VariableSequenceSymmetry(const IntVarArgs &vars, int ss)
Variable sequences in x of size ss are interchangeable.
const long long int llmax
Largest allowed long long integer value.
IntValBranch INT_VAL_NEAR_INC(IntSharedArray n)
Try value larger than a given value for a variable first.
Traits of arrays in Gecode.
IntValBranch INT_VAL_SPLIT_MIN(void)
Select values not greater than mean of smallest and largest value.
int size
Number of Tuples.
Gecode toplevel namespace
Argument array for variables.
IntVarBranch INT_VAR_MAX_MIN(BranchTbl tbl)
Select variable with smallest max.
void wait(Home home, FloatVar x, void(*c)(Space &home))
Execute c when x becomes assigned.
Implication for reification.
IntValBranch INT_VAL(IntBranchVal v, IntBranchCommit c)
Select value as defined by the value function v and commit function c Uses a commit function as defau...
#define GECODE_VTABLE_EXPORT
Range iterator for computing set difference.
BoolVar x
The Boolean control variable.
Tracer< Int::IntView > IntTracer
Tracer for integer variables.
Class for activity management.
#define GECODE_INT_EXPORT
const long long int llinfinity
Infinity for long long integers.
void cumulative(Home home, int c, const TaskTypeArgs &t, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, IntPropLevel ipl)
Post propagators for scheduling tasks on cumulative resources.
struct Gecode::@554::NNF::@60::@61 b
For binary nodes (and, or, eqv)
void check(int n, const char *l)
Check whether n is in range, otherwise throw out of limits with information l.
Home class for posting propagators
double tbl(const Gecode::Space &, double w, double b)
Test function for tie-break limit function.
ReifyMode
Mode for reification.
Select value according to user-defined functions.
ReifyMode rm
The reification mode.
void positive(int n, const char *l)
Check whether n is in range and strictly positive, otherwise throw out of limits with information l...
Trace delta information for Boolean variables.
void unary(Home home, const IntVarArgs &s, const IntArgs &p, IntPropLevel ipl)
Post propagators for scheduling tasks on unary resources.
IntValBranch INT_VAL_NEAR_DEC(IntSharedArray n)
Try value smaller than a given value for a variable first.
IntVarBranch INT_VAR_SIZE_MAX(BranchTbl tbl)
Select variable with largest domain size.
int delta
Delta information.
void element(Home home, IntSharedArray c, IntVar x0, IntVar x1, IntPropLevel)
Post domain consistent propagator for .
Select value near to a given value, increment values first.
IntVarBranch INT_VAR_REGRET_MIN_MIN(BranchTbl tbl)
Select variable with smallest min-regret.
Select all values starting from smallest.
IntVarBranch INT_VAR_DEGREE_MIN(BranchTbl tbl)
Select variable with smallest degree.
void when(Home home, BoolVar x, void(*t)(Space &home), void(*e)(Space &home), IntPropLevel)
Execute t (then) when x is assigned one, and e (else) otherwise.
With smallest accumulated failure count divided by domain size.
void clause(Home home, BoolOpType o, const BoolVarArgs &x, const BoolVarArgs &y, int n, IntPropLevel)
Post domain consistent propagator for Boolean clause with positive variables x and negative variables...
Equivalence for reification (default)
Reify pmi(BoolVar x)
Use reverse implication for reification.
Boolean view for Boolean variables.
double(* BranchTbl)(const Space &home, double w, double b)
Tie-break limit function.
void cumulatives(Home home, const IntVarArgs &m, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntVarArgs &u, const IntArgs &c, bool at_most, IntPropLevel cl)
Post propagators for the cumulatives constraint.