package osdp
Install
Dune Dependency
Authors
Maintainers
Sources
sha512=d3586e4a22d06db813dd2d80fb0d5aef05ca5e4d197b90daff680e68e5a32f4295379c1b845cc9ae442c8469e8ebd8c71e7c979b64a144e266fdcd421082b4ed
doc/README.html
OSDP: Semi-definite programming (SDP) in OCaml
OSDP is an OCaml frontend library to semi-definite programming (SDP)
solvers.
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
About OSDP
OSDP is an OCaml frontend library to semi-definite programming (SDP) solvers.
See directory example for how to use the library.
Getting Started
Prerequisites
OSDP relies on external optimization tools
- Csdp
- Mosek
- SDPA
and on the following opam packages:
opam install ocamlfind dune conf-autoconf zarith ocplib-simplex.0.5 conf-csdp
Csdp
Csdp is free software and is available in most Unix systems. Eg. on Debian-based systems
apt-get install csdp
or, on OSX
brew install csdp
Csdp binary has to be available in the path.
Mosek
Mosek is a commercial tool available at www.mosek.com. OSDP is linked against the dynamic library of Mosek. Make sure that the library is available in the dynamic library environment variable.
Let PATH_TO_MOSEKDIR be path that contains the dynamic library, eg. libmosek64.so on Linux and libmosek64.dylib on OSX.
- On Linux
export LD_LIBRARY_PATH = PATH_TO_MOSEKDIR:$LD_LIBRARY_PATH
- On OSX
export DYLD_LIBRARY_PATH = PATH_TO_MOSEKDIR:$DYLD_LIBRARY_PATH
SDPA
Csdp is free software and is available in most Unix systems. Eg. on Debian-based systems
apt-get install sdpa
Like CSDP, it has to be available as a binary in the user path.
Installation
See INSTALL.
Using opam:
opam install osdp
Using the source:
Clone the repo
git clone https://github.com/Embedded-SW-VnV/osdp.git
Install dependencies
opam install ocamlfind dune conf-autoconf zarith ocplib-simplex.0.5 conf-csdp
Compile
autoconf ./configure make make install
Usage
As library
open Osdp
Ocaml toplevel
To use with the ocaml toplevel
% rlwrap ocaml
# #use "topfind";;
# #require "osdp";;
These last two lines can be added to ~/.ocamlinit
to avoid typing them again and again.
Documentation
Type
% make doc
to generate documentation (then see doc/index.html) or visit https://embedded-sw-vnv.github.io/osdp/doc/
Troubles
When running with OSX, some issues with the link of moseklib:
either run the final binary with
DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:`dirname \`which mosek\``" my_new_binary
- or use install_name_tool to provide the absolute path in the dynamic linking lib. It has to be done for every binary using Osdp, even indirectly.
License
Distributed under the LGPL-v2.1 License.