package osdp
Install
Dune Dependency
Authors
Maintainers
Sources
sha512=d3586e4a22d06db813dd2d80fb0d5aef05ca5e4d197b90daff680e68e5a32f4295379c1b845cc9ae442c8469e8ebd8c71e7c979b64a144e266fdcd421082b4ed
README.md.html
README.md
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.