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}
inMOI.Nonnegatives
MOI.VectorAffineFunction{Float64}
inMOI.SecondOrderCone
MOI.VectorAffineFunction{Float64}
inMOI.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 bool for PRINTLEVEL < 3 |