Proximal Augmented Lagrangian method for Quadratic Programs
Project description
Proximal Augmented Lagrangian method for Quadratic Programs
QPALM is a numerical optimization package that finds stationary points of (possibly nonconvex) quadratic programs, that is
minimize ½ xᵀQx + qᵀx
subject to l ≤ Ax ≤ u
Documentation
The documentation can be found at: https://kul-optec.github.io/QPALM/Doxygen
Examples are included as well: https://kul-optec.github.io/QPALM/Doxygen/examples.html
Installation
Python
The QPALM Python interface is available from PyPI, you can install it using:
python3 -m pip install qpalm
Julia
In the Julia console, press ]
to enter the Pkg REPL and install QPALM using:
add QPALM
Matlab
To install the Matlab interface, download
qpalm-matlab-{linux,windows,macos}.zip
from the
releases page, and
extract it into the ~/Documents/MATLAB
folder.
As a one-liner in the Matlab console:
unzip('https://github.com/kul-optec/QPALM/releases/download/1.1.3/qpalm-matlab-linux.zip', userpath)
unzip('https://github.com/kul-optec/QPALM/releases/download/1.1.3/qpalm-matlab-windows.zip', userpath)
unzip('https://github.com/kul-optec/QPALM/releases/download/1.1.3/qpalm-matlab-macos.zip', userpath)
C/C++/Fortran
Pre-built C, C++ and Fortran libraries are available from the releases page.
Building QPALM from source
For detailed instructions on how to build QPALM from source, please see https://kul-optec.github.io/QPALM/Doxygen/installation-md.html
Supported platforms
QPALM is written in C, with interfaces for C++, Python, Julia, Matlab and Fortran.
The code itself is portable across all major platforms. Binaries are available
for Linux on x86-64 and AArch64* and for Windows and macOS on x86-64.
(*) Except Matlab.
Benchmarks
Check out the papers below for detailed benchmark tests comparing QPALM with state-of-the-art solvers.
- QPALM: A Newton-type Proximal Augmented Lagrangian Method for Quadratic Programs
- QPALM: A Proximal Augmented Lagrangian Method for Nonconvex Quadratic Programs
Citing
If you use QPALM in your research, please cite the following paper:
@inproceedings{hermans2019qpalm,
author = {Hermans, B. and Themelis, A. and Patrinos, P.},
booktitle = {58th IEEE Conference on Decision and Control},
title = {{QPALM}: {A} {N}ewton-type {P}roximal {A}ugmented {L}agrangian {M}ethod for {Q}uadratic {P}rograms},
year = {2019},
volume = {},
number = {},
pages = {},
doi = {},
issn = {},
month = {Dec.},
}
Previous versions
The original repository by Ben Hermans at https://github.com/Benny44/QPALM_vLADEL will no longer be maintained.
License
QPALM is licensed under LGPL v3.0. Some modules are used in this software:
- LADEL: authored by Ben Hermans and licensed under LGPL-v3.
- LOBPCG: the version of LOBPCG used here was written by Ben Hermans and licensed under the GNU Lesser General Public License v3.0, see LOBPCG/LICENSE.
- LAPACK: authored by The University of Tennessee and The University of Tennessee Research Foundation, The University of California Berkeley, and The University of Colorado Denver, and licensed under BSD-3, see here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for qpalm-1.1.3-pp39-pypy39_pp73-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9ecac94ce91d92d06ce9d8e34aa9fe254fb77dbb9b79cd8ff18d1d9ea9741cf |
|
MD5 | a5ed367a6ae7c121044b3908e1938d81 |
|
BLAKE2b-256 | 5ce5ecf559a9c4e903a1d40cd198a40849b1803da4f0900b2de903003b3883ab |
Hashes for qpalm-1.1.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2a30e8ebae75b1e2c9042fe05db5e6aca8ff14564c35b6d761e862ae87d1378 |
|
MD5 | fccf80708ca0ee1f1a4edd2a67703b07 |
|
BLAKE2b-256 | 146002a377c4fe19b6b5339dfb22a1804f66d14dbda6757a776d99c4b857c478 |
Hashes for qpalm-1.1.3-pp38-pypy38_pp73-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4ac9336b41cd8e304dcbd6c5129374df3a5b056a7fb89c8fec72fa0791aece2 |
|
MD5 | 28f02e7d8d08d5f6dac919646fe1bea9 |
|
BLAKE2b-256 | e49b03685778010428720b40eaae36515f2681aef75c1652711adeb781f5f8c3 |
Hashes for qpalm-1.1.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d0a5694aa73dda50704c23e0133472f974b5dc29988c954bc51823f342955ef |
|
MD5 | b2edaed5fcd2c983acbb4f5c91230e8d |
|
BLAKE2b-256 | aed95d6c88e64d758b9288e76d7882b2f79c99fcbd4d8efc4ad913b157b3ef0f |
Hashes for qpalm-1.1.3-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3bca1b35a79fc504070d901899fc07b02420bd9689e5bac0c1b9c8966b8af3c |
|
MD5 | 8f4508be787ff8be8237b3e479ed590d |
|
BLAKE2b-256 | a5cc4a774dc786e33a836a8b8a33e7f30fe891719b8df547b760db355d8fc9e5 |
Hashes for qpalm-1.1.3-cp311-cp311-manylinux_2_27_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b78334f57c8d3da454fc1f5d028c18161ab89584b32f5f33672e3e2d3c629253 |
|
MD5 | f187636f79ae3e0660beed483888d35a |
|
BLAKE2b-256 | 027adb2630bc410a33a25d4eaaef7363cb4b4cffcab74cb12e773bca8b41581b |
Hashes for qpalm-1.1.3-cp311-cp311-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fe1d8606250115933371cdc5e944cb2424db8033ab93bd7b7dc0628a4f8ebd3 |
|
MD5 | 8fed3fd2c18faebdaba133baeb56717a |
|
BLAKE2b-256 | 504296c06ba215ff1fe18b63a0243909f7d1b8f8886e366fe63e837ee89e7c41 |
Hashes for qpalm-1.1.3-cp311-cp311-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fec1c9b0e7e01c5e69603867e6187d2102406225530a216e6a7bd03008165a8 |
|
MD5 | ad62a514b5c56fbe995f10185e2f910d |
|
BLAKE2b-256 | ae642d27b1a7da518b7044f5f832c2d1d1161493088abe4715705679c0130513 |
Hashes for qpalm-1.1.3-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 034201cdcb2f8932c3b4d06d132ccffd72fc277c21571d7bee4db2cb4b940464 |
|
MD5 | 25eb4e8b4cf57fa36a8294e34d2ddee1 |
|
BLAKE2b-256 | 2d2f05210ec416c7942e9518157494f40804c49a48dd8121cb6e8f744978aa72 |
Hashes for qpalm-1.1.3-cp311-cp311-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3f71fe21d051a0242fdb4634200cf32829d1b592375f006a334a00c15d9da82 |
|
MD5 | 14d7e195f9d71afff96db89868690918 |
|
BLAKE2b-256 | 49fca3bb46356c3faa4a71147c0ab7c69976ed8740303abb17aa5bdd6f771f41 |
Hashes for qpalm-1.1.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a2837ffe2207551c3d695bb39dcd6cb31332ba18badc47df8566a0d8a554f68 |
|
MD5 | 61ddd5296558f5775764d3f3fb43306b |
|
BLAKE2b-256 | 753f1be2c8f2f216d96787cbc0cec008be9f104cdaeb93f3af84405a5c304d7d |
Hashes for qpalm-1.1.3-cp310-cp310-manylinux_2_27_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d716495e9fe77876bb4b57852784509e7bf9c00452674bde2411a1d485bb14b |
|
MD5 | cd2e0c82d7c4182a3ed98dd76426443c |
|
BLAKE2b-256 | 58ea35d11b439cc4df59ebe9775928f08c4a7a3437a9e4bb283157951be3f594 |
Hashes for qpalm-1.1.3-cp310-cp310-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e67ebcf3a2d1e9f8e791186fe08f4969719409ebf16e8333a8d0b7270e47ce09 |
|
MD5 | bc8ba4b5c5a81f81f34ca1ce985c8ddf |
|
BLAKE2b-256 | 2f3ac91265a06d2940e273436e7f385411f01c44b9799f0e5d08999a9f89a695 |
Hashes for qpalm-1.1.3-cp310-cp310-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0343b90b6f4ca1ed534f7e7a2afae07be0eb62b43aafe95c59634448be011fa3 |
|
MD5 | d28a414c27386ebaf68d9e5495883442 |
|
BLAKE2b-256 | a0a3a3923ba3f15de66ee087791c6d6f5142590574dac8b92b6aa2ffb6fc0c8b |
Hashes for qpalm-1.1.3-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57cdfb52c685f78a2750f70fdcb775089b14d15f45eac4a34f3c985cf3864ddc |
|
MD5 | 957513051a1be9cfdca11ae63d334fb2 |
|
BLAKE2b-256 | b9fdac8dc96d315fd48f05c78a2a324a6d7341ba8fed97432d068a91f55f7c73 |
Hashes for qpalm-1.1.3-cp310-cp310-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab7386c3467798abadd80a20179397aac36f4d52302031e90eae2d97550bab63 |
|
MD5 | 11d6bfb14157cf034be0eefe04db3310 |
|
BLAKE2b-256 | 2c4ae307e3c187573abcebfca14c4cc19d9a0c51dbc1d795c241e485da4fa9d0 |
Hashes for qpalm-1.1.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 231b027ade260820f7bfc2e2a417da93089b16b1d74e6b2cea3e8a34d52aa71e |
|
MD5 | b3541eb61d252eba34020fc2fb1d592f |
|
BLAKE2b-256 | daf289821a55baefe27ef1ee8a03f250a4660e0aa6a6e642e2db80b20aa069db |
Hashes for qpalm-1.1.3-cp39-cp39-manylinux_2_27_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 359fe606d4a677919250a9b3642687793108404c7540d3bc9ba864a4525d8a8b |
|
MD5 | 87a84289321e511e2e17e4af0efa9641 |
|
BLAKE2b-256 | 4c73a9f8fcc16e8c71cd08f7cfc051fc31f962a5a41593bfc096e74583a4d437 |
Hashes for qpalm-1.1.3-cp39-cp39-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e39c480b972e6889158d893ea195bdde14ec615667c87662c1527bbcde9fbd1 |
|
MD5 | e65ec9a7e57608c9069df5672c0dde6f |
|
BLAKE2b-256 | b4208071fd4d347c5bc40f5b626c68e7d65c340392b92314b34408da057b09a1 |
Hashes for qpalm-1.1.3-cp39-cp39-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd5c1b7c1c9f333ff996f77cc05a2aa065617a58da5d6854d2c6aa4387e6f7da |
|
MD5 | 7f869a27fd563d14327c3af35506e893 |
|
BLAKE2b-256 | 13de5564003006f04bc726d495c18af79280d3a3b0beac52bd2a293ba3a83a37 |
Hashes for qpalm-1.1.3-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bd17dc3a334ea99d81e500d69912b2e60f16ac22ecbcc049f2fdff5cac3c2fd |
|
MD5 | be9d40e7c6bd45c704c1e7ba22f135ae |
|
BLAKE2b-256 | 62198f47069beec80e93b67784083cc414e08473a99222907f375c4462d7a5d2 |
Hashes for qpalm-1.1.3-cp39-cp39-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11b98a41ffa9228f006841af2da1550612bc05cc073ae0496e22884766d06f67 |
|
MD5 | 6c6ac5481fcfa3dfd2d09128e3aea1f6 |
|
BLAKE2b-256 | d604b08b8ed9290ba398e17bf64f15c8896f6697c73b75a27c4645351b265dd4 |
Hashes for qpalm-1.1.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2db6eb5b65471d9d1dee6796296159e8d012e6b04c276e38b89969b31a21d6e |
|
MD5 | 9b1c2793c79b999fe9081e346070f01d |
|
BLAKE2b-256 | 25d20eee57fdf044e1d2a3ece90169bb5397edc1fd951ad7c3e31fb8a80248f6 |
Hashes for qpalm-1.1.3-cp38-cp38-manylinux_2_27_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd906b436979ea0073e14d76131bd63bb060cf4e6219856c7b426b3ef498c1f6 |
|
MD5 | 9c7f0d8775f7ee89fecca4f76ce63cce |
|
BLAKE2b-256 | 4edd618fe68de26c8354745d3d2710c48bf0a6d1aed5f4273e8e2fa92a253629 |
Hashes for qpalm-1.1.3-cp38-cp38-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39422c7aba31aca1c410376330dca19b7ae1527602ee36754385221732ad3184 |
|
MD5 | f67780663d6b1925affc4d317ed0aa4c |
|
BLAKE2b-256 | 05b5f00a6cf118ed96acd050f14b88ff2b884f297cf978a552dfa5d88528889d |
Hashes for qpalm-1.1.3-cp38-cp38-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ed87ba879328c93c22acff4710ddecf323cd3fea0276f5c9789de6da9b0bd90 |
|
MD5 | ffce8bcba7c7ffdc1a7905c2b9fdfd06 |
|
BLAKE2b-256 | 202f80bc606c93dafa05422ffe0328b1890e81cc5159b96c7cecb70c00b1d9cc |
Hashes for qpalm-1.1.3-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 693544c8b836183f491d73dacd6f7fc9bbbbfb9caaab4f2111c23d3ccb91eeff |
|
MD5 | 2b28f84f30ca337cf577aad669c1a5ad |
|
BLAKE2b-256 | 7dfc3d7403ecf18129079e8130c2d6e51e934937831db7fd24bd986ad356da3a |
Hashes for qpalm-1.1.3-cp38-cp38-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0593e90ed5e66d45a94fd9b4d5d32ec761aae5aee2883254a51f328855b7bc1 |
|
MD5 | b0bd1463e3e001dd0b42629c119fe35e |
|
BLAKE2b-256 | dade64b2439479765ec2ae3b3cc8d93e5a029d214f458eef3e3d7b255f1044b1 |
Hashes for qpalm-1.1.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6338e426a12e1715ed57c1e396392c64226236e7432212bc7a1236d896f201cd |
|
MD5 | 7f0180ef7a1a2985cc866b740d5923a1 |
|
BLAKE2b-256 | 343946ff3be93ff4874074c2e074d255356bb339f1482424ee06b59a91522474 |
Hashes for qpalm-1.1.3-cp37-cp37m-manylinux_2_27_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd843434d59d44cc4a6261c6d470a39db417f26201653cbeac097ed7d53b94c8 |
|
MD5 | c39ce073d66667e9d34542e85363df93 |
|
BLAKE2b-256 | 843047c6db58a63d42f732efbacf7514e204777f821a03a581bbe09de0662d6c |
Hashes for qpalm-1.1.3-cp37-cp37m-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e8dda0917d50cf97ba328011fcf4c0cb21de8201decc2ac27ffa397dfd64e49 |
|
MD5 | 5c59c90352c4c733855d2da2bc3d4e95 |
|
BLAKE2b-256 | 6a0e91470c7629e04c74cd39f4bd153fbc47a5c3c47115d3cf75978c9daa008d |
Hashes for qpalm-1.1.3-cp37-cp37m-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b679f92bde6d59be38662c0d7648f66f8af1698580948cf6f52fbce8e8279a5 |
|
MD5 | 1cfc3a8c93bb78a0a7cbdda4ce4dea87 |
|
BLAKE2b-256 | 7a0775d7e00680ba85f217920e0cadc14057a5ae7d1f971d89668e51e97c1b21 |
Hashes for qpalm-1.1.3-cp37-cp37m-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a966c17352b8e37dbc7b8a1cee956abca54d02adb398dd31d65d2eb9819fca16 |
|
MD5 | 29a3aea2132dd5d66764e32dd55d18fe |
|
BLAKE2b-256 | b609dcb156260f46165300585f4fe5d7338c8067fd8417724d139547ec8bc515 |
Hashes for qpalm-1.1.3-cp37-cp37m-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9156619b4681cb4815c41c4ca42d773bb58a7467874554491838f2a3af0dde0 |
|
MD5 | 99b536347b956168492aa0a0e2998d8e |
|
BLAKE2b-256 | f6b8d27b56d5d7fb7b9333afd4c0c34e3629fe2effafc8804be4b8dc2d1a624c |