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);
237 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);
510 int lubMin,
int lubMax,
511 unsigned int minCard = 0,
521 int lubMin,
int lubMax,
522 unsigned int minCard = 0,
533 unsigned int minCard = 0,
544 unsigned int minCard = 0,
585 unsigned int minCard = 0,
595 unsigned int minCard = 0,
605 unsigned int minCard = 0,
616 unsigned int minCard = 0,
696 cardinality(Home home, SetVar x,
unsigned int i,
unsigned int j);
757 rel(Home home,
SetOpType op,
const SetVarArgs& x, SetVar y);
761 rel(Home home,
SetOpType op,
const SetVarArgs& x,
const IntSet& z, SetVar y);
765 rel(Home home,
SetOpType op,
const IntVarArgs& x,
const IntSet& z, SetVar y);
769 rel(Home home,
SetOpType op,
const IntVarArgs& x, SetVar y);
808 convex(Home home, SetVar x);
812 convex(Home home, SetVar x, SetVar y);
825 sequence(Home home,
const SetVarArgs& x);
829 sequence(Home home,
const SetVarArgs& y, SetVar x);
843 atmostOne(Home home,
const SetVarArgs& x,
unsigned int c);
858 min(Home home, SetVar s, IntVar x);
863 notMin(Home home, SetVar s, IntVar x);
868 min(Home home, SetVar s, IntVar x, BoolVar
b);
873 max(Home home, SetVar s, IntVar x);
878 notMax(Home home, SetVar s, IntVar x);
883 max(Home home, SetVar s, IntVar x, BoolVar
b);
891 channel(Home home,
const IntVarArgs& x,
const SetVarArgs& y);
895 channel(Home home,
const BoolVarArgs& x, SetVar y);
930 precede(Home home,
const SetVarArgs& x,
int s,
int t);
935 precede(Home home,
const SetVarArgs& x,
const IntArgs&
c);
1009 element(Home home,
const SetVarArgs& x, IntVar y, SetVar z);
1026 IntVar x,
int w, IntVar y,
int h, SetVar z);
1033 element(Home home,
const SetVarArgs&
a,
1034 IntVar x,
int w, IntVar y,
int h, SetVar z);
1049 wait(Home home, SetVar x,
void (*
c)(Space& home));
1052 wait(Home home,
const SetVarArgs& x,
void (*
c)(Space& home));
1095 branch(Home home,
const SetVarArgs& x,
1101 branch(Home home,
const SetVarArgs& x,
1102 const TieBreakVarBranch<SetVarBranch>& vars,
SetValBranch vals,