https://github.com/petrus1904/superadmm
superADMM: Quadratic Program Solver with dynamic weighting ADMM
https://github.com/petrus1904/superadmm
c linear-programming matlab model-predictive-control optimization python quadratic-programming solver
Last synced: 2 months ago
JSON representation
superADMM: Quadratic Program Solver with dynamic weighting ADMM
- Host: GitHub
- URL: https://github.com/petrus1904/superadmm
- Owner: Petrus1904
- License: lgpl-2.1
- Created: 2025-04-30T08:37:08.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-09T21:09:23.000Z (3 months ago)
- Last Synced: 2026-03-10T01:40:45.739Z (3 months ago)
- Topics: c, linear-programming, matlab, model-predictive-control, optimization, python, quadratic-programming, solver
- Language: C
- Homepage:
- Size: 12 MB
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SuperADMM
Fast Quadratic Program Solver with dynamic weighting ADMM
This algorithm specifically solves problems of shape
$$
\begin{equation}
\begin{aligned}
& \underset{x}{\textbf{minimize}}
& & \tfrac12 x^\top P x + x^\top q\\
& \textbf{subject to}
& & l \le Ax \le u \\
\end{aligned}
\end{equation}
$$
where $x \in \mathrm{R}^n$ is the optimization variable, $P \in \mathrm{R}^{n \times n}$ and $q \in \mathrm{R}^n$ describe the quadratic cost function ($P$ is positive semi-definite), $A \in \mathrm{R}^{m \times n}$ is the linear constraint mapping and $l \in\mathrm{R}^m$, $u\in\mathrm{R}^m$ denote the lower and upper bounds of the constraints. Note that by setting $l_i = u_i$ for some index $i$, one can also include equality constraints in the problem. Furthermore, $l_i = -\infty$ or $u_i = \infty$ allows users to only consider lower or upper bounds.
# Installation
## Python (Express installation)
- `pip install superadmm`
- Enjoy your fast solver in Python with `import superADMM`
## MATLAB (Express installation)
- Download the latest release (https://github.com/Petrus1904/superADMM/releases)
- Unzip the contents in some folder
- Run `superADMM_setup.m`
- Enjoy your fast solver in MATLAB with `superADMM.m`
## MATLAB (Manual installation)
- Download or clone this package
- Ensure that MATLAB `mex` add-on (code-generation) is installed, and `gcc` (MinGW64) is installed as mex compiler
- Verify with `mex -setup` that `MinGW64` is the default compiler
- Run `compile.m`
- Enjoy your fast solver in MATLAB with `superADMM.m`
# How to Cite
**APA:**
Verheijen, P.C.N., Goswami, D., and Lazar, M. (2025). *SuperADMM: Solving Quadratic Programs Faster with Dynamic Weighting ADMM.* arXiv: 2506.11608 [math.OC]. URL: https://arxiv.org/abs/2506.11608
**Bibtex:**
```
@misc{superADMM:Verheijen2025,
title={{SuperADMM: Solving Quadratic Programs Faster with Dynamic Weighting ADMM}},
author={P. C. N. Verheijen and D. Goswami and M. Lazar},
year={2025},
eprint={2506.11608},
archivePrefix={arXiv},
primaryClass={math.OC},
url={https://arxiv.org/abs/2506.11608},
}
```
# References
The fast execution of various linear algebraic operations is provided by a set of third party libraries, which we list below:
- [OpenBLAS] Wang Qian, Zhang Xianyi, Zhang Yunquan, Qing Yi, *AUGEM: Automatically Generate High Performance Dense Linear Algebra Kernels on x86 CPUs*, In the International Conference for High Performance Computing, Networking, Storage and Analysis (SC'13), Denver CO, November 2013
- [LAPACK] E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, *LAPACK Users' Guide,* 3rd e. Philadelphia, PA: Society for Industrial and Applied Mathematics, 1999.
- [CSPARSE] T.A. Davis, *Direct Methods for Sparse Linear Systems.* SIAM, 2006
- [LDL] T.A. Davis, *Algorithm 849: A concise sparse cholesky factorization package,* ACM Trans. Math. Softw. vol. 31, no. 4, p. 587-591, Dec. 2005
# License
SuperADMM is licensed under LGPL 2.1.