jrl-qp (alpha version)
November 30, 2022 ยท View on GitHub
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:
- Eigen >= 3.2.8
If you have the following solvers, you can run benchmark comparisons with them :
- eigen-qld
- eigen-quadprog
- eigen-lssol (private repository)
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=ReleaseBuild in Release mode-DCMAKE_INSTALL_PREFIX=some/path/to/installdefault 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.