38 namespace Gecode {
namespace Set {
41 template<
class Char,
class Traits,
class I>
46 if (r.min() == r.max()) {
48 }
else if (r.min()+1 == r.max()) {
49 s << r.min() <<
"," << r.max();
51 s << r.min() <<
".." << r.max();
61 template<
class Char,
class Traits,
class IL,
class IU>
63 print(std::basic_ostream<Char,Traits>& s,
bool assigned, IL& lb, IU& ub,
64 unsigned int cardMin,
unsigned int cardMax) {
71 if (cardMin==cardMax) {
72 s <<
"#(" << cardMin <<
")";
74 s <<
"#(" << cardMin <<
"," << cardMax <<
")";
79 template<
class Char,
class Traits>
80 std::basic_ostream<Char,Traits>&
81 operator <<(std::basic_ostream<Char,Traits>& os,
const SetView&
x) {
82 std::basic_ostringstream<Char,Traits> s;
83 s.copyfmt(os); s.width(0);
90 template<
class Char,
class Traits>
91 inline std::basic_ostream<Char,Traits>&
92 operator <<(std::basic_ostream<Char,Traits>& os,
const EmptyView&) {
96 template<
class Char,
class Traits>
97 std::basic_ostream<Char,Traits>&
98 operator <<(std::basic_ostream<Char,Traits>& os,
const UniverseView&) {
99 std::basic_ostringstream<Char,Traits> s;
100 s.copyfmt(os); s.width(0);
104 return os << s.str();
107 template<
class Char,
class Traits>
108 std::basic_ostream<Char,Traits>&
110 std::basic_ostringstream<Char,Traits> s;
111 s.copyfmt(os); s.width(0);
115 return os << s.str();
118 template<
class Char,
class Traits>
119 std::basic_ostream<Char,Traits>&
121 std::basic_ostringstream<Char,Traits> s;
122 s.copyfmt(os); s.width(0);
124 s <<
"{" <<
x.
glbMin() <<
"}#(1)";
131 return os << s.str();
const int min
Smallest allowed integer in integer set.
bool assigned(void) const
Test whether view is assigned.
Range iterator for least upper bound of constant set view
const unsigned int card
Maximum cardinality of an integer set.
const int max
Largest allowed integer in integer set.
int glbMin(void) const
Return minimum element of greatest lower bound.
Range iterator for least upper bound of singleton set view
Range iterator for least upper bound of set variable views
Constant view for the universe.
Range iterator for greatest lower bound of set variable views
unsigned int cardMin(void) const
Return cardinality minimum.
Post propagator for SetVar SetOpType SetVar SetRelType r
Set view for set variables
void print(std::basic_ostream< Char, Traits > &s, bool assigned, IL &lb, IU &ub, unsigned int cardMin, unsigned int cardMax)
Print set view.
void printBound(std::basic_ostream< Char, Traits > &s, I &r)
Print bound of a set view or variable.
bool assigned(View x, int v)
Whether x is assigned to value v.
Post propagator for SetVar x
unsigned int cardMax(void) const
Return cardinality maximum.
Gecode toplevel namespace
Constant view for the empty set.