Osdp
No description available
Install / Use
/learn @Embedded-SW-VnV/OsdpREADME
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.
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
