int-noview.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 namespace Gecode {
00039
00040 namespace Int { namespace Linear {
00041
00046 class NoView : public ConstViewBase {
00047 public:
00049
00050
00051 NoView(void) {}
00053 void init(void) {}
00055
00057
00058
00059 int min(void) const { return 0; }
00061 int max(void) const { return 0; }
00063 int med(void) const { return 0; }
00065 int val(void) const { return 0; }
00066
00068 unsigned int size(void) const { return 1; }
00070 unsigned int width(void) const { return 1; }
00072 unsigned int regret_min(void) const { return 0; }
00074 unsigned int regret_max(void) const { return 0; }
00076
00078
00079
00080 bool range(void) const { return true; }
00082 bool assigned(void) const { return true; }
00083
00085 bool in(int n) const { n=n; return false; }
00087 bool in(double n) const { n=n; return false; }
00089
00091
00092
00093 ModEvent lq(Space& home, int n) {
00094 (void) home; (void) n;
00095 return ME_INT_NONE;
00096 }
00098 ModEvent lq(Space& home, double n) {
00099 (void) home; (void) n;
00100 return ME_INT_NONE;
00101 }
00103 ModEvent le(Space& home, int n) {
00104 (void) home; (void) n;
00105 return ME_INT_NONE;
00106 }
00108 ModEvent le(Space& home, double n) {
00109 (void) home; (void) n;
00110 return ME_INT_NONE;
00111 }
00113 ModEvent gq(Space& home, int n) {
00114 (void) home; (void) n;
00115 return ME_INT_NONE;
00116 }
00118 ModEvent gq(Space& home, double n) {
00119 (void) home; (void) n;
00120 return ME_INT_NONE;
00121 }
00123 ModEvent gr(Space& home, int n) {
00124 (void) home; (void) n;
00125 return ME_INT_NONE;
00126 }
00128 ModEvent gr(Space& home, double n) {
00129 (void) home; (void) n;
00130 return ME_INT_NONE;
00131 }
00133 ModEvent nq(Space& home, int n) {
00134 (void) home; (void) n;
00135 return ME_INT_NONE;
00136 }
00138 ModEvent nq(Space& home, double n) {
00139 (void) home; (void) n;
00140 return ME_INT_NONE;
00141 }
00143 ModEvent eq(Space& home, int n) {
00144 (void) home; (void) n;
00145 return ME_INT_NONE;
00146 }
00148 ModEvent eq(Space& home, double n) {
00149 (void) home; (void) n;
00150 return ME_INT_NONE;
00151 }
00153
00155
00156
00157 static void schedule(Space& home, Propagator& p, ModEvent me) {
00158 (void) home; (void) p; (void) me;
00159 }
00161 static ModEvent med(const Propagator& p) {
00162 (void) p;
00163 return ME_INT_NONE;
00164 }
00166 static ModEventDelta med(ModEvent me) {
00167 (void) me;
00168 return ME_INT_NONE;
00169 }
00171
00173
00174
00175 void subscribe(Space& home, Propagator& p, PropCond pc,
00176 bool process=true) {
00177 (void) home; (void) p; (void) pc; (void) process;
00178 }
00180 void cancel(Space& home, Propagator& p, PropCond pc) {
00181 (void) home; (void) p; (void) pc;
00182 }
00184 void subscribe(Space&, Advisor&) {};
00186 void cancel(Space&, Advisor&) {};
00188
00190
00191
00192 void update(Space& home, bool share, NoView& x) {
00193 (void) home; (void) share; (void) x;
00194 }
00196
00198
00199
00200 bool operator ==(const NoView& x) const { (void) x; return true; }
00202 bool operator !=(const NoView& x) const { (void) x; return false; }
00204 bool operator < (const NoView& x) const { (void) x; return false; }
00206 bool operator > (const NoView& x) const { (void) x; return false; }
00208 };
00209
00210 }}
00211
00212
00217 template<>
00218 class ViewArray<Int::Linear::NoView> {
00219 public:
00221
00222
00223 ViewArray(void) {}
00225 ViewArray(Space& home, int m) { (void) home; (void) m; }
00227 ViewArray(const ViewArray<Int::Linear::NoView>&) {}
00229 ViewArray(Space&, const ViewArray<Int::Linear::NoView>&) {}
00231 const ViewArray<Int::Linear::NoView>& operator =(const ViewArray<Int::Linear::NoView>&) { return *this; }
00233
00235
00236
00237 int size(void) const { return 0; }
00239 void size(int n) { (void) n; }
00241
00243
00244
00245 Int::Linear::NoView operator [](int i) {
00246 (void) i;
00247 Int::Linear::NoView n;
00248 return n;
00249 }
00251
00253
00254
00255 void subscribe(Space&, Propagator& p, PropCond pc, bool process=true) {
00256 (void) p; (void) pc; (void) process;
00257 }
00259 void cancel(Space& home, Propagator& p, PropCond pc) {
00260 (void) home; (void) p; (void) pc;
00261 }
00263
00265
00266
00273 void update(Space&, bool share, ViewArray<Int::Linear::NoView>& a) {
00274 (void) share; (void) a;
00275 }
00277
00279
00280
00281 void move_fst(int i) { (void) i; }
00283 void move_lst(int i) { (void) i; }
00289 void move_fst(int i, Propagator& p, PropCond pc) {
00290 (void) i; (void) p; (void) pc;
00291 }
00297 void move_lst(int i, Propagator& p, PropCond pc) {
00298 (void) i; (void) p; (void) pc;
00299 }
00301
00303
00304
00305 void drop_fst(int i);
00307 void drop_lst(int i);
00313 void drop_fst(int i, Propagator& p, PropCond pc) {
00314 (void) i; (void) p; (void) pc;
00315 }
00322 void drop_lst(int i, Propagator& p, PropCond pc) {
00323 (void) i; (void) p; (void) pc;
00324 }
00326
00328
00329
00330 bool equal(void) const { return false; }
00332 bool equal(const Int::Linear::NoView& y) const {
00333 (void) y;
00334 return false;
00335 }
00337 void unique(void) {}
00339
00341
00342
00343 bool shared(void) const { return false; }
00345 bool shared(const Int::Linear::NoView& y) const {
00346 (void) y;
00347 return false;
00348 }
00350
00351 private:
00352 static void* operator new(size_t);
00353 static void operator delete(void*,size_t);
00354 };
00355
00356 }
00357
00358
00359
00360