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.3b2/qpalm-matlab-linux.zip', userpath)
unzip('https://github.com/kul-optec/QPALM/releases/download/1.1.3b2/qpalm-matlab-windows.zip', userpath)
unzip('https://github.com/kul-optec/QPALM/releases/download/1.1.3b2/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.3b2-pp39-pypy39_pp73-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e88a8c5826742e0e8f20dba755d38b733ee9148c9191d77a38678c299ebdcb05 |
|
MD5 | aa6393336c410a1ff8109c64481d1dd7 |
|
BLAKE2b-256 | dbfb7e1736a21dd2366381c6d4d6e0a94fa9c22d5398d0edee593d6ead71ab86 |
Hashes for qpalm-1.1.3b2-pp39-pypy39_pp73-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5568c9943edea1ca19557a221f59eb23633df8afd753d2f0793c61e027cae30 |
|
MD5 | 42a86933a7d604a8b72d17497cd6c822 |
|
BLAKE2b-256 | 78624b09f0ee45159c8f2098e39358936b0b26467b2548a3765356da4bdf2824 |
Hashes for qpalm-1.1.3b2-pp38-pypy38_pp73-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 876bef0edf66b7e41f50b9ee5c64bd14055284c0db1f4d9cd210c4e501b9302a |
|
MD5 | 061610164c27dfb1d15f03ee875fb851 |
|
BLAKE2b-256 | bd3fc40f3fe47236c7e65478cfd7e774fae9b92c8eac30f7c6d274088cbcbed0 |
Hashes for qpalm-1.1.3b2-pp38-pypy38_pp73-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15fa6714b52cf0f0271e8e268cb422c920d63e6a4406a6e1b070400ea5d5e70d |
|
MD5 | 34ee6b8b105ac43d14dc043e3a59951d |
|
BLAKE2b-256 | a3c346a454affce0407f25ec791780ed5848c1dc028b241e4c51f20d3dfadcc9 |
Hashes for qpalm-1.1.3b2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a25fede01fc0bd0579100095de775a984ba5f11302e7b6ad7eea3187bc836d8c |
|
MD5 | a0660ca89b672cf15725ca27201ab64b |
|
BLAKE2b-256 | 7c22b6716129a93ed9aaa0870d284447434379e88ad42a0096c88c30f86c6c32 |
Hashes for qpalm-1.1.3b2-cp311-cp311-manylinux_2_27_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fe8cf6cd70c6c59af9e1fa9b5123c2cb4b418beeaa16fad6a1d3631e00bc2a1 |
|
MD5 | 0ee0d25e5ac537dd1491dabc0c0b4458 |
|
BLAKE2b-256 | 9b35a6ea8ef31962d8457a92e61d382863d2218ab91989c54e802cb4b23d27f5 |
Hashes for qpalm-1.1.3b2-cp311-cp311-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c142d497453705150d9868f8bf20d29bd3f09243cbcac58c20957403f3f761f6 |
|
MD5 | 2ce05d76178fe43355303aac26bde202 |
|
BLAKE2b-256 | f193c0cb5f97ac49464742a3e7e5de891b18948429b34339fe9f8604c978cd9b |
Hashes for qpalm-1.1.3b2-cp311-cp311-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a17318b76698870fb7c51e0c79703bc9f1b24fa8c9b69694efe2c47e8bb25a7 |
|
MD5 | eeb0a7694eb8cc887a3eb4174da8fabe |
|
BLAKE2b-256 | 50affc5ff5253351b25fd86b4e378d9aa9131ce7a9a2e08f1cd1c43af43e86e4 |
Hashes for qpalm-1.1.3b2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 550c40d5dc04680aa8df05c3118d42667f9e2df729563bc71ec39bfdb25744e7 |
|
MD5 | 7bbea93fdaf60b9dcb8839eceaf887d9 |
|
BLAKE2b-256 | b3f2e164e8dc5382171d52321a29e2165d7ede6237c8a505094158027df6a924 |
Hashes for qpalm-1.1.3b2-cp311-cp311-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bf3c6052f13783df7641d9c7bbfccfb0e24c5934dc80c00a658eb11df33da39 |
|
MD5 | a7908b7e2d813860ed8d6f9f420a1f8d |
|
BLAKE2b-256 | 0fa09161c05e821c7ac87b6b7105b1a99954102555f5bbc7639c85dde9c7f647 |
Hashes for qpalm-1.1.3b2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 458e59f63e74946e68f8cd5d817421720a76c062b8b39ce447727601f93a6c89 |
|
MD5 | 80a76efe832a1e8f909e5d8cac015b7f |
|
BLAKE2b-256 | 70725c068e5a4f0005590f8e469b8e368411b956862b700a3383ca9691991921 |
Hashes for qpalm-1.1.3b2-cp310-cp310-manylinux_2_27_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f0ba147c8c033325bbbbb79584f29855526f648ed14acf995ee5af91e64628c |
|
MD5 | c5f9a422777a20ac2319cc3aa88bc387 |
|
BLAKE2b-256 | 55f62002c1c7c74e573eefefc7ae871807591f862e2151e7ecbb5e8711bb3934 |
Hashes for qpalm-1.1.3b2-cp310-cp310-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee6040e419dac1dd13add68abf08e0e93f1306ffa742c5c1ce158ee9ae786ac2 |
|
MD5 | c53b1c3a502bd7121833361d672fe128 |
|
BLAKE2b-256 | dbf186f5dda77c387e8694409615be6491d62ad1593bcce96a2a40f7de8986ae |
Hashes for qpalm-1.1.3b2-cp310-cp310-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 912e774c135165c52595580d7f8b0a56f664291739082f1cecfaccd967302284 |
|
MD5 | 7694be7a75554b93adf780459013fe54 |
|
BLAKE2b-256 | 80d9b0d6024e189960568d5ee8ab58ed0e251a0ced39ff4678d0f49c6e723cc9 |
Hashes for qpalm-1.1.3b2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5174330b1c922468a4d590a28560cb3494d6ab746e53b4e4088c529e579ed00 |
|
MD5 | 502f14d06952a7f7995985583f35444d |
|
BLAKE2b-256 | 429e609f1c678d6b98312d44c1c66df790033e772f7a62859b982214bd453021 |
Hashes for qpalm-1.1.3b2-cp310-cp310-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | feeb39cbe7cdbdad9a37806171048c463b857e3eb3f4e3fce690ec01ae3b4036 |
|
MD5 | c0406b4f358f5223e2f28276dc620186 |
|
BLAKE2b-256 | 4f60f6a5720a2304bba5a53d1d251ee6d2461d5d7a6aaa31d26f15b23f189275 |
Hashes for qpalm-1.1.3b2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cbe5e1a892eef0941d7333148d81fed6c555e22f1a0db8f7d94d732be0a2bc0 |
|
MD5 | d24b5226c7d0b13fbc1cbf96452645f7 |
|
BLAKE2b-256 | 989f93fa52bb57087bc5037c757d9215c2de00777b4c80e5a3134f6e5fd3a371 |
Hashes for qpalm-1.1.3b2-cp39-cp39-manylinux_2_27_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5876da2e49115caa60c6674c7124270b09393c050fc450055b021b2a7d551ab4 |
|
MD5 | 3223c90fa04d039fd4eec0deedb3d60a |
|
BLAKE2b-256 | 4f35079e0c351a90ed9dd77cb7610ad47293457083a09edf6804d8a681afd501 |
Hashes for qpalm-1.1.3b2-cp39-cp39-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 437109aed00c52ee778322ffeda0b67703cc0ddbc9ce35f346a07bfb36b16eb7 |
|
MD5 | 46ee9387f97e89260133cf84febe02c1 |
|
BLAKE2b-256 | ba93f7d6afe7309a9d0ebe100807844d02d073f6efc3647724c1d7dc0e7c2a38 |
Hashes for qpalm-1.1.3b2-cp39-cp39-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a57b4517455ed10d71a7016d535a99734639b9397aaeb327f5c165717670f17a |
|
MD5 | 46be31fffe52837ffb36117ba1921e55 |
|
BLAKE2b-256 | 0e9c18c967ad3ca3fb8987a1eed0f60406f8aff1f0c7c62690d139124ed132c1 |
Hashes for qpalm-1.1.3b2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a219f876fa0b45706d40641ab6552dc948e7948f44a5fe7ca7d7852fb29581ba |
|
MD5 | 7edc1f152bb3b2aa5f60ccc7032dec6f |
|
BLAKE2b-256 | c2c67a02f531b51825bfa1b896ec2b5352b58b5ee154d4c3f941c700d2d3b4d1 |
Hashes for qpalm-1.1.3b2-cp39-cp39-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e1f681dec4ea4e356584b8fa15e2c3e9b3e24cef7aff8c689a304f743ebf1c4 |
|
MD5 | fa0532018f0fb6244cfe11805fb2e217 |
|
BLAKE2b-256 | 4ed01eb4b2eb33dc6e4a132e8718ac22d0ae5ca838bf4e8c4e87bf6d59951e9b |
Hashes for qpalm-1.1.3b2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bb60a395f7a8a040e5e7805657b5ee587f883a09410650396a423659612cadf |
|
MD5 | 5a897a8d2f0bac5589357e1f30c2b7ba |
|
BLAKE2b-256 | 4920b283fee386951d02f0ffe86e558dcb9efe4778f161e81f46c0094100fcef |
Hashes for qpalm-1.1.3b2-cp38-cp38-manylinux_2_27_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a21d28eeb863d883536f660016306d327db7f075ba08309ecf053bd50df423c |
|
MD5 | 069feebf88ad849562f6715c8a23906d |
|
BLAKE2b-256 | 09f6e432a49098704554c5b82fce855392961129b07ade089ecacdd122b0da87 |
Hashes for qpalm-1.1.3b2-cp38-cp38-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 031d968e3a00f8f5fc9735326b1700a467a13bc5edde951f3da9077ffe2833fc |
|
MD5 | 4de84d6b095e9f987bf4d51e45907c47 |
|
BLAKE2b-256 | ca00e77f6b45c585019e8f3b354d49fca03ce38177521b434f9ee8f43d291767 |
Hashes for qpalm-1.1.3b2-cp38-cp38-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7bdef17dc334ef08b5432a0f7933f269c92cdb4ea4e07bf4d3907405f4186b8 |
|
MD5 | cf103ade1a0d5311480c793f81be8e0d |
|
BLAKE2b-256 | 11742c00b2c4d44da2e11cb18f4e6e16a32060ee606f4a747198ee3db5247e28 |
Hashes for qpalm-1.1.3b2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd81bde76cd8810d65fc608b2bebc2d2b49d23ebedc0a4479767bd020f3797db |
|
MD5 | 07efbaf3ddd25afb126f747e420f1924 |
|
BLAKE2b-256 | 51aec063e595ed745ee04dba77480d336b4d2e11f3becd481deec6e2e2ea56f1 |
Hashes for qpalm-1.1.3b2-cp38-cp38-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cab3234f1a8cb88830b0e76e8911662a98aab5947ac4768027e41a98894d021f |
|
MD5 | fc626f485d2102da6bc20b018a4c0d45 |
|
BLAKE2b-256 | 9b0306e858d7fbc848288b048fade0f520f6ad202dc1210a630490d641ea81be |
Hashes for qpalm-1.1.3b2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e2a101afa6a87ccffcab6e162c9538a45d78f27b3b7b936e1e8eaab07b00a5f |
|
MD5 | d91b74945e05d29ce5f37653b6deb322 |
|
BLAKE2b-256 | 2d4ce286a9d21a3dcfc313ce04833cfeaaa54f9e39fe4e5a455308aa60b04d81 |
Hashes for qpalm-1.1.3b2-cp37-cp37m-manylinux_2_27_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d31b692d971a8d95552b7390dae46eae8f74b5844884bf058f816ada0fba594a |
|
MD5 | 884c5e11673920e420bb9e7b6056cbda |
|
BLAKE2b-256 | 32eb33eca255b9f28d2b422d6476a230f6beb266e924c51c96878a76612705fc |
Hashes for qpalm-1.1.3b2-cp37-cp37m-manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41c113c2f3b96f37770b50c04a46fcb4427c91586dc44a9f202912df50fbe9be |
|
MD5 | 51440d69fbfe85922f280b9e4669bb00 |
|
BLAKE2b-256 | e8babac99d3b141d88e35fa0f5df32a0bb12af74612f443fd667555b359db3ec |
Hashes for qpalm-1.1.3b2-cp37-cp37m-manylinux_2_17_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | efc41e6d47c4d30dfa38eba591452871fcc35146ab030a248adf311958559eed |
|
MD5 | 2182b05ce9c21fa2323a54ec0a74bb22 |
|
BLAKE2b-256 | 0c8606ed44150ac9cb142bd8b3defd0689b0ed190b0eebfc8e3473dac8b5dace |
Hashes for qpalm-1.1.3b2-cp37-cp37m-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9488011afeac8d69e18a07bd9311bbd1ccf160d2fd847b1b190595fccae4f730 |
|
MD5 | 3fc97e01a27e9ce02084120516fdcb26 |
|
BLAKE2b-256 | e6d920bf509bcc5131ea99b448cf65f9cbbbd63bdc859feb98d42f097063b02c |
Hashes for qpalm-1.1.3b2-cp37-cp37m-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55064d8140b8390f3353cd612188c92b2ad84ca719aa148e689ba319566e7b39 |
|
MD5 | 3f7c75f768983527b8f61cc8e30654a5 |
|
BLAKE2b-256 | fc44d3be8ad5b35936fd44d591fc5481c644d9530e5637fae9d0fc205e4485e1 |