# CLP Clp (*C*oin-or *l*inear *p*rogramming) is an open-source linear programming solver. It is primarily meant to be used as a callable library, but a basic, stand-alone executable version is also available. It is designed to find solutions of mathematical optimization problems of the form minimize c'x such that lhs ≤ Ax ≤ rhs and lb ≤ x ≤ ub CLP includes primal and dual Simplex solvers. Both dual and primal algorithms can use matrix storage methods provided by the user (0-1 and network matrices are already supported in addition to the default sparse matrix). The dual algorithm has Dantzig and Steepest edge row pivot choices; new ones may be provided by the user. The same is true for the column pivot choice of the primal algorithm. The primal can also use a non linear cost which should work for piecewise linear convex functions. CLP also includes a barrier method for solving LPs. Clp is written in C++ and is released as open source code under the [Eclipse Public License (EPL)](http://www.opensource.org/licenses/eclipse-1.0). It is available from the [COIN-OR initiative](http://www.coin-or.org/). The code is written primarily by John J. Forrest, now retired from IBM Research. The project is currently managed by John Forrest, Lou Hafer, [Julian Hall](https://www.maths.ed.ac.uk/hall/), and Matthew Saltzman. The Clp website is https://github.com/coin-or/Clp. Clp is available in [Debian](http://packages.debian.org/search?searchon=sourcenames&keywords=clp) and [Ubuntu](https://launchpad.net/ubuntu/+source/clp). ## Getting Started using CoinBrew To build Clp from source, obtain the `coinbrew` script from https://coin-or.github.io/coinbrew/ and run /path/to/coinbrew fetch --mainProj=Clp /path/to/coinbrew build --mainProj=Clp --test /path/to/coinbrew install --mainProj=Clp The `coinbrew` script will fetch [these](Dependencies) additional projects. ## Getting Started without CoinBrew (Expert users) 0. Install [these Dependencies](Dependencies) 1. Obtain the source code, e.g., from https://github.com/coin-or/Clp 2. Run `./configure -C` to generate makefiles 3. Run `make` to build the CoinUtils library 4. Run `make test` to build and run the CoinUtils unit test program 5. Run `make install` to install library and header files. ## Doxygen Documentation If you have `Doxygen` available, you can build a HTML documentation by typing `make doxydoc` in the build directory. If Clp was build via `coinbrew`, then the build directory is `./build/Clp`. The doxygen documentation main file is found at `./doxydoc/html/index.html` in the build directory. If `Doxygen` is not available, you can use also use [this link](http://www.coin-or.org/Doxygen/Clp). ## Project Links Help: * [mailing list](http://list.coin-or.org/mailman/listinfo/clp) * [Report a bug](https://github.com/coin-or/Clp/issues/new) Documentation: * [Doxygen-generated html documentation](http://www.coin-or.org/Doxygen/Clp) * Source code [examples](Clp/examples) * [User's Guide](https://coin-or.github.io/Clp) (from 2004) Interfaces: * [Matlab Interface + Windows x86 & x64 Interface Binaries (OPTI Toolbox)](https://www.inverseproblem.co.nz/OPTI/) * [Julia interface](https://github.com/JuliaOpt/Clp.jl) * [R and CLP - a quick start](https://cran.r-project.org/web/packages/clpAPI/vignettes/clpAPI.pdf) * [Java and CLP - performs well](http://orinanobworld.blogspot.co.uk/2016/06/using-clp-with-java.html)