All Projects → jump-dev → ECOS.jl

jump-dev / ECOS.jl

Licence: other
Julia wrapper for the ECOS conic optimization solver

Programming Languages

julia
2034 projects

ECOS.jl

Build Status codecov

Julia wrapper for the ECOS embeddable conic optimization interior point solver.

The wrapper has two components:

Installation

Install ECOS.jl using Pkg.add:

import Pkg; Pkg.add("ECOS")

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.) If you require a custom build of ECOS, see the Custom Installation instructions below.

License

ECOS.jl is licensed under the MIT License (see LICENSE.md), but note that ECOS itself is GPL v3.

Use with JuMP

TO use ECOS with JuMP, use ECOS.Optimizer:

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

Options

The list of options is defined the ecos.h header, which we reproduce here:

gamma          # scaling the final step length
delta          # regularization parameter
eps            # regularization threshold
feastol        # primal/dual infeasibility tolerance
abstol         # absolute tolerance on duality gap
reltol         # relative tolerance on duality gap
feastol_inacc  # primal/dual infeasibility relaxed tolerance
abstol_inacc   # absolute relaxed tolerance on duality gap
reltol_inacc   # relative relaxed tolerance on duality gap
nitref         # number of iterative refinement steps
maxit          # maximum number of iterations
verbose        # verbosity bool for PRINTLEVEL < 3

Custom Installation

After ECOS.jl is installed and built, you can replace the installed libecos dependency with a custom installation by following the Pkg documentation for overriding artifacts. Note that your custom libecos is required to be version 2.0.8.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].