Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Interface to the Coin-OR Linear Programming solver (CLP)
branch: master
Failed to load latest commit information.
src fix some deprecation warnings
test add conic linear tests
.travis.yml add travis script Update License Update
REQUIRE compat fix


Interface to the Clp linear programming solver. Provides a complete interface to the low-level C API, as well as an implementation of the solver-independent MathProgSolverInterface for efficiently solving sequences of linear programs. The Cbc julia package is used to provide the binary dependencies; see that package's README for supported platforms and installation instructions.

Build Status

Using with MathProgBase

Clp provides a solver object that can be passed to linprog in MathProgBase (and used to create instances of the solver-independent AbstractMathProgModel type):

    using Clp
    using MathProgBase
    linprog(..., ClpSolver(Option1=value1,Option2=value2,...))

see the MathProgBase documentation for further information.

Options are solver-dependent. The following options are the most useful (and well documented):

  • PrimalTolerance - primal feasibility tolerance (default 1e-7)
  • DualTolerance - dual feasibility tolerance (default 1e-7)
  • DualObjectiveLimit - when using dual simplex (where the objective is monotonically changing), terminate when the objective exceeds this limit
  • MaximumIterations - terminate after performing this number of simplex iterations
  • MaximumSeconds - terminate after this many seconds have passed
  • LogLevel - set to 1, 2, 3, or 4 for increasing output (default 0)
  • PresolveType - set to 1 to disable presolve
  • SolveType - choose the solution method:

    • 0 - dual simplex
    • 1 - primal simplex
    • 3 - barrier with crossover to optimal basis
    • 4 - barrier without crossover to optimal basis
    • 5 - automatic
  • InfeasibleReturn - set to 1 to return as soon as the problem is found to be infeasible (by default, an infeasibility proof is computed as well)

Using the C interface

The low-level C interface is available in the ClpCInterface submodule:

    using Clp.ClpCInterface

Using this interface is only recommended for advanced users. The Julia API is essentially a thin wrapper around the interface exported by Clp/src/Clp_C_Interface.h, which is documented in-line.

Something went wrong with that request. Please try again.