ECOS.jl is a wrapper for the ECOS solver.
The wrapper has two components:
- a thin wrapper around the complete C API
- an interface to MathOptInterface
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
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.
To use a custom binary, read the Custom solver binaries section of the JuMP documentation.
To use ECOS with JuMP, use
ECOS.Optimizer:
using JuMP, ECOS
model = Model(ECOS.Optimizer)
set_attribute(model, "maxit", 100)The ECOS optimizer supports the following constraints and attributes.
List of supported objective functions:
List of supported variable types:
List of supported constraint types:
- MOI.VectorAffineFunction{Float64}in- MOI.Nonnegatives
- MOI.VectorAffineFunction{Float64}in- MOI.SecondOrderCone
- MOI.VectorAffineFunction{Float64}in- MOI.Zeros
List of supported model attributes:
The following options are supported:
| Parameter | Explanation | 
|---|---|
| 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 boolforPRINTLEVEL < 3 |