|
1 | | -# DSDP |
| 1 | +# DSDP.jl |
2 | 2 |
|
3 | | -| **Build Status** | |
4 | | -|:----------------:| |
5 | | -| [![Build Status][build-img]][build-url] | |
6 | | -| [![Codecov branch][codecov-img]][codecov-url] | |
| 3 | +[](https://github.com/jump-dev/DSDP.jl/actions?query=workflow%3ACI) |
| 4 | +[](https://codecov.io/gh/jump-dev/DSDP.jl) |
7 | 5 |
|
8 | 6 | **Important note**: this is still a work on progress. The use of positive semidefinite matrices in linear equality constraints has not been implemented yet so only linear programs can be solved at the moment with DSDP. |
9 | 7 |
|
10 | | -Julia wrapper for the [DSDP](http://www.mcs.anl.gov/hs/software/DSDP/) semidefinite programming solver. |
| 8 | +[DSDP.jl](https://github.com/jump-dev/DSDP.jl) is a wrapper for the |
| 9 | +[DSDP](http://www.mcs.anl.gov/hs/software/DSDP/) solver. |
| 10 | + |
| 11 | +It has two components: |
| 12 | + |
| 13 | + - a thin wrapper around the complete C API |
| 14 | + - an interface to [MathOptInterface](https://github.com/jump-dev/MathOptInterface.jl) |
| 15 | + |
| 16 | +## Affiliation |
| 17 | + |
| 18 | +This wrapper is maintained by the JuMP community and is not an official project |
| 19 | +of the DSDP developers. |
| 20 | + |
| 21 | +## Getting help |
| 22 | + |
| 23 | +If you need help, please ask a question on the [JuMP community forum](https://jump.dev/forum). |
| 24 | + |
| 25 | +If you have a reproducible example of a bug, please [open a GitHub issue](https://github.com/jump-dev/DSDP.jl/issues/new). |
11 | 26 |
|
12 | 27 | ## Installation |
13 | 28 |
|
14 | | -You can install DSDP.jl as follows: |
| 29 | +Install DSDP as follows: |
15 | 30 | ```julia |
16 | | -julia> Pkg.add("https://github.com/jump-dev/DSDP.jl.git") |
17 | | -julia> Pkg.build("DSDP") |
| 31 | +import Pkg |
| 32 | +Pkg.add("DSDP") |
18 | 33 | ``` |
19 | 34 |
|
20 | | -The `Pkg.build` command will compile DSDP from source, you will need to install the following dependencies for the compilation to work. |
| 35 | +In addition to installing the DSDP.jl package, this will also download and |
| 36 | +install the DSDP binaries. You do not need to install DSDP separately. |
| 37 | + |
| 38 | +To use a custom binary, read the [Custom solver binaries](https://jump.dev/JuMP.jl/stable/developers/custom_solver_binaries/) |
| 39 | +section of the JuMP documentation. |
21 | 40 |
|
22 | | -### Ubuntu |
23 | | -```sh |
24 | | -$ sudo apt-get install build-essential liblapack-dev libopenblas-dev |
| 41 | +## Use with JuMP |
| 42 | + |
| 43 | +To use DSDP with JuMP, use `DSDP.Optimizer`: |
| 44 | +```julia |
| 45 | +using JuMP, DSDP |
| 46 | +model = Model(DSDP.Optimizer) |
25 | 47 | ``` |
26 | 48 |
|
27 | | -### Windows |
28 | | -Windows support is still a work in progress. |
| 49 | +## MathOptInterface API |
| 50 | + |
| 51 | +The DSDP optimizer supports the following constraints and attributes. |
| 52 | + |
| 53 | +List of supported objective functions: |
| 54 | + |
| 55 | + * [`MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}`](@ref) |
| 56 | + |
| 57 | +List of supported variable types: |
| 58 | + |
| 59 | + * [`MOI.Nonnegatives`](@ref) |
| 60 | + * [`MOI.PositiveSemidefiniteConeTriangle`](@ref) (**only** on this PR at the moment: https://github.com/jump-dev/DSDP.jl/pull/29) |
| 61 | + |
| 62 | +List of supported constraint types: |
| 63 | + |
| 64 | + * [`MOI.ScalarAffineFunction{Float64}`](@ref) in [`MOI.EqualTo{Float64}`](@ref) |
| 65 | + |
| 66 | +List of supported model attributes: |
| 67 | + |
| 68 | + * [`MOI.ObjectiveSense()`](@ref) |
29 | 69 |
|
30 | | -[build-img]: https://github.com/jump-dev/DSDP.jl/workflows/CI/badge.svg?branch=master |
31 | | -[build-url]: https://github.com/jump-dev/DSDP.jl/actions?query=workflow%3ACI |
32 | | -[codecov-img]: http://codecov.io/github/jump-dev/DSDP.jl/coverage.svg?branch=master |
33 | | -[codecov-url]: http://codecov.io/github/jump-dev/DSDP.jl?branch=master |
|
0 commit comments