44 namespace Gecode {
namespace Set {
namespace RelOp {
46 template<
class View0,
class View1,
class View2>
49 return new (home)
SubOfUnion(home,share,*
this);
52 template<
class View0,
class View1,
class View2>
56 bool allassigned = x0.assigned() && x1.assigned() && x2.assigned();
108 if (m < x0.cardMax()+x1.cardMax()) {
111 x0.cardMax()+x1.cardMax() - m ) );
113 if (m + x2.cardMin() > x1.cardMax()) {
116 m+x2.cardMin()-x1.cardMax() ) );
118 if (m + x2.cardMin() > x0.cardMax()) {
121 m+x2.cardMin()-x0.cardMax() ) );
134 if (x0.assigned() + x1.assigned() + x2.assigned() >= 2) {
143 template<
class View0,
class View1,
class View2>
150 template<
class View0,
class View1,
class View2>
157 template<
class View0,
class View1,
class View2>
159 (
Home home, View0 x0, View1 x1, View2 x2) {