Skip to main content

C++ implementations of the algorithm of Goldfarb and Idnani for the solution of a (convex) QP

Project description

eiquadprog

Pipeline status Coverage report pre-commit.ci status

This repo contains different C++ implementations of the algorithm of Goldfarb and Idnani for the solution of a (convex) Quadratic Programming problem by means of a dual method.

The problem is in the form: min 0.5 * x G x + g0 x s.t. CE^T x + ce0 = 0 CI^T x + ci0 >= 0

There are 3 implementations:

  • eiquadprog.hpp: the original C++ implementation
  • eiquadprog-fast.hpp: an improved version employing a wrapper, avoiding dynamic memory allocation
  • eiquadprog-rt.hpp: similar to the above, it employs fixed-size Eigen vectors. This requires the problem dimensions to be known at compile time and is recommended only for small problems.

Please refer to the unit tests for examples of usage.

Authors

Eiquadprog was created at LAAS-CNRS by Gabriele Buondonno, based on parts from TSID by Andrea Del Prete.

This work was based on previous libraries:

  • QuadProg++, Copyright (C) 2007-2016 Luca Di Gaspero, MIT License.
  • uQuadProg, Copyright (C) 2006 - 2017 Angelo Furfaro, LGPL v3.
  • eiquadprog.hpp, Copyright (2011) Benjamin Stephens, GPL v2.
  • quadprog++ Copyright (C) 2014-2015 Gael Guennebaud, LGPL v3.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eiquadprog-1.2.8.tar.gz (869.5 kB view hashes)

Uploaded Source

Built Distributions

eiquadprog-1.2.8-0-py3-none-musllinux_1_1_x86_64.whl (100.3 kB view hashes)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

eiquadprog-1.2.8-0-py3-none-manylinux_2_28_x86_64.whl (115.1 kB view hashes)

Uploaded Python 3 manylinux: glibc 2.28+ x86-64

eiquadprog-1.2.8-0-py3-none-manylinux_2_28_aarch64.whl (104.4 kB view hashes)

Uploaded Python 3 manylinux: glibc 2.28+ ARM64

eiquadprog-1.2.8-0-py3-none-macosx_12_0_x86_64.whl (102.3 kB view hashes)

Uploaded Python 3 macOS 12.0+ x86-64

eiquadprog-1.2.8-0-py3-none-macosx_12_0_arm64.whl (87.3 kB view hashes)

Uploaded Python 3 macOS 12.0+ ARM64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page