44 #ifndef __GECODE_SET_HH__
45 #define __GECODE_SET_HH__
55 #if !defined(GECODE_STATIC_LIBS) && \
56 (defined(__CYGWIN__) || defined(__MINGW32__) || defined(_MSC_VER))
58 #ifdef GECODE_BUILD_SET
59 #define GECODE_SET_EXPORT __declspec( dllexport )
61 #define GECODE_SET_EXPORT __declspec( dllimport )
66 #ifdef GECODE_GCC_HAS_CLASS_VISIBILITY
67 #define GECODE_SET_EXPORT __attribute__ ((visibility("default")))
69 #define GECODE_SET_EXPORT
75 #ifndef GECODE_BUILD_SET
76 #define GECODE_LIBRARY_NAME "Set"
94 namespace Gecode {
namespace Set {
105 void check(
int n,
const char*
l);
107 void check(
unsigned int n,
const char*
l);
236 unsigned int glbSize(
void)
const;
239 unsigned int lubSize(
void)
const;
243 unsigned int cardMin(
void)
const;
245 unsigned int cardMax(
void)
const;
299 unsigned int width(
void)
const;
331 unsigned int width(
void)
const;
363 unsigned int width(
void)
const;
457 template<
class Char,
class Traits>
458 std::basic_ostream<Char,Traits>&
459 operator <<(std::basic_ostream<Char,Traits>& os,
const SetVar&
x);
505 template<
class InputIterator>
516 int lubMin,
int lubMax,
517 unsigned int minCard = 0,
527 int lubMin,
int lubMax,
528 unsigned int minCard = 0,
539 unsigned int minCard = 0,
550 unsigned int minCard = 0,
591 unsigned int minCard = 0,
601 unsigned int minCard = 0,
611 unsigned int minCard = 0,
622 unsigned int minCard = 0,
696 cardinality(Home home, SetVar
x,
unsigned int i,
unsigned int j);
699 cardinality(Home home,
const SetVarArgs&
x,
unsigned int i,
unsigned int j);
711 dom(Home home, SetVar
x, SetVar
d);
714 dom(Home home,
const SetVarArgs&
x,
const SetVarArgs&
d);
778 rel(Home home,
SetOpType op,
const SetVarArgs&
x,
const IntSet& z, SetVar y);
782 rel(Home home,
SetOpType op,
const IntVarArgs&
x,
const IntSet& z, SetVar y);
829 convex(Home home, SetVar
x, SetVar y);
842 sequence(Home home,
const SetVarArgs&
x);
846 sequence(Home home,
const SetVarArgs& y, SetVar
x);
860 atmostOne(Home home,
const SetVarArgs&
x,
unsigned int c);
875 min(Home home, SetVar s, IntVar
x);
880 notMin(Home home, SetVar s, IntVar
x);
885 min(Home home, SetVar s, IntVar
x, Reify
r);
890 max(Home home, SetVar s, IntVar
x);
895 notMax(Home home, SetVar s, IntVar
x);
900 max(Home home, SetVar s, IntVar
x, Reify
r);
932 channel(Home home,
const IntVarArgs&
x,
const SetVarArgs& y);
940 channel(Home home,
const BoolVarArgs&
x, SetVar y);
944 channel(Home home,
const SetVarArgs&
x,
const SetVarArgs& y);
960 precede(Home home,
const SetVarArgs&
x,
int s,
int t);
965 precede(Home home,
const SetVarArgs&
x,
const IntArgs&
c);
1039 element(Home home,
const SetVarArgs& x, IntVar y, SetVar z);
1056 IntVar x,
int w, IntVar y,
int h, SetVar z);
1063 element(Home home,
const SetVarArgs&
a,
1064 IntVar x,
int w, IntVar y,
int h, SetVar z);
1079 wait(Home home, SetVar x,
void (*
c)(Space& home));
1082 wait(Home home,
const SetVarArgs& x,
void (*
c)(Space& home));
1509 branch(Home home,
const SetVarArgs& x,
1510 SetVarBranch vars, SetValBranch vals,
1519 branch(Home home,
const SetVarArgs& x,
1520 TieBreak<SetVarBranch> vars, SetValBranch vals,
1529 branch(Home home, SetVar x, SetValBranch vals,
1537 assign(Home home,
const SetVarArgs& x, SetAssign vals,
1546 assign(Home home, SetVar x, SetAssign vals,
1569 branch(Home home,
const SetVarArgs& x,
1570 SetVarBranch vars, SetValBranch vals,
1571 const Symmetries& syms,
1581 branch(Home home,
const SetVarArgs& x,
1582 TieBreak<SetVarBranch> vars, SetValBranch vals,
1583 const Symmetries& syms,