<html><body>
<p>Alexey,<br>
<br>
I have sent you an updated driver which I hope will help.<br>
<br>
For the benefit of others who use Clp, I would like to point out two bad features of the Clp library which can cause performance problems, but which are easy to get round.  These defects do not occur in the stand-alone solver.<br>
<br>
The first is the way Clp adds a row to a problem.  As it uses CoinPackedMatrix it adds a row to that.  Adding one row to a 100,000 row problem means allocation of memory and moving everything.  Doing this repeatedly can take a long time.  There is also a CoinModel object which uses the same syntax to add a row but keeps the data in a very different way.  It is easy to build up a model using CoinModel and then transferring it to a ClpModel.  This can give a speedup of a 100!  See addRows.cpp in clp/examples<br>
<br>
The second is perturbation, or rather the lack of it.  Many problems exhibit degeneracy due to ties in pivot choice.  This is easy to alleviate by perturbing something e.g. the objective for dual simplex.  This is done automatically if perturbation is set on, but the default is off.  The recommended setting is<br>
<br>
setPerturbation(50);<br>
<br>
<br>
John Forrest</body></html>