[Coin-discuss] update on what's happening in COIN?

Laszlo Ladanyi ladanyi at us.ibm.com
Mon Sep 16 18:21:57 EDT 2002


Hello,

Just a few words about COIN. 

In a development branch we have started to reorganize the directory
structure of COIN. The idea is the a number of classes are generic
(not specific to Osi), e.g., PackedVector, Message, etc. So these are
moved into a Coin subdirectory. Thus when one builds the various
libraries first libCoin.so is built.

The next change is that so far libosi was built with support for all
the solvers one had license for. Unfortunately this meant that if you
have built libosi with support for osl, cpx and vol then when you
linked your executable you had to link together with all of libosl,
libcplex and libvol even if you have used, say, libcplex only. Now
this is changed to follow the method Lou Hafer proposed when he wrote
the solverinterface for dylp. This method first builds libOsi that is
only the core (the generic) Osi methods then for every solver a
separate libOsiOsl, libOsiCpx, etc. is built, so now when you link
your executable you just link against libOsiCpx, libOsi and libcplex
if you want to use only cplex.

Also, Clp, the open source LP solver of John Forrest, is there in the
development branch. It builds properly and solves all the netlib
problems.

=============================
What builds and what doesn't?

libCoin, libClp, libOsi, libOsiVol, libOsiOsl, libOsiClp and libCgl
builds as well as the corresponding test programs and
unitTests. libOsiCpx, libOsiSpx, libOsiXpr and libOsiDylp is to be
done. Since I do not have licences for them (well I have for Dylp,
it's GPL :-), the maintainers of those pieces will have to update the
code. I did the obvious replacements (like OsiPackedVector replaced
with CoinPackedVector, etc.), but there's some work to be done.

The Examples and Bcp are still to be done, hopefully I'll get to those
later this week.

===========================
What else is on the agenda?

1) Adding support for glpk. It's already been submitted by ... Could you
rewrite it to support the format in the devel branch? 

2) Restructuring OsiSolverInterface to support SimplexSolver,
BarrierSolver, etc. It's in the works, other have posted a lot about
this. Hopefully will be done soon (famous last words, eh?)

3) In the current reorg there is a *very* ugly hack: OsiWarmstart went
into CoinWarmstart. I admit this is very ugly. The reason for it is
that otherwise Clp would have been dependent on Osi, which is even
uglier... Maybe the clean solution is for Clp to have its own
warmstart format and when Osi requests warmstart info then transform
the Clp ws info to Osi ws info. If the two happen to be identical :-)
then this is just copying. Any thoughts?

==============
How to get it?

Either via cvs: after logging in as anonymous (follow instruction on
the web), you can check out the branch with: `cvs checkout -r devel-1
COIN`.  This checks out all the MPS files as well. It's a bit of an
overkill, but I have to learn how to make cvs modules for a branch.
The other way is to get the COIN_devel-1_<date> tarball off the web.

That's it for today. I don't remember when did I write this much...

--Laci




More information about the Coin-discuss mailing list