Build Status codecov

ECOS.jl is a wrapper for the ECOS solver.

The wrapper has two components:


This wrapper is maintained by the JuMP community and is not a product of Embotech AG.


ECOS.jl is licensed under the MIT License.

The underlying solver, embotech/ecos, is licensed under the GPL v3 license.


Install ECOS.jl using Pkg.add:

import Pkg

In addition to installing the ECOS.jl package, this will also download and install the ECOS binaries. You do not need to install ECOS separately.

To use a custom binary, read the Custom solver binaries section of the JuMP documentation.

Use with JuMP

To use ECOS with JuMP, use ECOS.Optimizer:

using JuMP, ECOS
model = Model(ECOS.Optimizer)
set_attribute(model, "maxit", 100)

MathOptInterface API

The ECOS optimizer supports the following constraints and attributes.

List of supported objective functions:

List of supported variable types:

List of supported constraint types:

List of supported model attributes:


The following options are supported:

gammascaling the final step length
deltaregularization parameter
epsregularization threshold
feastolprimal/dual infeasibility tolerance
abstolabsolute tolerance on duality gap
reltolrelative tolerance on duality gap
feastol_inaccprimal/dual infeasibility relaxed tolerance
abstol_inaccabsolute relaxed tolerance on duality gap
reltol_inaccrelative relaxed tolerance on duality gap
nitrefnumber of iterative refinement steps
maxitmaximum number of iterations
verboseverbosity bool for PRINTLEVEL < 3