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