Home

Awesome

jrl-qp (alpha version)

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:

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.