Proximal Augmented Lagrangian method for Quadratic Programs
Project Links
Meta
Author: Ben Hermans
Maintainer: Pieter Pas
Requires Python: >=3.9
Classifiers
Development Status
- 5 - Production/Stable
Topic
- Scientific/Engineering
- Scientific/Engineering :: Mathematics
Programming Language
- Python :: 3
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: 3.14
- C
- C++
Operating System
- POSIX :: Linux
- Microsoft :: Windows
- MacOS
Typing
- Typed
QPALM is a numerical optimization package that finds stationary points of (possibly nonconvex) quadratic programs, that is
\begin{equation*}
\begin{aligned}
& \underset{x}{\textbf{minimize}}
& & \tfrac12 x^\top Q x + q^\top x\\
& \textbf{subject to}
& & b_\mathrm{min} \le Ax \le b_\mathrm{max} \\
\end{aligned}
\end{equation*}
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, Matlab, C/C++/Fortran
Installation instructions for the Julia, Matlab, C, C++ and Fortran interfaces, as well as instructions for building QPALM from source, can be found on GitHub.
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, AArch64, ARMv7 and ARMv6, for macOS on x86-64 and ARM64, and for Windows on x86-64.
Benchmarks
Check out the papers below for detailed benchmark tests comparing QPALM with state-of-the-art solvers.
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.},
}
1.2.6
Aug 30, 2025
1.2.5
Nov 22, 2024
1.2.4
Nov 15, 2024
1.2.3
Mar 28, 2024
1.2.2
Jan 31, 2024
1.2.1
Sep 22, 2023
1.2.0
Aug 29, 2023
1.1.5a1
Aug 26, 2023
1.1.4.post1
Nov 30, 2022
1.1.4
Nov 30, 2022
1.1.3
Nov 30, 2022
1.1.3b2
Nov 29, 2022
1.1.3b1
Nov 29, 2022
1.1.2
May 05, 2022
1.1.1
May 03, 2022
1.1.0
May 03, 2022
1.0.0
Feb 13, 2022
0.0.0a3
Feb 11, 2022
0.0.0a2
Feb 02, 2022
0.0.0a1
Feb 02, 2022
0.0.0a0
Feb 02, 2022
Wheel compatibility matrix
Files in release
qpalm-1.2.6-cp310-cp310-linux_armv6l.whl (1.2MiB)
qpalm-1.2.6-cp310-cp310-macosx_10_15_universal2.whl (1.2MiB)
qpalm-1.2.6-cp310-cp310-macosx_10_15_x86_64.whl (618.3KiB)
qpalm-1.2.6-cp310-cp310-macosx_11_0_arm64.whl (638.0KiB)
qpalm-1.2.6-cp310-cp310-manylinux_2_27_aarch64.whl (1.3MiB)
qpalm-1.2.6-cp310-cp310-manylinux_2_27_armv7l.whl (1.2MiB)
qpalm-1.2.6-cp310-cp310-manylinux_2_27_x86_64.whl (1.4MiB)
qpalm-1.2.6-cp310-cp310-win_amd64.whl (172.7KiB)
qpalm-1.2.6-cp310-cp310-win_arm64.whl (161.1KiB)
qpalm-1.2.6-cp311-cp311-linux_armv6l.whl (1.2MiB)
qpalm-1.2.6-cp311-cp311-macosx_10_15_universal2.whl (1.2MiB)
qpalm-1.2.6-cp311-cp311-macosx_10_15_x86_64.whl (620.4KiB)
qpalm-1.2.6-cp311-cp311-macosx_11_0_arm64.whl (639.7KiB)
qpalm-1.2.6-cp311-cp311-manylinux_2_27_aarch64.whl (1.3MiB)
qpalm-1.2.6-cp311-cp311-manylinux_2_27_armv7l.whl (1.2MiB)
qpalm-1.2.6-cp311-cp311-manylinux_2_27_x86_64.whl (1.4MiB)
qpalm-1.2.6-cp311-cp311-win_amd64.whl (173.5KiB)
qpalm-1.2.6-cp311-cp311-win_arm64.whl (160.8KiB)
qpalm-1.2.6-cp312-cp312-linux_armv6l.whl (1.2MiB)
qpalm-1.2.6-cp312-cp312-macosx_10_15_universal2.whl (1.2MiB)
qpalm-1.2.6-cp312-cp312-macosx_10_15_x86_64.whl (623.8KiB)
qpalm-1.2.6-cp312-cp312-macosx_11_0_arm64.whl (642.9KiB)
qpalm-1.2.6-cp312-cp312-manylinux_2_27_aarch64.whl (1.3MiB)
qpalm-1.2.6-cp312-cp312-manylinux_2_27_armv7l.whl (1.2MiB)
qpalm-1.2.6-cp312-cp312-manylinux_2_27_x86_64.whl (1.4MiB)
qpalm-1.2.6-cp312-cp312-win_amd64.whl (174.5KiB)
qpalm-1.2.6-cp312-cp312-win_arm64.whl (159.0KiB)
qpalm-1.2.6-cp313-cp313-linux_armv6l.whl (1.2MiB)
qpalm-1.2.6-cp313-cp313-macosx_10_15_universal2.whl (1.2MiB)
qpalm-1.2.6-cp313-cp313-macosx_10_15_x86_64.whl (623.9KiB)
qpalm-1.2.6-cp313-cp313-macosx_11_0_arm64.whl (643.1KiB)
qpalm-1.2.6-cp313-cp313-manylinux_2_27_aarch64.whl (1.3MiB)
qpalm-1.2.6-cp313-cp313-manylinux_2_27_armv7l.whl (1.2MiB)
qpalm-1.2.6-cp313-cp313-manylinux_2_27_x86_64.whl (1.4MiB)
qpalm-1.2.6-cp313-cp313-win_amd64.whl (174.5KiB)
qpalm-1.2.6-cp313-cp313-win_arm64.whl (159.0KiB)
qpalm-1.2.6-cp314-cp314-linux_armv6l.whl (1.2MiB)
qpalm-1.2.6-cp314-cp314-macosx_10_15_universal2.whl (1.2MiB)
qpalm-1.2.6-cp314-cp314-macosx_10_15_x86_64.whl (624.3KiB)
qpalm-1.2.6-cp314-cp314-macosx_11_0_arm64.whl (643.6KiB)
qpalm-1.2.6-cp314-cp314-manylinux_2_27_aarch64.whl (1.3MiB)
qpalm-1.2.6-cp314-cp314-manylinux_2_27_armv7l.whl (1.2MiB)
qpalm-1.2.6-cp314-cp314-manylinux_2_27_x86_64.whl (1.4MiB)
qpalm-1.2.6-cp314-cp314-win_amd64.whl (179.5KiB)
qpalm-1.2.6-cp314-cp314-win_arm64.whl (164.5KiB)
qpalm-1.2.6-cp314-cp314t-macosx_10_15_universal2.whl (1.3MiB)
qpalm-1.2.6-cp314-cp314t-macosx_10_15_x86_64.whl (634.3KiB)
qpalm-1.2.6-cp314-cp314t-macosx_11_0_arm64.whl (654.5KiB)
qpalm-1.2.6-cp314-cp314t-win_amd64.whl (191.0KiB)
qpalm-1.2.6-cp314-cp314t-win_arm64.whl (171.7KiB)
qpalm-1.2.6-cp39-cp39-linux_armv6l.whl (1.2MiB)
qpalm-1.2.6-cp39-cp39-macosx_10_15_universal2.whl (1.2MiB)
qpalm-1.2.6-cp39-cp39-macosx_10_15_x86_64.whl (618.8KiB)
qpalm-1.2.6-cp39-cp39-macosx_11_0_arm64.whl (638.4KiB)
qpalm-1.2.6-cp39-cp39-manylinux_2_27_aarch64.whl (1.3MiB)
qpalm-1.2.6-cp39-cp39-manylinux_2_27_armv7l.whl (1.2MiB)
qpalm-1.2.6-cp39-cp39-manylinux_2_27_x86_64.whl (1.4MiB)
qpalm-1.2.6-cp39-cp39-win_amd64.whl (176.4KiB)
qpalm-1.2.6-cp39-cp39-win_arm64.whl (157.7KiB)
qpalm-1.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (617.9KiB)
qpalm-1.2.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl (637.6KiB)
qpalm-1.2.6-pp310-pypy310_pp73-win_amd64.whl (172.2KiB)
qpalm-1.2.6.tar.gz (92.4KiB)