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 {
00041
00042
00043
00044
00045
00046 forceinline
00047 BoolView::BoolView(void) {}
00048 forceinline
00049 BoolView::BoolView(const BoolVar& x)
00050 : VarViewBase<BoolVarImp>(x.var()) {}
00051 forceinline
00052 BoolView::BoolView(BoolVarImp* x)
00053 : VarViewBase<BoolVarImp>(x) {}
00054
00055
00056
00057
00058
00059 forceinline BoolStatus
00060 BoolView::status(void) const {
00061 return varimp->status();
00062 }
00063 forceinline int
00064 BoolView::min(void) const {
00065 return varimp->min();
00066 }
00067 forceinline int
00068 BoolView::max(void) const {
00069 return varimp->max();
00070 }
00071 forceinline int
00072 BoolView::med(void) const {
00073 return varimp->med();
00074 }
00075 forceinline int
00076 BoolView::val(void) const {
00077 return varimp->val();
00078 }
00079
00080 forceinline unsigned int
00081 BoolView::size(void) const {
00082 return varimp->size();
00083 }
00084 forceinline unsigned int
00085 BoolView::width(void) const {
00086 return varimp->width();
00087 }
00088 forceinline unsigned int
00089 BoolView::regret_min(void) const {
00090 return varimp->regret_min();
00091 }
00092 forceinline unsigned int
00093 BoolView::regret_max(void) const {
00094 return varimp->regret_max();
00095 }
00096
00097
00098
00099
00100
00101
00102 forceinline bool
00103 BoolView::range(void) const {
00104 return varimp->range();
00105 }
00106 forceinline bool
00107 BoolView::assigned(void) const {
00108 return varimp->assigned();
00109 }
00110
00111 forceinline bool
00112 BoolView::in(int n) const {
00113 return varimp->in(n);
00114 }
00115 forceinline bool
00116 BoolView::in(double n) const {
00117 return varimp->in(n);
00118 }
00119
00120
00121
00122
00123
00124
00125 forceinline ModEvent
00126 BoolView::lq(Space& home, int n) {
00127 return varimp->lq(home,n);
00128 }
00129 forceinline ModEvent
00130 BoolView::lq(Space& home, double n) {
00131 return varimp->lq(home,n);
00132 }
00133
00134 forceinline ModEvent
00135 BoolView::le(Space& home, int n) {
00136 return varimp->lq(home,n-1);
00137 }
00138 forceinline ModEvent
00139 BoolView::le(Space& home, double n) {
00140 return lq(home,n-1.0);
00141 }
00142
00143 forceinline ModEvent
00144 BoolView::gq(Space& home, int n) {
00145 return varimp->gq(home,n);
00146 }
00147 forceinline ModEvent
00148 BoolView::gq(Space& home, double n) {
00149 return varimp->gq(home,n);
00150 }
00151
00152 forceinline ModEvent
00153 BoolView::gr(Space& home, int n) {
00154 return varimp->gq(home,n+1);
00155 }
00156 forceinline ModEvent
00157 BoolView::gr(Space& home, double n) {
00158 return gq(home,n+1.0);
00159 }
00160
00161 forceinline ModEvent
00162 BoolView::nq(Space& home, int n) {
00163 return varimp->nq(home,n);
00164 }
00165 forceinline ModEvent
00166 BoolView::nq(Space& home, double n) {
00167 return varimp->nq(home,n);
00168 }
00169
00170 forceinline ModEvent
00171 BoolView::eq(Space& home, int n) {
00172 return varimp->eq(home,n);
00173 }
00174 forceinline ModEvent
00175 BoolView::eq(Space& home, double n) {
00176 return varimp->eq(home,n);
00177 }
00178
00179
00180
00181
00182
00183
00184 template<class I>
00185 forceinline ModEvent
00186 BoolView::narrow_r(Space& home, I& i, bool depend) {
00187 Iter::Ranges::IsRangeIter<I>();
00188 return varimp->narrow_r(home,i,depend);
00189 }
00190 template<class I>
00191 forceinline ModEvent
00192 BoolView::inter_r(Space& home, I& i, bool depend) {
00193 Iter::Ranges::IsRangeIter<I>();
00194 return varimp->inter_r(home,i,depend);
00195 }
00196 template<class I>
00197 forceinline ModEvent
00198 BoolView::minus_r(Space& home, I& i, bool depend) {
00199 Iter::Ranges::IsRangeIter<I>();
00200 return varimp->minus_r(home,i,depend);
00201 }
00202 template<class I>
00203 forceinline ModEvent
00204 BoolView::narrow_v(Space& home, I& i, bool depend) {
00205 Iter::Values::IsValueIter<I>();
00206 return varimp->narrow_v(home,i,depend);
00207 }
00208 template<class I>
00209 forceinline ModEvent
00210 BoolView::inter_v(Space& home, I& i, bool depend) {
00211 Iter::Values::IsValueIter<I>();
00212 return varimp->inter_v(home,i,depend);
00213 }
00214 template<class I>
00215 forceinline ModEvent
00216 BoolView::minus_v(Space& home, I& i, bool depend) {
00217 Iter::Values::IsValueIter<I>();
00218 return varimp->minus_v(home,i,depend);
00219 }
00220
00221
00222
00223
00224
00225
00226 forceinline bool
00227 BoolView::zero(void) const {
00228 return varimp->zero();
00229 }
00230 forceinline bool
00231 BoolView::one(void) const {
00232 return varimp->one();
00233 }
00234 forceinline bool
00235 BoolView::none(void) const {
00236 return varimp->none();
00237 }
00238
00239
00240
00241
00242
00243
00244 forceinline ModEvent
00245 BoolView::zero_none(Space& home) {
00246 return varimp->zero_none(home);
00247 }
00248 forceinline ModEvent
00249 BoolView::one_none(Space& home) {
00250 return varimp->one_none(home);
00251 }
00252
00253 forceinline ModEvent
00254 BoolView::zero(Space& home) {
00255 return varimp->zero(home);
00256 }
00257 forceinline ModEvent
00258 BoolView::one(Space& home) {
00259 return varimp->one(home);
00260 }
00261
00262
00263
00264
00265
00266
00267 forceinline ModEvent
00268 BoolView::modevent(const Delta& d) {
00269 return BoolVarImp::modevent(d);
00270 }
00271 forceinline int
00272 BoolView::min(const Delta& d) const {
00273 return BoolVarImp::min(d);
00274 }
00275 forceinline int
00276 BoolView::max(const Delta& d) const {
00277 return BoolVarImp::max(d);
00278 }
00279 forceinline bool
00280 BoolView::any(const Delta& d) const {
00281 return BoolVarImp::any(d);
00282 }
00283 forceinline bool
00284 BoolView::zero(const Delta& d) {
00285 return BoolVarImp::zero(d);
00286 }
00287 forceinline bool
00288 BoolView::one(const Delta& d) {
00289 return BoolVarImp::one(d);
00290 }
00291
00292
00293
00294 forceinline ModEventDelta
00295 BoolView::med(ModEvent me) {
00296 return VarViewBase<BoolVarImp>::med(me);
00297 }
00298
00299
00300
00301
00302
00303
00304 forceinline void
00305 BoolView::update(Space& home, bool share, BoolView& x) {
00306 varimp = x.varimp->copy(home,share);
00307 }
00308
00313 template<>
00314 class ViewRanges<BoolView> : public Iter::Ranges::Singleton {
00315 public:
00317
00318
00319 ViewRanges(void);
00321 ViewRanges(const BoolView& x);
00323 void init(const BoolView& x);
00325 };
00326
00327 forceinline
00328 ViewRanges<BoolView>::ViewRanges(void) {}
00329
00330 forceinline
00331 ViewRanges<BoolView>::ViewRanges(const BoolView& x)
00332 : Iter::Ranges::Singleton(x.min(),x.max()) {}
00333
00334 forceinline void
00335 ViewRanges<BoolView>::init(const BoolView& x) {
00336 Iter::Ranges::Singleton::init(x.min(),x.max());
00337 }
00338
00339 }
00340
00341 }
00342
00343