jrl-qp (alpha version)

November 30, 2022 ยท View on GitHub

License CI Documentation

This library offers tools and implementations to write, specialize and test QP solvers.

It comes (so far) with an implementation of the Goldfarb-Idnani dual solver described in the seminal paper *D. Goldfarb, A. Idnani, "A numerically stable dual method for solving strictly convex quadratic programs", Mathematical Programming 27 (1983) 1-33 *.

The implementation is done with Eigen.

Installation

Compilation is tested on Linux (gcc/clang), macOS and Windows (Visual Studio).

Install APT packages (Ubuntu LTS)

# For head version replace stable with head
curl -1sLf 'https://dl.cloudsmith.io/public/mc-rtc/stable/setup.deb.sh' | sudo -E bash
sudo apt install libjrl-qp-dev

Dependencies

To compile you will need the following tools:

jrl-qp has a single dependency:

If you have the following solvers, you can run benchmark comparisons with them :

This repository also uses jrl-cmakemodules, and google benchmark as submodules.

Building from source on Linux

Follow the standard CMake build procedure:

git clone --recursive https://github.com/jrl-umi3218/jrl-qp
cd jrl-qp
mkdir build && cd build
cmake [options] ..
make && sudo make install

where the main options are:

  • -DCMAKE_BUILD_TYPE=Release Build in Release mode
  • -DCMAKE_INSTALL_PREFIX=some/path/to/install default is /usr/local

Tests

Aside from hand-crafted and randomized tests, this repository can use the Maros and Meszaros QP collection (bottom of this page), that can also be found here with a Matlab version of the problems. To use this collection, simply specify its path in the CMake options.