package osdp

  1. Overview
  2. Docs
OCaml Interface to SDP solvers

Install

Dune Dependency

Authors

Maintainers

Sources

osdp-1.1.1.tgz
sha512=d3586e4a22d06db813dd2d80fb0d5aef05ca5e4d197b90daff680e68e5a32f4295379c1b845cc9ae442c8469e8ebd8c71e7c979b64a144e266fdcd421082b4ed

Description

OSDP is an OCaml frontend library to semi-definite programming (SDP) numerical optimization solvers. This package will be installed with the solver CSDP. It will also be compiled with SDPA and Mosek support if they can be found in the PATH.

Published: 12 Feb 2024

README

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
  1. About The Project
  2. Getting Started
  3. Usage
  4. Documentation
  5. Troubles
  6. License

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:
  1. Clone the repo

    git clone https://github.com/Embedded-SW-VnV/osdp.git
    
  2. Install dependencies

    opam install ocamlfind dune conf-autoconf zarith ocplib-simplex.0.5 conf-csdp
    
  3. 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.

Dependencies (6)

  1. conf-csdp
  2. ocplib-simplex = "0.5"
  3. zarith >= "1.4"
  4. dune >= "3.11"
  5. ocamlfind
  6. ocaml >= "4.08"

Dev Dependencies

None

Used by

None