You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ CSDP_USE_JULIA_LAPACK=false julia -e 'import Pkg; Pkg.add("CSDP"); Pkg.build("CSDP")'
30
+
julia> import Pkg; Pkg.add("CSDP")
43
31
```
44
32
45
-
Note that if the environment variable `CSDP_USE_JULIA_LAPACK` is not set, it defaults
46
-
to using the system libraries if available and the Julia libraries otherwise.
33
+
CSDP.jl will use [BinaryProvider.jl](https://github.com/JuliaPackaging/BinaryProvider.jl) to automatically install the CSDP binaries. This should work for both the [official Julia binaries](https://julialang.org/downloads) and source-builds.
We highly recommend that you use the *CSDP.jl* package with higher level
39
+
packages such as [CSDP.jl](https://github.com/jump-dev/CSDP.jl).
40
+
41
+
This can be done using the ``CSDP.Optimizer`` object. Here is how to create a
42
+
*JuMP* model that uses CSDP as the solver.
54
43
```julia
55
44
using JuMP, CSDP
56
-
model =Model(solver=CSDPSolver())
45
+
46
+
model =Model(CSDP.Optimizer)
47
+
set_optimizer_attribute(model, "maxiter", 1000)
57
48
```
58
49
59
50
## CSDP problem representation
@@ -95,20 +86,20 @@ In practice, this is somewhat more conservative than simply requiring all eigenv
95
86
96
87
## Status
97
88
98
-
The table below shows how the different CSDP status are converted to [MathProgBase](https://github.com/JuliaOpt/MathProgBase.jl) status.
99
-
100
-
CSDP code | State | Description | MathProgBase status |
The table below shows how the different CSDP status are converted to [MathOptInterface (MOI)](https://github.com/jump-dev/MathOptInterface.jl) status.
If the `printlevel` option is at least `1`, the following will be printed:
114
105
@@ -143,32 +134,3 @@ Name |
143
134
`perturbobj` | The `perturbobj` parameter determines whether the objective function will be perturbed to help deal with problems that have unbounded optimal solution sets. If `perturbobj` is `0`, then the objective will not be perturbed. If `perturbobj` is `1`, then the objective function will be perturbed by a default amount. Larger values of `perturbobj` (e.g. `100`) increase the size of the perturbation. This can be helpful in solving some difficult problems. | `1` |
144
135
`fastmode` | The `fastmode` parameter determines whether or not CSDP will skip certain time consuming operations that slightly improve the accuracy of the solutions. If `fastmode` is set to `1`, then CSDP may be somewhat faster, but also somewhat less accurate | `0` |
145
136
`printlevel` | The `printlevel` parameter determines how much debugging information is output. Use a `printlevel` of `0` for no output and a `printlevel` of `1` for normal output. Higher values of printlevel will generate more debugging output | `1` |
146
-
147
-
## Getting the CSDP Library
148
-
The original make-file build system only provides a static library.
149
-
The quite old (September 2010) [`pycsdp`](https://github.com/BenjaminKern/pycsdp) interface by [Benjamin Kern](http://ifatwww.et.uni-magdeburg.de/syst/about_us/people/kern/index.shtml) circumvents the problem by writing some C++ [code](https://github.com/BenjaminKern/pycsdp/tree/master/CXX) to which the static library is linked.
150
-
The Sage [module](https://github.com/mghasemi/pycsdp) by @mghasemi is a Cython interface; I don't know how the libcsdp is installed or whether they assume that it is already available on the system.
151
-
152
-
That is why this package tries to parse the makefile and compiles it itself on Unix systems (so `gcc` is needed).
153
-
<!-- ~~Furthermore `libblas` and `liblapack` are needed to be installed.~~ -->
154
-
For Windows, a pre-compiled DLL is downloaded (unless you configure the `build.jl` differently).
155
-
156
-
<!-- On Windows you need the MinGW `gcc` compiler available in the `PATH`.
157
-
Currently, only the Win32 builds work. -->
158
-
159
-
160
-
## Next Steps (TODOs)
161
-
162
-
-[ ] Maybe port `libcsdp` to use 64bit Lapack, aka replace “some `int`s” by `long int` (the variables used in a Lapack call). Started in brach `julias_openblas64`
163
-
-[ ] Maybe think about an own array type to circumvent the 1-index problems in `libcsdp`.
164
-
-[ ] Map Julia's sparse arrays to `sparsematrixblock`.
165
-
-[ ] Upload `libcsdp.dll` for Windows via Appveyor deployment as described at
0 commit comments