Generated on Wed Jan 4 17:49:09 2006 for Gecode by doxygen 1.4.6

int.icc

Go to the documentation of this file.
00001 /*
00002  *  Main authors:
00003  *     Christian Schulte <schulte@gecode.org>
00004  *
00005  *  Copyright:
00006  *     Christian Schulte, 2002
00007  *
00008  *  Last modified:
00009  *     $Date: 2005-10-11 17:57:38 +0200 (Tue, 11 Oct 2005) $ by $Author: tack $
00010  *     $Revision: 2334 $
00011  *
00012  *  This file is part of Gecode, the generic constraint
00013  *  development environment:
00014  *     http://www.gecode.org
00015  *
00016  *  See the file "LICENSE" for information on usage and
00017  *  redistribution of this file, and for a
00018  *     DISCLAIMER OF ALL WARRANTIES.
00019  *
00020  */
00021 
00022 namespace Gecode {
00023 
00024   forceinline
00025   IntVar::IntVar(void) {}
00026 
00027   forceinline void
00028   IntVar::init(Space* home, int min, int max) {
00029     var = new (home) Int::IntVarImp(home,min,max);
00030   }
00031 
00032   forceinline void
00033   IntVar::init(Space* home, const IntSet& ds) {
00034     var = new (home) Int::IntVarImp(home,ds);
00035   }
00036 
00037 
00038 
00039   inline
00040   IntVar::IntVar(const IntVar& x)
00041     : var(x.var) {}
00042   inline
00043   IntVar::IntVar(const Int::IntView& x)
00044     : var(x.variable()) {}
00045 
00046 
00047 
00048   forceinline Int::IntVarImp*
00049   IntVar::variable(void) const {
00050     return var;
00051   }
00052 
00053 
00054   forceinline int
00055   IntVar::val(void) const {
00056     return var->val();
00057   }
00058   forceinline int
00059   IntVar::min(void) const {
00060     return var->min();
00061   }
00062   forceinline int
00063   IntVar::med(void) const {
00064     return var->med();
00065   }
00066   forceinline int
00067   IntVar::max(void) const {
00068     return var->max();
00069   }
00070 
00071 
00072   forceinline unsigned int
00073   IntVar::degree(void) const {
00074     return var->degree();
00075   }
00076   forceinline unsigned int
00077   IntVar::width(void) const {
00078     return var->width();
00079   }
00080   forceinline unsigned int
00081   IntVar::size(void) const {
00082     return var->size();
00083   }
00084 
00085 
00086 
00087   forceinline bool
00088   IntVar::assigned(void) const {
00089     return var->assigned();
00090   }
00091   forceinline bool
00092   IntVar::range(void) const {
00093     return var->range();
00094   }
00095   forceinline bool
00096   IntVar::in(int n) const {
00097     return var->in(n);
00098   }
00099 
00100 
00101   forceinline void
00102   IntVar::update(Space* home, bool share, IntVar& x) {
00103     var = x.var->copy(home,share);
00104   }
00105 
00106   /*
00107    * Range iterator
00108    *
00109    */
00110   forceinline
00111   IntVarRanges::IntVarRanges(void) {}
00112 
00113   forceinline
00114   IntVarRanges::IntVarRanges(const IntVar& x)
00115     : Int::IntVarImpFwd(x.variable()) {}
00116 
00117   forceinline void
00118   IntVarRanges::init(const IntVar& x) {
00119     Int::IntVarImpFwd::init(x.variable());
00120   }
00121   
00122 
00123   /*
00124    * Value iterator
00125    *
00126    */
00127 
00128   forceinline
00129   IntVarValues::IntVarValues(void) {}
00130 
00131   forceinline
00132   IntVarValues::IntVarValues(const IntVar& x) {
00133     IntVarRanges r(x);
00134     Iter::Ranges::ToValues<IntVarRanges>::init(r);
00135   }
00136 
00137   forceinline void
00138   IntVarValues::init(const IntVar& x) {
00139     IntVarRanges r(x);
00140     Iter::Ranges::ToValues<IntVarRanges>::init(r);
00141   }
00142 
00143 }
00144 
00145 // STATISTICS: int-var
00146