[Lemon-commits] [lemon_svn] athos: r1828 - hugo/trunk/src/lemon

Lemon SVN svn at lemon.cs.elte.hu
Mon Nov 6 20:48:01 CET 2006


Author: athos
Date: Thu Apr 21 17:15:12 2005
New Revision: 1828

Modified:
   hugo/trunk/src/lemon/lp_base.h
   hugo/trunk/src/lemon/lp_glpk.cc
   hugo/trunk/src/lemon/lp_glpk.h

Log:
I really have no idea about what to write here now.

Modified: hugo/trunk/src/lemon/lp_base.h
==============================================================================
--- hugo/trunk/src/lemon/lp_base.h	(original)
+++ hugo/trunk/src/lemon/lp_base.h	Thu Apr 21 17:15:12 2005
@@ -433,6 +433,7 @@
     virtual void _setColUpperBound(int i, Value value) = 0;
     virtual void _setRowLowerBound(int i, Value value) = 0;
     virtual void _setRowUpperBound(int i, Value value) = 0;
+    virtual void _setRowBounds(int i, Value lower, Value upper) = 0;
     virtual void _setObjCoeff(int i, Value obj_coef) = 0;
     virtual void _clearObj()=0;
 //     virtual void _setObj(int length,
@@ -655,8 +656,8 @@
     /// extended number of type Value, i.e. a finite number of type 
     /// Value, -\ref INF or \ref INF.
     void rowBounds(Row c, Value lower, Value upper) {
-      _setRowLowerBound(rows.floatingId(c.id),lower);
-      _setRowUpperBound(rows.floatingId(c.id),upper);
+      _setRowBounds(rows.floatingId(c.id),lower, upper);
+      // _setRowUpperBound(rows.floatingId(c.id),upper);
     }
     
     ///Set an element of the objective function

Modified: hugo/trunk/src/lemon/lp_glpk.cc
==============================================================================
--- hugo/trunk/src/lemon/lp_glpk.cc	(original)
+++ hugo/trunk/src/lemon/lp_glpk.cc	Thu Apr 21 17:15:12 2005
@@ -260,6 +260,38 @@
       }
     }
   }
+
+  void LpGlpk::_setRowBounds(int i, Value lb, Value ub)
+  {
+    //Bad parameter
+    if (lb==INF || ub==-INF) {
+      //FIXME error
+    }
+
+    if (lb == -INF){
+      if (ub == INF){
+	lpx_set_row_bnds(lp, i, LPX_FR, lb, ub);
+      }
+      else{
+	lpx_set_row_bnds(lp, i, LPX_UP, lb, ub);
+      }
+    }
+    else{
+      if (ub==INF){
+	lpx_set_row_bnds(lp, i, LPX_LO, lb, ub);
+
+      }
+      else{
+	if (lb == ub){
+	  lpx_set_row_bnds(lp, i, LPX_FX, lb, ub);
+	}
+	else{
+	  lpx_set_row_bnds(lp, i, LPX_DB, lb, ub);
+	}
+      }
+    }
+
+  }
   
   void LpGlpk::_setObjCoeff(int i, Value obj_coef)
   {

Modified: hugo/trunk/src/lemon/lp_glpk.h
==============================================================================
--- hugo/trunk/src/lemon/lp_glpk.h	(original)
+++ hugo/trunk/src/lemon/lp_glpk.h	Thu Apr 21 17:15:12 2005
@@ -62,6 +62,7 @@
     virtual void _setColUpperBound(int i, Value value);
     virtual void _setRowLowerBound(int i, Value value);
     virtual void _setRowUpperBound(int i, Value value);
+    virtual void _setRowBounds(int i, Value lower, Value upper);
     virtual void _setObjCoeff(int i, Value obj_coef);
     virtual void _clearObj();
 //     virtual void _setObj(int length,



More information about the Lemon-commits mailing list