# HG changeset patch # User athos # Date 1114096512 0 # Node ID 96a34c0904dda918eff54d41ef410514a22fae54 # Parent b82995734b2df293e64c3dd28bc6bb96cb617c69 I really have no idea about what to write here now. diff -r b82995734b2d -r 96a34c0904dd src/lemon/lp_base.h --- a/src/lemon/lp_base.h Thu Apr 21 06:06:56 2005 +0000 +++ b/src/lemon/lp_base.h Thu Apr 21 15:15:12 2005 +0000 @@ -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 diff -r b82995734b2d -r 96a34c0904dd src/lemon/lp_glpk.cc --- a/src/lemon/lp_glpk.cc Thu Apr 21 06:06:56 2005 +0000 +++ b/src/lemon/lp_glpk.cc Thu Apr 21 15:15:12 2005 +0000 @@ -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) { diff -r b82995734b2d -r 96a34c0904dd src/lemon/lp_glpk.h --- a/src/lemon/lp_glpk.h Thu Apr 21 06:06:56 2005 +0000 +++ b/src/lemon/lp_glpk.h Thu Apr 21 15:15:12 2005 +0000 @@ -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,