[Osi-tickets] [COIN-OR Open Solver Interface] #66: OsiCpx getRowUpper and getRowLower does not update on change
COIN-OR Open Solver Interface
coin-trac at coin-or.org
Wed Aug 13 13:58:46 EDT 2008
#66: OsiCpx getRowUpper and getRowLower does not update on change
--------------------+-------------------------------------------------------
Reporter: mkaut | Owner: mjs
Type: defect | Status: new
Priority: minor | Milestone:
Component: OsiCpx | Version: 0.96
Keywords: |
--------------------+-------------------------------------------------------
On the first call of OsiCpxSolverInterface::getRowUpper(), OsiCpx
creates a vector rowupper_ of rhs upper bounds and returns it.
If the RHS is changed and getRowUpper() called again, it is just returns
the existing rowupper_ vector, i.e. the values valid at the time of the
first call.
For other solvers (Clp, Glpk), things work as expected.
Note that even if the user is aware of the problem, he can't do anything,
as rowupper_ is private, so there is no chance to change or delete it.
Suggested solution:
I think that the best (and easiest) way of dealing with the problem is
to do it the same way as in for ex. OsiGlpk: update the rowlower_ and
rowupper_ vectors each time RHS is changed, i.e. in setRowLower,
setRowUpper and setRowBounds methods (if the vectors exist).
This should be a very minor change in the code.
--
Ticket URL: <https://projects.coin-or.org/Osi/ticket/66>
COIN-OR Open Solver Interface <http://projects.coin-or.org/Osi>
An API for a variety of LP and MIP solvers (and more).
More information about the Osi-tickets
mailing list