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 Reflection::Arg* spec(const Space* home, Reflection::VarMap& m) const {
00201 (void) home; (void) m;
00202 return NULL;
00203 }
00205 static Support::Symbol type(void) {
00206 return Support::Symbol("Gecode::Int::Linear::NoView");
00207 }
00209
00211
00212
00213 bool operator ==(const NoView& x) const { (void) x; return true; }
00215 bool operator !=(const NoView& x) const { (void) x; return false; }
00217 bool operator < (const NoView& x) const { (void) x; return false; }
00219 bool operator > (const NoView& x) const { (void) x; return false; }
00221 };
00222
00223 }}
00224
00225
00230 template <>
00231 class ViewArray<Int::Linear::NoView> {
00232 public:
00234
00235
00236 ViewArray(void) {}
00238 ViewArray(Space* home, int m) { (void) home; (void) m; }
00240 ViewArray(const ViewArray<Int::Linear::NoView>&) {}
00242 ViewArray(Space*, const ViewArray<Int::Linear::NoView>&) {}
00244 ViewArray(Space*, const Reflection::VarMap&, Reflection::Arg*) {}
00246 const ViewArray<Int::Linear::NoView>& operator=(const ViewArray<Int::Linear::NoView>&) { return *this; }
00248
00250
00251
00252 int size(void) const { return 0; }
00254 void size(int n) { (void) n; }
00256
00258
00259
00260 Int::Linear::NoView operator[](int i) {
00261 (void) i;
00262 Int::Linear::NoView n;
00263 return n;
00264 }
00266
00268
00269
00270 void subscribe(Space*, Propagator* p, PropCond pc, bool process=true) {
00271 (void) p; (void) pc; (void) process;
00272 }
00274 void cancel(Space* home, Propagator* p, PropCond pc) {
00275 (void) home; (void) p; (void) pc;
00276 }
00278
00280
00281
00288 void update(Space*, bool share, ViewArray<Int::Linear::NoView>& a) {
00289 (void) share; (void) a;
00290 }
00292
00294
00295
00296 Reflection::Arg* spec(const Space* home, Reflection::VarMap& m) const {
00297 (void) home; (void) m;
00298 return Reflection::Arg::newArray(0);
00299 }
00301
00302
00304
00305
00306 void move_fst(int i) { (void) i; }
00308 void move_lst(int i) { (void) i; }
00314 void move_fst(int i, Propagator* p, PropCond pc) {
00315 (void) i; (void) p; (void) pc;
00316 }
00322 void move_lst(int i, Propagator* p, PropCond pc) {
00323 (void) i; (void) p; (void) pc;
00324 }
00326
00328
00329
00330 void drop_fst(int i);
00332 void drop_lst(int i);
00338 void drop_fst(int i, Propagator* p, PropCond pc) {
00339 (void) i; (void) p; (void) pc;
00340 }
00347 void drop_lst(int i, Propagator* p, PropCond pc) {
00348 (void) i; (void) p; (void) pc;
00349 }
00351
00353
00354
00355 bool equal(void) const { return false; }
00357 bool equal(const Int::Linear::NoView& y) const {
00358 (void) y;
00359 return false;
00360 }
00362 void unique(void) {}
00364
00366
00367
00368 bool shared(void) const { return false; }
00370 bool shared(const Int::Linear::NoView& y) const {
00371 (void) y;
00372 return false;
00373 }
00375
00376 private:
00377 static void* operator new(size_t);
00378 static void operator delete(void*,size_t);
00379 };
00380
00381 }
00382
00383
00384
00385