@@ -97,18 +97,70 @@ namespace Gecode { namespace Int {
9797 return x.zero (home);
9898 }
9999
100+ /* Domain update by value
101+ *
102+ */
100103
104+ forceinline ModEvent
105+ NegBoolView::lq (Space& home, int n) {
106+ return n==0 ? x.one (home) : (n < 0 ? ME_BOOL_FAILED : ME_BOOL_NONE);
107+ }
108+ forceinline ModEvent
109+ NegBoolView::lq (Space& home, long long int n) {
110+ return n==0 ? x.one (home) : (n < 0 ? ME_BOOL_FAILED : ME_BOOL_NONE);
111+ }
112+ forceinline ModEvent
113+ NegBoolView::le (Space& home, int n) {
114+ return n==1 ? x.one (home) : (n < 1 ? ME_BOOL_FAILED : ME_BOOL_NONE);
115+ }
116+ forceinline ModEvent
117+ NegBoolView::le (Space& home, long long int n) {
118+ return n==1 ? x.one (home) : (n < 1 ? ME_BOOL_FAILED : ME_BOOL_NONE);
119+ }
120+ forceinline ModEvent
121+ NegBoolView::gq (Space& home, int n) {
122+ return n==1 ? x.zero (home) : (n <= 0 ? ME_BOOL_NONE : ME_BOOL_FAILED);
123+ }
124+ forceinline ModEvent
125+ NegBoolView::gq (Space& home, long long int n) {
126+ return n==1 ? x.zero (home) : (n <= 0 ? ME_BOOL_NONE : ME_BOOL_FAILED);
127+ }
128+ forceinline ModEvent
129+ NegBoolView::gr (Space& home, int n) {
130+ return n==0 ? x.zero (home) : (n >= 1 ? ME_BOOL_FAILED : ME_BOOL_NONE);
131+ }
132+ forceinline ModEvent
133+ NegBoolView::gr (Space& home, long long int n) {
134+ return n==0 ? x.zero (home) : (n >= 1 ? ME_BOOL_FAILED : ME_BOOL_NONE);
135+ }
136+ forceinline ModEvent
137+ NegBoolView::nq (Space& home, int n) {
138+ return n==0 ? x.zero (home) : (n==1 ? x.one (home) : ME_BOOL_NONE);
139+ }
140+ forceinline ModEvent
141+ NegBoolView::nq (Space& home, long long int n) {
142+ return n==0 ? x.zero (home) : (n==1 ? x.one (home) : ME_BOOL_NONE);
143+ }
144+ forceinline ModEvent
145+ NegBoolView::eq (Space& home, int n) {
146+ return n==0 ? x.one (home) : (n==1 ? x.zero (home) : ME_BOOL_FAILED);
147+ }
148+ forceinline ModEvent
149+ NegBoolView::eq (Space& home, long long int n) {
150+ return n==0 ? x.one (home) : (n==1 ? x.zero (home) : ME_BOOL_FAILED);
151+ }
152+
101153 /*
102154 * Value access
103155 *
104156 */
105157 forceinline int
106158 NegBoolView::min (void ) const {
107- return x.max ();
159+ return 1 - x.max ();
108160 }
109161 forceinline int
110162 NegBoolView::max (void ) const {
111- return x.min ();
163+ return 1 - x.min ();
112164 }
113165 forceinline int
114166 NegBoolView::val (void ) const {
0 commit comments