[Clp-tickets] [COIN-OR Linear Programming Solver] #86: Index range error (underrun) in ClpPrimalColumnSteepest::partialPricing (tested with Clp-1.16.11)
COIN-OR Linear Programming Solver
coin-trac at coin-or.org
Tue Feb 19 06:30:48 EST 2019
#86: Index range error (underrun) in ClpPrimalColumnSteepest::partialPricing
(tested with Clp-1.16.11)
------------------------+----------------------
Reporter: jhusr | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: component1 | Version:
Keywords: |
------------------------+----------------------
In ClpPrimalColumnSteepest::partialPricing we find following declarations:
double * duals = model_->dualRowSolution(); // array size of
ClpModel::dual_ is ClpModel::numberRows_
double * duals2 = duals - numberColumns.
If ClpModel::dual_ is accessed using duals2[iSequence] resp. duals
[bestSequence-numberColumns]
an index underrun error occurs when the indices iSequence resp.
bestSequence have a
value < numberColumns.
This can be verified using the macro _ASSERT_DUAL_ROW_SOL_PTR_(x) in the
modified source code attached.
Use Visual Studio, debug configuration:
The underrun checks have been implemented in ClpPrimalColumnSteepest.cpp,
look for "DUAL_ROW_SOLUTION_UNDERRUN_CHECK".
Test condition:
Force switchType = 5 manually in ClpPrimalColumnSteepest::pivotColumn
(done in modified source, which is attached).
Try e.g. P0033, or netlib example PEROLD.
--
Ticket URL: <https://projects.coin-or.org/Clp/ticket/86>
COIN-OR Linear Programming Solver <http://projects.coin-or.org/Clp>
A linear programming solver.
More information about the Clp-tickets
mailing list