Changeset 2361:f2ef1aa8189a in lemon-0.x for lemon
- Timestamp:
- 02/14/07 14:50:25 (17 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3167
- Location:
- lemon
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/lp_cplex.cc
r2328 r2361 148 148 } 149 149 150 LpCplex::Value LpCplex::_getCoeff(int row, int col) 151 { 152 LpCplex::Value value; 153 CPXgetcoef(env, lp, row, col, &value); 154 return value; 155 } 156 150 157 void LpCplex::_setColLowerBound(int i, Value value) 151 158 { … … 159 166 160 167 } 168 169 LpCplex::Value LpCplex::_getColLowerBound(int i) 170 { 171 LpCplex::Value x; 172 CPXgetlb (env, lp, &x, i, i); 173 return x; 174 } 161 175 162 176 void LpCplex::_setColUpperBound(int i, Value value) … … 169 183 bd[0]=value; 170 184 status = CPXchgbds(env, lp, 1, indices, lu, bd); 185 } 186 187 LpCplex::Value LpCplex::_getColUpperBound(int i) 188 { 189 LpCplex::Value x; 190 CPXgetub (env, lp, &x, i, i); 191 return x; 171 192 } 172 193 … … 243 264 // } 244 265 266 void LpCplex::_getRowBounds(int i, Value &lb, Value &ub) 267 { 268 char sense; 269 CPXgetsense(env, lp, &sense,i,i); 270 lb=-INF; 271 ub=INF; 272 switch (sense) 273 { 274 case 'L': 275 CPXgetcoef(env, lp, i, -1, &ub); 276 break; 277 case 'G': 278 CPXgetcoef(env, lp, i, -1, &lb); 279 break; 280 case 'E': 281 CPXgetcoef(env, lp, i, -1, &lb); 282 ub=lb; 283 break; 284 case 'R': 285 CPXgetcoef(env, lp, i, -1, &lb); 286 Value x; 287 CPXgetcoef(env, lp, i, -2, &x); 288 ub=lb+x; 289 break; 290 } 291 } 292 245 293 void LpCplex::_setObjCoeff(int i, Value obj_coef) 246 294 { 247 295 CPXchgcoef(env, lp, -1, i, obj_coef); 296 } 297 298 LpCplex::Value LpCplex::_getObjCoeff(int i) 299 { 300 Value x; 301 CPXgetcoef(env, lp, -1, i, &x); 302 return x; 248 303 } 249 304 … … 565 620 CPXchgobjsen(env, lp, CPX_MIN); 566 621 } 622 623 bool LpCplex::_isMax() 624 { 625 if (CPXgetobjsen(env, lp)==CPX_MAX) 626 return true; 627 else 628 return false; 629 } 567 630 568 631 } //namespace lemon -
lemon/lp_cplex.h
r2312 r2361 56 56 virtual LpSolverBase &_copyLp(); 57 57 58 58 59 virtual int _addCol(); 59 60 virtual int _addRow(); … … 65 66 virtual void _setColCoeffs(int i, LpColIterator b, LpColIterator e); 66 67 virtual void _setCoeff(int row, int col, Value value); 68 virtual Value _getCoeff(int row, int col); 69 67 70 virtual void _setColLowerBound(int i, Value value); 71 virtual Value _getColLowerBound(int i); 68 72 virtual void _setColUpperBound(int i, Value value); 73 virtual Value _getColUpperBound(int i); 74 69 75 // virtual void _setRowLowerBound(int i, Value value); 70 76 // virtual void _setRowUpperBound(int i, Value value); 71 77 virtual void _setRowBounds(int i, Value lower, Value upper); 78 virtual void _getRowBounds(int i, Value &lb, Value &ub); 72 79 virtual void _setObjCoeff(int i, Value obj_coef); 80 virtual Value _getObjCoeff(int i); 73 81 virtual void _clearObj(); 74 ///\e 82 75 83 76 84 virtual SolveExitStatus _solve(); … … 88 96 virtual void _setMin(); 89 97 98 virtual bool _isMax(); 99 90 100 }; 91 101 } //END OF NAMESPACE LEMON
Note: See TracChangeset
for help on using the changeset viewer.