Skip to content

Commit 80d1a92

Browse files
authored
Update README (#142)
1 parent 31ad19e commit 80d1a92

File tree

1 file changed

+59
-28
lines changed

1 file changed

+59
-28
lines changed

README.md

Lines changed: 59 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,56 +3,87 @@
33
[![Build Status](https://github.com/jump-dev/ECOS.jl/workflows/CI/badge.svg?branch=master)](https://github.com/jump-dev/ECOS.jl/actions?query=workflow%3ACI)
44
[![codecov](https://codecov.io/gh/jump-dev/ECOS.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/jump-dev/ECOS.jl)
55

6-
Julia wrapper for the [ECOS](https://github.com/embotech/ecos) embeddable conic
7-
optimization interior point solver.
6+
[ECOS.jl](https://github.com/jump-dev/ECOS.jl) is a wrapper for the
7+
[ECOS](https://github.com/embotech/ecos) solver.
88

99
The wrapper has two components:
10+
1011
* a thin wrapper around the complete C API
11-
* an iterface to [MathOptInterface](https://github.com/jump-dev/MathOptInterface.jl)
12+
* an interface to [MathOptInterface](https://github.com/jump-dev/MathOptInterface.jl)
13+
14+
## Affiliation
15+
16+
This wrapper is maintained by the JuMP community and is not a product of
17+
Embotech AG.
18+
19+
## License
20+
21+
`ECOS.jl` is licensed under the [MIT License](https://github.com/jump-dev/ECOS.jl/blob/master/LICENSE.md).
22+
23+
The underlying solver, [embotech/ecos](https://github.com/embotech/ecos), is
24+
licensed under the [GPL v3 license](https://github.com/embotech/ecos/blob/develop/COPYING).
1225

1326
## Installation
1427

1528
Install ECOS.jl using `Pkg.add`:
1629
```julia
17-
import Pkg; Pkg.add("ECOS")
30+
import Pkg
31+
Pkg.add("ECOS")
1832
```
1933

2034
In addition to installing the ECOS.jl package, this will also download and
21-
install the ECOS binaries. (You do not need to install ECOS separately.)
35+
install the ECOS binaries. You do not need to install ECOS separately.
2236

2337
To use a custom binary, read the [Custom solver binaries](https://jump.dev/JuMP.jl/stable/developers/custom_solver_binaries/)
2438
section of the JuMP documentation.
2539

26-
### License
27-
28-
`ECOS.jl` is licensed under the MIT License (see LICENSE.md), but note that ECOS
29-
itself is GPL v3.
30-
3140
## Use with JuMP
3241

33-
TO use ECOS with [JuMP](https://github.com/jump-dev/JuMP.jl), use
42+
To use ECOS with [JuMP](https://github.com/jump-dev/JuMP.jl), use
3443
`ECOS.Optimizer`:
3544
```julia
3645
using JuMP, ECOS
3746
model = Model(ECOS.Optimizer)
38-
set_optimizer_attribute(model, "maxit", 100)
47+
set_attribute(model, "maxit", 100)
3948
```
4049

50+
## MathOptInterface API
51+
52+
The ECOS optimizer supports the following constraints and attributes.
53+
54+
List of supported objective functions:
55+
56+
* [`MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}`](@ref)
57+
58+
List of supported variable types:
59+
60+
* [`MOI.Reals`](@ref)
61+
62+
List of supported constraint types:
63+
64+
* [`MOI.VectorAffineFunction{Float64}`](@ref) in [`MOI.Nonnegatives`](@ref)
65+
* [`MOI.VectorAffineFunction{Float64}`](@ref) in [`MOI.SecondOrderCone`](@ref)
66+
* [`MOI.VectorAffineFunction{Float64}`](@ref) in [`MOI.Zeros`](@ref)
67+
68+
List of supported model attributes:
69+
70+
* [`MOI.ObjectiveSense()`](@ref)
71+
4172
## Options
4273

43-
The list of options is defined the [`ecos.h` header](https://github.com/embotech/ecos/blob/master/include/ecos.h),
44-
which we reproduce here:
45-
```julia
46-
gamma # scaling the final step length
47-
delta # regularization parameter
48-
eps # regularization threshold
49-
feastol # primal/dual infeasibility tolerance
50-
abstol # absolute tolerance on duality gap
51-
reltol # relative tolerance on duality gap
52-
feastol_inacc # primal/dual infeasibility relaxed tolerance
53-
abstol_inacc # absolute relaxed tolerance on duality gap
54-
reltol_inacc # relative relaxed tolerance on duality gap
55-
nitref # number of iterative refinement steps
56-
maxit # maximum number of iterations
57-
verbose # verbosity bool for PRINTLEVEL < 3
58-
```
74+
The following options are supported:
75+
76+
| Parameter | Explanation |
77+
| --------------- | ------------------------------------------- |
78+
| `gamma` | scaling the final step length |
79+
| `delta` | regularization parameter |
80+
| `eps` | regularization threshold |
81+
| `feastol` | primal/dual infeasibility tolerance |
82+
| `abstol` | absolute tolerance on duality gap |
83+
| `reltol` | relative tolerance on duality gap |
84+
| `feastol_inacc` | primal/dual infeasibility relaxed tolerance |
85+
| `abstol_inacc` | absolute relaxed tolerance on duality gap |
86+
| `reltol_inacc` | relative relaxed tolerance on duality gap |
87+
| `nitref` | number of iterative refinement steps |
88+
| `maxit` | maximum number of iterations |
89+
| `verbose` | verbosity `bool` for `PRINTLEVEL < 3` |

0 commit comments

Comments
 (0)