Generated on Wed Nov 1 15:04:32 2006 for Gecode by doxygen 1.4.5

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: 2006-09-21 11:35:18 +0200 (Thu, 21 Sep 2006) $ by $Author: schulte $
00010  *     $Revision: 3686 $
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 
00028   inline
00029   IntVar::IntVar(const IntVar& x)
00030     : var(x.var) {}
00031   inline
00032   IntVar::IntVar(const Int::IntView& x)
00033     : var(x.variable()) {}
00034 
00035 
00036 
00037   forceinline Int::IntVarImp*
00038   IntVar::variable(void) const {
00039     return var;
00040   }
00041 
00042 
00043   forceinline int
00044   IntVar::val(void) const {
00045     return var->val();
00046   }
00047   forceinline int
00048   IntVar::min(void) const {
00049     return var->min();
00050   }
00051   forceinline int
00052   IntVar::med(void) const {
00053     return var->med();
00054   }
00055   forceinline int
00056   IntVar::max(void) const {
00057     return var->max();
00058   }
00059 
00060 
00061   forceinline unsigned int
00062   IntVar::degree(void) const {
00063     return var->degree();
00064   }
00065   forceinline unsigned int
00066   IntVar::width(void) const {
00067     return var->width();
00068   }
00069   forceinline unsigned int
00070   IntVar::size(void) const {
00071     return var->size();
00072   }
00073 
00074 
00075 
00076   forceinline bool
00077   IntVar::assigned(void) const {
00078     return var->assigned();
00079   }
00080   forceinline bool
00081   IntVar::range(void) const {
00082     return var->range();
00083   }
00084   forceinline bool
00085   IntVar::in(int n) const {
00086     return var->in(n);
00087   }
00088 
00089 
00090   forceinline void
00091   IntVar::update(Space* home, bool share, IntVar& x) {
00092     var = x.var->copy(home,share);
00093   }
00094 
00095   /*
00096    * Range iterator
00097    *
00098    */
00099   forceinline
00100   IntVarRanges::IntVarRanges(void) {}
00101 
00102   forceinline
00103   IntVarRanges::IntVarRanges(const IntVar& x)
00104     : Int::IntVarImpFwd(x.variable()) {}
00105 
00106   forceinline void
00107   IntVarRanges::init(const IntVar& x) {
00108     Int::IntVarImpFwd::init(x.variable());
00109   }
00110 
00111 
00112   /*
00113    * Value iterator
00114    *
00115    */
00116 
00117   forceinline
00118   IntVarValues::IntVarValues(void) {}
00119 
00120   forceinline
00121   IntVarValues::IntVarValues(const IntVar& x) {
00122     IntVarRanges r(x);
00123     Iter::Ranges::ToValues<IntVarRanges>::init(r);
00124   }
00125 
00126   forceinline void
00127   IntVarValues::init(const IntVar& x) {
00128     IntVarRanges r(x);
00129     Iter::Ranges::ToValues<IntVarRanges>::init(r);
00130   }
00131 
00132 }
00133 
00134 // STATISTICS: int-var
00135